-2

我想将我的 Vote4Cash 类与我的命令类合并。

我的 vote4cash 课程将在玩家输入命令检查时奖励他们的投票。因此,我需要将 vote4cash 进程构建到我的命令类中。我一直在尝试这样做,这是我的 vote4cash 系统中最重要的部分。如果您知道我如何将它们合并在一起或使它们一起工作,请告诉我如何。我尝试使用导入,但没有成功。我没有编写命令类,其他人编写了代码,这让我更难添加 vote4gold 进程或让它们一起工作。

我的 Vote4Cash 课程:

import java.sql.*;
import java.net.*;

public class Vote4Cash {

  public static void main(String args[]) {

  Connection con = null;
  Statement st = null;
  Statement stmt = null;
  ResultSet auth = null;
  ResultSet given = null;

    String url = "jdbc:mysql://localhost:3306/";
    String db = "vote4gold";
    String driver = "com.mysql.jdbc.Driver";
    String user = "root";
    String pass = "";

  try {
  Class.forName(driver);
  con = DriverManager.getConnection(url + db, user, pass);
  con.setAutoCommit(false);
  st = con.createStatement();
  stmt = con.createStatement();

  //String give = "SELECT `given` FROM `has_voted` WHERE `ip` LIKE '+thisIp.getHostAddress()'";
        InetAddress thisIp =InetAddress.getLocalHost();
String give = "SELECT `given` FROM `has_voted` " + 
              "WHERE `ip` = '" + thisIp.getHostAddress() + "'";
  given = st.executeQuery(give);

while (given.next()) {
    if (given.getInt("given") > 0) {
        System.out.println("You've already recieved a reward for the last time you voted, but thanks again for voting.");
    } else {
        System.out.println("Thanks for voting! You've been rewarded 25m gold! Vote again tomorrow!");
        String sql = "SELECT has_voted (given) Replace('0', '0', '1')";
        int rows = stmt.executeUpdate("UPDATE has_voted SET given = 1 WHERE given = 0");
        System.out.println("The given reward column has been set to 1 for the ip address:");
       System.out.println("IP:"+thisIp.getHostAddress());
    }
  }
  } catch (Exception e) {
  System.out.println(e);
  }
  }
}

我的命令类(不适合这里): http: //pastebin.com/GXFLfMX4

谢谢!如果您需要更多详细信息或不明白某些内容,请告诉我,以便我帮助您。:)

4

1 回答 1

1

首先,我不会尝试“合并”代码。当您从其他人那里收到代码时,这绝不应该是解决方案。您应该首先尝试了解它的用途。

为此...

对于初学者,Commands该类被声明为: package server.model.players.packets;

所以你需要导入那个包。此外,Commands类中的方法将 aClient作为参数。因此,为了使用这个类,您需要能够实例化Client.

Client是哪个?好吧,看看 中的 import 语句Commands,它似乎是server.model.players.Client. 您需要访问该类并能够创建实例。

Commands您是否获得了类或 jar的源代码或编译集?如果是前者,您将需要访问所有其他Commands导入的类才能编译它。

我怀疑,看看这个Commands类的冗长,以及你把它当作一个黑盒子的愿望(但仍然将它与你的类合并?!?(这实际上只是一个main方法的包装器)),你真的只是寻找快速解决方案。我会开始小很多。抵制合并的冲动。尝试编写一个Commands你自己的类,用几个简单的方法来获取你设计的类。您最终将获得一个您理解的过程并获得更好的经验。

于 2012-07-25T03:02:12.873 回答