Java / Bukkit: Minecraft Inventar Plätze sperren?
Ich habe ein Plugin programmiert, welches einen Inventarslot von jemandem sperren soll. Aber es klappt nicht. Wieso?
Sourcecode:
package eu.einfachsecurity.inv;
import org.bukkit.Material;
import org.bukkit.entity.Player;
import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.inventory.Inventory;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta;
import org.bukkit.plugin.java.JavaPlugin;
public class InvSperre extends JavaPlugin {
public void onJoin(PlayerJoinEvent e) {
Player p = e.getPlayer();
if (!(p.hasPermission("system.invsperre.ignore"))) {
Inventory pinv = p.getInventory();
ItemStack sperre = new ItemStack(Material.BARRIER);
ItemMeta sperremeta = sperre.getItemMeta();
sperremeta.setDisplayName("§aDieser Inventar-Platz ist gesperrt! Du kannst dir diesen Inventar-Platz kaufen.");
pinv.addItem(sperre);
}
}
}
3 Antworten
Ich denke du musst einige Events Speeren, zum Beispiel wenn der Spieler versucht das item wegzuwerfen dass du das Event canceln tust wenn er keine Rechte hat.
ich hatte mal etwas mehr Ahnung in spigot Plugins programmieren
Du hast denke ich den
@EventHandler vergessen...
Was genau soll das denn bringen?
Hallo EinfachSecurity,
was genau verstehst du unter Inventar sperren, möchtest du einfach verhindern, das der Spieler Items aus seinem Inventar holt:
@EventHandler
public void onInventoryClick(InventoryClickEvent e) //Kenne den genauen Namen nicht
{
if(...)
{
e.setcancelled(true);
}
}
Oder möchtest du Items ersetzen? Das was du machst ist beim Spieler Join dem Spieler eine Barriere ins Inventar zu legen oder vermutlich einen Fehler zurück bekommen wenn das Inventar voll ist.
Mfg
TOminerTV
Geht immer noch nicht!