サーバー上のプレーヤーからの接続をMysqlDBに記録します。IPDataBaseという名前のテーブルがあります。ユーザーが同じIPで複数のアカウントを使用しているかどうかを確認したいと思います。
テーブルは多かれ少なかれそのように見えます:
PlayerName | IP
Player1 | 0.0.0.0
Player2 | 0.0.0.1
Player1 | 0.0.0.2
もちろん、非現実的な例を使用します。それで、同じプレイヤー名がそこにある可能性がありますが、IPは異なります。したがって、プレーヤーが接続するとすぐに、同じプレーヤーが同じIPで既にログインしているかどうかを確認します。そうでない場合は、新しい行を挿入します。
同じIPを持つプレーヤーがいるかどうかを返すブールメソッドができました。これまでの私のコードは次のとおりです。
注:Bukkitプラグインの場合、タイプPlayerはPlayerであり、文字列Playernameはplayer.getName()によって取得されます。
public boolean checksameip(Player player, String IP){
boolean ret = false;
String playername = player.getName();
try{
Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/WebCom", "root", "MyPW");
Statement stmt = (Statement) con.createStatement();
ResultSet rs = stmt.executeQuery("SELECT PlayerName FROM IPDataBase WHERE IP='"+IP+"'");
if(rs.next()){
//there are results
//have no clue what to put here :S
}else{
ret = false;
}
con.close();
}catch(Exception e){
logm("Could Not Send Data To MYSQL DATABASE SERVER");
}
return ret;
}