Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package me.dasneueupdate;
- import java.util.ArrayList;
- import java.util.HashMap;
- import com.nimbusds.jose.util.Container;
- import com.nukkitx.fakeinventories.FakeInventoriesCommand;
- import com.nukkitx.fakeinventories.FakeInventoriesPlugin;
- import com.nukkitx.fakeinventories.inventory.FakeInventories;
- import com.nukkitx.fakeinventories.inventory.FakeInventory;
- import cn.nukkit.Player;
- import cn.nukkit.command.Command;
- import cn.nukkit.command.CommandMap;
- import cn.nukkit.command.CommandSender;
- import cn.nukkit.command.data.CommandParamType;
- import cn.nukkit.command.data.CommandParameter;
- import cn.nukkit.event.EventHandler;
- import cn.nukkit.event.Listener;
- import cn.nukkit.event.inventory.InventoryCloseEvent;
- import cn.nukkit.event.inventory.InventoryMoveItemEvent;
- import cn.nukkit.event.player.PlayerCommandPreprocessEvent;
- import cn.nukkit.event.player.PlayerFormRespondedEvent;
- import cn.nukkit.event.player.PlayerMoveEvent;
- import cn.nukkit.event.server.DataPacketReceiveEvent;
- import cn.nukkit.event.server.DataPacketSendEvent;
- import cn.nukkit.form.element.ElementButton;
- import cn.nukkit.form.window.FormWindowSimple;
- import cn.nukkit.inventory.ChestInventory;
- import cn.nukkit.inventory.Inventory;
- import cn.nukkit.inventory.InventoryHolder;
- import cn.nukkit.item.Item;
- import cn.nukkit.item.enchantment.Enchantment;
- import cn.nukkit.level.Level;
- import cn.nukkit.math.Vector3;
- import cn.nukkit.network.protocol.BlockEventPacket;
- import cn.nukkit.network.protocol.ContainerClosePacket;
- import cn.nukkit.network.protocol.ContainerOpenPacket;
- import cn.nukkit.network.protocol.InventoryContentPacket;
- import cn.nukkit.plugin.PluginBase;
- import me.dasneueupdate.commands.BCommand;
- public class Main extends PluginBase implements Listener {
- public HashMap<Player, OpenInvs> openinvs = new HashMap<Player, OpenInvs>();
- public HashMap<Inventory, OpenInvs> openinvs1 = new HashMap<Inventory, OpenInvs>();
- private static String string1 = "§cDu hast vergessen einen Spieler anzugeben!";
- private static String string2 = "Delete";
- private static String string3 = "Copy into my inventory";
- private static String string4 = "§aDas Item wurde zu deinem Inventar hinzugefügt!";
- private static String string5 = "§cDas Item konnte nicht zu deinem Inventar hinzugefügt werden da dein Inventar voll ist!";
- private static String string6 = "invsee";
- private static String string7 = "invedit";
- private static String string8 = "default";
- private static String string9 = string6;
- private static String string10 = string1;
- private static String string11 = string1;
- private static String string12 = string1;
- private static String string13 = string1;
- private static String string14 = string1;
- private static String string15 = string1;
- private static String string16 = string1;
- private static String string17 = string1;
- private static String string18 = string1;
- private static String string19 = string1;
- private static String string20 = string1;
- private static String string21 = string1;
- private static String string22 = string1;
- private static String string23 = string1;
- private static String string24 = string1;
- private static String string25 = string1;
- private static String string26 = string1;
- @Override
- public void onEnable() {
- this.getServer().getPluginManager().registerEvents(this, this);
- CommandMap map = getServer().getCommandMap();
- Command invsee1 = new BCommand(string6);
- Command invedit = new BCommand(string7);
- CommandParameter[] array = {new CommandParameter("playername", CommandParamType.STRING, false)};
- invsee1.addCommandParameters(string8, array);
- invedit.addCommandParameters(string8, array);
- map.register(string6, invsee1);
- map.register(string6, invedit);
- }
- @EventHandler
- public void onMove(PlayerMoveEvent event) {
- if (openinvs.containsKey(event.getPlayer())) {
- openinvs.remove(event.getPlayer());
- openinvs1.remove(event.getPlayer().getInventory());
- sendContents(event.getPlayer(), event.getPlayer());
- event.getPlayer().sendAllInventories();
- }
- }
- // @EventHandler
- // public void onCloseInventory(InventoryCloseEvent event) {
- // openinvs.remove(event.getPlayer());
- // sendContents(event.getPlayer(), event.getPlayer());
- // event.getPlayer().sendAllInventories();
- // }
- @EventHandler
- public void onPacketRecived(DataPacketSendEvent event) {
- if (event.getPacket() instanceof InventoryContentPacket && openinvs.containsKey(event.getPlayer())) {
- event.setCancelled(true);
- }
- }
- @EventHandler
- public void onFormResponse(PlayerFormRespondedEvent e) {
- try {
- Player p = e.getPlayer();
- if(e.getWindow() instanceof FormWindowSimple) {
- FormWindowSimple gui = (FormWindowSimple)e.getWindow();
- String responseName = gui.getResponse().getClickedButton().getText();
- Player player = getServer().getPlayer(gui.getTitle());
- if (responseName.equals(string2) || responseName.equals(string3)) {
- int slot = Integer.parseInt(gui.getContent().replaceFirst("Slot: ", "").split(" ")[0]) - 1;
- Item item = player.getInventory().getItem(slot);
- Item nitem = new Item(0);
- nitem.setCount(0);
- if (responseName.equals(string2)) {
- player.getInventory().setItem(slot, nitem);
- }
- if (responseName.equals(string3)) {
- if (p.getInventory().canAddItem(item)) {
- p.getInventory().addItem(item);
- p.sendMessage(string4);
- }else {
- p.sendMessage(string5);
- }
- }
- }else if (!gui.getContent().equals("Enderchest") && !gui.getContent().startsWith("Slot_enderchest") && !gui.getResponse().getClickedButton().equals("Get this Item!")){
- Player player1 = getServer().getPlayer(gui.getTitle());
- String slot = responseName.replaceFirst("Slot ", "").split(" ")[0];
- Item item = player.getInventory().getItem(Integer.parseInt(slot) - 1);
- FormWindowSimple gui1 = new FormWindowSimple(player1.getName(), "Slot_enderchest " + slot);
- String enchantments = "";
- int i = 0;
- for (Enchantment enc:item.getEnchantments()) {
- i++;
- if (i > 1) {
- enchantments += ",";
- }
- enchantments += enc.getName() + " " + enc.getLevel();
- }
- String lore = "Lore: ";
- i = 0;
- for (String s:item.getLore()) {
- i++;
- if (i > 1) {
- s += "\n";
- }
- lore += s;
- }
- if (lore.length() <= 6) lore = "";
- gui1.setContent("Slot: " + slot + " \nName: " + item.getName() + "\n" + "Count: " + item.getCount() + "\n" + "§5Enchantments: " + enchantments + "\n§r" + lore + "\n");
- gui1.addButton(new ElementButton(string2));
- gui1.addButton(new ElementButton(string3));
- p.showFormWindow(gui1);
- }
- if (gui.getContent().startsWith("§0§r") && gui.getResponse().getClickedButton().getText().equals("Get this Item!")) {
- String slot = responseName.replaceFirst("§0§rSlot ", "").split(" ")[0];
- int slot1 = Integer.parseInt(slot);
- Player player1 = getServer().getPlayer(gui.getTitle());
- Item item = player1.getEnderChestInventory().getItem(slot1);
- Item nitem = new Item(0);
- nitem.setCount(0);
- if (p.getInventory().canAddItem(item)) {
- p.getInventory().addItem(item);
- player1.getEnderChestInventory().setItem(slot1, nitem);
- }
- }
- if (gui.getContent().equals("Enderchest")) {
- Player player1 = getServer().getPlayer(gui.getTitle());
- String slot = responseName.replaceFirst("Slot ", "").split(" ")[0];
- Item item = player.getEnderChestInventory().getItem(Integer.parseInt(slot) - 1);
- FormWindowSimple gui1 = new FormWindowSimple(player1.getName(), "Slot_enderchest " + slot);
- String enchantments = "";
- int i = 0;
- for (Enchantment enc:item.getEnchantments()) {
- i++;
- if (i > 1) {
- enchantments += ",";
- }
- enchantments += enc.getName() + " " + enc.getLevel();
- }
- String lore = "Lore: ";
- i = 0;
- for (String s:item.getLore()) {
- i++;
- if (i > 1) {
- s += "\n";
- }
- lore += s;
- }
- if (lore.length() <= 6) lore = "";
- gui1.setContent("§0§rSlot: " + slot + " \nName: " + item.getName() + "\n" + "Count: " + item.getCount() + "\n" + "§5Enchantments: " + enchantments + "\n§r" + lore + "\n");
- gui1.addButton(new ElementButton("Get this Item!"));
- p.showFormWindow(gui1);
- }
- if (gui.getResponse().getClickedButton().getText().equals("Lege das Item in meiner Hand in die Kiste")) {
- Item item = e.getPlayer().getInventory().getItemInHand();
- int handitemslot = e.getPlayer().getInventory().getHeldItemSlot();
- Item nitem = new Item(0);
- nitem.setCount(0);
- if (player.getEnderChestInventory().canAddItem(item)) {
- player.getEnderChestInventory().addItem(item);
- e.getPlayer().getInventory().setItem(handitemslot, nitem);
- }
- }
- }
- }catch (Exception ex2) {
- }
- }
- @EventHandler
- public void onCommand(PlayerCommandPreprocessEvent event) {
- try {
- String[] array = event.getMessage().split(" ");
- /*
- * if (event.getMessage().toLowerCase().startsWith("/ec") ||
- * event.getMessage().toLowerCase().startsWith("/enderchest")) { if
- * (event.getPlayer().hasPermission("inv.enderchest")) { String playername =
- * event.getMessage().toLowerCase().replaceFirst("/ec ",
- * "").replaceFirst("/enderchest", ""); if (playername.startsWith(" "))
- * playername.replaceFirst(" ", ""); Player player =
- * getServer().getPlayer(playername); if (player == null) player =
- * event.getPlayer(); FormWindowSimple gui = new
- * FormWindowSimple(player.getName(),"Enderchest"); gui.addButton(new
- * ElementButton("Lege das Item in meiner Hand in die Kiste")); for(int i = 0; i
- * < player.getEnderChestInventory().getSize();i++) { Item item =
- * player.getEnderChestInventory().getItem(i); if (item.getCount() <= 0)
- * continue; String s = ""; s = "Slot " + String.valueOf(i + 1) + " " +
- * item.getCount() + "x" + " " + item.getName(); gui.addButton(new
- * ElementButton(s)); } event.getPlayer().showFormWindow(gui);
- * event.getPlayer().sendMessage("§aDu siehst jetzt eine Enderchest!");
- * event.setCancelled(); }else { event.getPlayer().
- * sendMessage("§cDu hast nicht die benötigten Berechtigungen!"); } }else
- */ if (event.getMessage().toLowerCase().startsWith("/invedit ")) {
- if (event.getPlayer().hasPermission("inv.edit")) {
- Player p = getServer().getPlayer(array[1]);
- if (p == null) {
- event.getPlayer().sendMessage("§cDer angegebende Spieler wurde nicht gefunden!");
- event.setCancelled();
- return;
- }
- FormWindowSimple gui = new FormWindowSimple(p.getName(), "You see the Inventory of " + p.getName());
- for(int i = 0; i < p.getInventory().getSize();i++) {
- Item item = p.getInventory().getItem(i);
- if (item.getCount() <= 0) continue;
- String s = "";
- s = "Slot " + String.valueOf(i + 1) + " " + item.getCount() + "x" + " " + item.getName();
- gui.addButton(new ElementButton(s));
- }
- event.getPlayer().showFormWindow(gui);
- event.getPlayer().sendMessage("§aDu siehst das Inventar von " + p.getName());
- }else {
- event.getPlayer().sendMessage("§cDu hast nicht die benötigten Berechtigungen!");
- }
- event.setCancelled();
- }else if (event.getMessage().toLowerCase().startsWith("/invsee ")) {
- if (event.getPlayer().hasPermission("inv.see")) {
- Player p = getServer().getPlayer(array[1]);
- if (p == null) {
- event.getPlayer().sendMessage("§cDer angegebende Spieler wurde nicht gefunden!");
- event.setCancelled();
- return;
- }
- p.getInventory().open(event.getPlayer());
- ContainerOpenPacket pk = new ContainerOpenPacket();
- pk.windowId = p.getWindowId(p.getInventory());
- pk.type = p.getInventory().getType().getNetworkType();
- InventoryHolder holder = p.getPlayer().getInventory().getHolder();
- if(holder instanceof Vector3) {
- pk.x = (int)((Vector3)holder).getX();
- pk.y = (int)((Vector3)holder).getY();
- pk.z = (int)((Vector3)holder).getZ();
- } else {
- pk.x = pk.y = pk.z = 0;
- }
- event.getPlayer().dataPacket(pk);
- sendContents(event.getPlayer(), p);
- openinvs.put(event.getPlayer(), new OpenInvs(event.getPlayer(), p));
- openinvs1.put(event.getPlayer().getInventory(), new OpenInvs(event.getPlayer(), p));
- event.getPlayer().sendMessage("§aDu siehst das Inventar von " + p.getName());
- }else {
- event.getPlayer().sendMessage("§cDu hast nicht die benötigten Berechtigungen!");
- }
- event.setCancelled();
- }else if (event.getMessage().toLowerCase().startsWith("/invsee") || event.getMessage().toLowerCase().startsWith("/invedit")) {
- event.getPlayer().sendMessage(string1);
- event.setCancelled();
- }
- }catch (Exception e) {
- }
- }
- public void sendContents(Player player,Player player2) {
- InventoryContentPacket pk = new InventoryContentPacket();
- pk.slots = new Item[player2.getInventory().getSize()];
- for(int i = 0; i < player2.getInventory().getSize(); ++i) {
- pk.slots[i] = player2.getInventory().getItem(i);
- }
- int id = player2.getWindowId(player2.getInventory());
- if(id != -1 && player2.spawned) {
- pk.inventoryId = id;
- player.dataPacket(pk);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment