SwissMiner91 Posted January 24, 2016 Share Posted January 24, 2016 Hallo zusammen, ich versuche mir eine Art Worldguard Plugin zu Programmieren.Alles läuft über MySQL und die Abfragen laufen super. Jetzt will ich das wenn jemand einen Block abbaut und nicht der Besitzer dieses Landes ist, das es den Block wieder setzt. Bis zum senden der Nachricht: "Du hast keine Rechte" funktioniert alles, jedoch wird der Block nicht wieder gesetzt. Kann mir da wer helfen? Hier der Code: @EventHandler public void onBlockBreak(BlockBreakEvent event) { Material block = event.getBlock().getType(); int x = event.getBlock().getX(); int y = event.getBlock().getY(); int z = event.getBlock().getZ(); String chunk = event.getBlock().getChunk().toString(); mysql sql = this.getMySQL(); Connection conn = sql.getConnection(); ResultSet rs = null; PreparedStatement st = null; try { st = conn.prepareStatement("SELECT * FROM gs WHERE chunk LIKE ?"); st.setString(1, chunk); rs = st.executeQuery(); rs.last(); if(rs.getRow() == 0) { event.getPlayer().sendMessage(ChatColor.GREEN + "[LAND] - " + ChatColor.RED + "Du musst dieses Land erst kaufen!"); event.getPlayer().sendMessage(ChatColor.WHITE + "Benutze dazu /landkaufen"); String world = event.getPlayer().getWorld().toString(); Block getblock = this.getServer().getWorld(world).getBlockAt(x, y, z); getblock.setType(block); return; } else { String name = event.getPlayer().getName().toString(); if(rs.getString("besitzer") == name) { return; } else { event.getPlayer().sendMessage(ChatColor.GREEN + "[LAND] - " + ChatColor.RED + "Du hast auf diesem Grundstück keine Rechte!"); String world = event.getPlayer().getWorld().toString(); Block getblock = this.getServer().getWorld(world).getBlockAt(x, y, z); getblock.setType(block); return; } } } catch (SQLException e) { e.printStackTrace(); } } Freundlicher Gruss SwissMiner91 Link to comment Share on other sites More sharing options...
Yuki Posted January 25, 2016 Share Posted January 25, 2016 (edited) Hi, Zitat Block getblock = this.getServer().getWorld(world).getBlockAt(x, y, z); getblock.setType(block); Warum machst du es hier uso umständlich, wenn du oben schon richtig mit event.getBlock() arbeitest. Es sollte hier also auch folgendes genügen: event.getBlock().setType(...) Ich kann es jetzt nicht genau sagen, aber im BlockBreakEvent ist der Block ja im Grunde schon zerstört und daher wird es schwierig diesen mit getBlockAt() abzufragen. -Yuki Edited January 25, 2016 by Yuki Link to comment Share on other sites More sharing options...
Joey Posted January 29, 2016 Share Posted January 29, 2016 Warum cancelst du nicht einfach das Event ? Mfg, Joey Link to comment Share on other sites More sharing options...
loupix_ Posted April 25, 2016 Share Posted April 25, 2016 (edited) Jup einfach event.setCancelled(true); Das macht das Setzen Rückgängig Edited April 25, 2016 by loupix_ Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now