Jump to content

Abgebauten Block wieder setzen


Empfohlene Beiträge

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 zu diesem Kommentar
Auf anderen Seiten teilen

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

bearbeitet von Yuki
Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 2 months later...

Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde dich hier an.

Jetzt anmelden
×
×
  • Neu erstellen...
B
B