Hallo zusammen,
ich habe ein Plugin programmiert, dass DeathChest spawnt wenn einer stirbt.
Jetzt habe ich das Problem, dass nur die Items aus dem Inventar in die Kiste kommen und nicht die Rüstung aus den Armor Slots.
Ich habe mal den Code hier rein gepasted:
Wenn mir jemand helfen könnte wäre ich sehr dankbar.
MFG
didi090302
ich habe ein Plugin programmiert, dass DeathChest spawnt wenn einer stirbt.
Jetzt habe ich das Problem, dass nur die Items aus dem Inventar in die Kiste kommen und nicht die Rüstung aus den Armor Slots.
Ich habe mal den Code hier rein gepasted:
Code:
package didi090302.rpg;
import java.util.HashMap;
import org.bukkit.Bukkit;
import org.bukkit.Material;
import org.bukkit.block.Block;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.block.Action;
import org.bukkit.event.entity.PlayerDeathEvent;
import org.bukkit.event.player.PlayerInteractEvent;
import org.bukkit.inventory.Inventory;
public class DeathChest implements Listener {
public static HashMap<Block, Inventory> DeathChest = new HashMap<Block, Inventory>();
@EventHandler
public void onDeath(PlayerDeathEvent e) {
Player p = e.getEntity();
Block blockchest = p.getWorld().getBlockAt(p.getLocation().add(0,0.5,0));
blockchest.setType(Material.CHEST);
Inventory inv = Bukkit.getServer().createInventory(p.getInventory().getHolder(), 54, "§3"+p.getName()+"'s Items");
inv.clear();
inv.setContents(p.getInventory().getArmorContents());
inv.setContents(p.getInventory().getContents());
DeathChest.put(blockchest, inv);
e.getDrops().clear();
}
@EventHandler
public void onOpen(PlayerInteractEvent e) {
if(e.getAction() == Action.RIGHT_CLICK_BLOCK) {
if(e.getClickedBlock().getType() == Material.CHEST) {
Block block = e.getClickedBlock();
for(Block blocks : DeathChest.keySet()) {
if(blocks.getLocation().equals(block.getLocation())) {
e.setCancelled(true);
e.getPlayer().openInventory(DeathChest.get(blocks));
}
}
}
}
}
}
Wenn mir jemand helfen könnte wäre ich sehr dankbar.
MFG
didi090302