• Es freut uns dass du in unser Minecraft Forum gefunden hast. Hier kannst du mit über 130.000 Minecraft Fans über Minecraft diskutieren, Fragen stellen und anderen helfen. In diesem Minecraft Forum kannst du auch nach Teammitgliedern, Administratoren, Moderatoren , Supporter oder Sponsoren suchen. Gerne kannst du im Offtopic Bereich unseres Minecraft Forums auch über nicht Minecraft spezifische Themen reden. Wir hoffen dir gefällt es in unserem Minecraft Forum!

Plattform automatisch generieren

Nexus15

Kuhfänger
Registriert
30 September 2012
Beiträge
89
Diamanten
0
Hallo,
Ich habe heute mal wieder ein Problem mit meinem Plugin. Das Plugin soll an einem Random Punkt eine Plattform erstellen. Auf dieser Plattform steht eine Kiste, die komischer weiße da ist, aber leider nicht die Plattform. Ich hoffe ihr könnt mir helfen.

Hinweis: Es gibt kein Fehler in der Console!
Hier mein Code:
public class ClickSign implements Listener {
public String user = "Username";
public String pass = "473983";
public String url = "jdbc:mysql://Adresse:pORT/Datenbank";
@EventHandler
public void onClick(PlayerInteractEvent e) {
if(e.getAction() == Action.RIGHT_CLICK_BLOCK) {
Player p = e.getPlayer();
if(e.getClickedBlock().getState() instanceof Sign) {
Sign s = (Sign) e.getClickedBlock().getState();
if(s.getLine(0).equalsIgnoreCase("[Farm]")) {
if(s.getLine(1).equalsIgnoreCase("Erstellen")) {
Random xg = new Random();
int x = xg.nextInt(20000);
int y = 64;
int z = xg.nextInt(20000);
try {
String pname = p.getName();
Connection con = DriverManager.getConnection(url, user, pass);
PreparedStatement QA = con.prepareStatement("INSERT INTO users(name, x, y, z) VALUES ('"+pname+"', '"+x+"', '"+y+"', '"+z+"');");
QA.executeUpdate();
QA.close();
con.close();
Location loc = p.getLocation();
loc.setX(x);
loc.setY(y);
loc.setZ(z);
p.teleport(loc);
generatePlot(loc, 25, y);
loc.setX(loc.getBlockX() + 1);
World w = loc.getWorld();
Block b = w.getBlockAt(loc);
b.setType(Material.CHEST);
} catch (SQLException ex) {
p.sendMessage(ChatColor.RED + "Sie besitzen bereits eine Farm.");
p.sendMessage(ChatColor.GRAY + "Falls Sie keine Farm besitzen sollten, kontaktieren Sie bitte den Support.");
Logger.getLogger(ClickSign.class.getName()).log(Level.SEVERE, null, ex);
}

} else if (s.getLine(1).equalsIgnoreCase("Ab nach Hause!")) {

} else if (s.getLine(1).equalsIgnoreCase("Restart")) {

}
}

}
}
}
public void generatePlot(Location loc, int length, int yloc) {
World w = loc.getWorld();

int x_start = loc.getBlockY();
int z_start = loc.getBlockZ();

int x_length = x_start + length;
int z_length = z_start + length;

for(int x_operate = x_start; x_operate <= x_length; x_operate++) {

for(int z_operate = z_start; z_operate <= z_length; z_operate++) {
Block b = w.getBlockAt(x_operate, yloc, z_operate);
b.setType(Material.DIRT);
}
}
}
}
 
G

games6471

Guest
int x_start = loc.getBlockY();

Das ist falsch, es müsste

int x_start = loc.getBlockX();

sein. Ich glaub da muss ich nichts weiter erklären, da nur ein Buchstabe falsche ist. Ein Tipp noch als Programmierstandart gilt, dass vor Blockklammer, also {, ein Leerzeichen kommt
 
Oben