我的java代码出了问题。我在创建之前检查用户是否已经存在。但这似乎不起作用。我登录到mongo shell并检查文档是否已创建。该文件已成功添加。
这是我的班级。无效的方法是createMyTrazUser():
public class MyTrazUser {
String name;
Player player;
List<World> worldList = new ArrayList<World>();
public MyTrazUser(String name) {
this.name = name;
this.player = Bukkit.getPlayer(name);
}
public boolean hasPlot() {
//Not finished
return new File("/BuildEvent/" + getUUID() + ".yml").exists();
}
public UUID getUUID() {
//We can do this request because the Fetcher class caches the uuid's for us.
return UUIDFetcher.getUUID(this.name);
}
public String getName() {
return name;
}
public Player getPlayer() {
return player;
}
public ArrayList<String> getWorlds() {
DBCursor playerFind = Bootstrap.getMongoManager().getPlayers().find(new BasicDBObject("UUID",getUUID()));
DBObject found = playerFind.next();
if(found == null) {
System.out.println("Backend -> User not found! We do not create the user because there could be an error!");
} else {
return (ArrayList)found.get("Worlds");
}
return null;
}
public void createMyTrazUser() {
String uuid = getUUID().toString();
DBObject request = new BasicDBObject("UUID",getUUID());
DBCursor cursor = Bootstrap.getMongoManager().getPlayers().find(request);
if(!cursor.hasNext()) {
System.out.println("Cursor next: " + cursor.next());
List<String> playerWorlds = new ArrayList<String>(); //Player can't have any worlds at the creation so we will leave that null
//Building up the Document
DBObject playerRequest = new BasicDBObject("UUID",uuid)
.append("Name", UUIDFetcher.getName(UUID.fromString(uuid)))
.append("RegisterTimestamp",new SimpleDateFormat("yyyy.MM.dd.HH.mm.ss").format(new Date()))
.append("Worlds",playerWorlds)
.append("Logins",1);
//And flush!!!!
Bootstrap.getMongoManager().getPlayers().insert(playerRequest);
//We print the just created user to see if something went wrong.
System.out.println("Backend -> Created user with the following entries: " +
playerRequest.toString());
} else {
System.out.println("Backend -> User already exists. OK.");
return;
}
}
public DBObject getDocument() {
DBCursor playerFind = Bootstrap.getMongoManager().getPlayers().find(new BasicDBObject("UUID",getUUID()));
if(playerFind == null) {
if(playerFind.hasNext()) {
DBObject found = playerFind.next();
if(found == null) {
System.out.println("Backend -> User not found! We do not create the user because there could be an error!");
return null;
} else {
return found;
}
}
System.out.println("Backend -> Could not get request user info! Report!");
return null;
}
System.out.println("Backend -> Could not get request user info! Report!");
return null;
}
}
new MyTrazUser(player.getName())。createMyTrazUser();
我希望你能帮我解决我的代码
祝你好运