我想将我的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
谢谢!如果您需要更多详细信息或不明白,请告诉我,以便我帮助您。 :)
答案 0 :(得分:1)
首先,我不会尝试“合并”代码。当您从其他人那里收到代码时,这永远不应该是解决方案。您应该首先尝试了解它的用途。
为此......
对于初学者,Commands
类声明为:
package server.model.players.packets;
因此您需要导入该包。此外,Commands
类中的方法将Client
作为参数。因此,为了使用此类,您需要能够实例化Client
的实例。
是哪个Client
?好吧,查看Commands
中的import语句,它似乎是server.model.players.Client
。您需要访问该类并能够创建实例。
您是给了Commands
的源代码还是编译类或jar的源代码?如果是前者,则需要访问Commands
导入的所有其他类才能编译它。
我怀疑,看着Commands
课程的详细程度,以及你想把它当成黑盒子的愿望(但仍然把它与你的班级合并?!?(这实际上只是一个包装纸) main
方法)),您真的只是在寻找快速解决方案。我会开始变小。抵制合并的冲动。尝试编写自己的Commands
类,用几种简单的方法来学习你的设计课程。您最终会得到一个您理解的流程并获得更好的体验。