dnuhax

Untitled

Jun 9th, 2019
179
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 13.26 KB | None | 0 0
  1. package me.dasneueupdate;
  2.  
  3. import java.util.ArrayList;
  4. import java.util.HashMap;
  5.  
  6. import com.nimbusds.jose.util.Container;
  7. import com.nukkitx.fakeinventories.FakeInventoriesCommand;
  8. import com.nukkitx.fakeinventories.FakeInventoriesPlugin;
  9. import com.nukkitx.fakeinventories.inventory.FakeInventories;
  10. import com.nukkitx.fakeinventories.inventory.FakeInventory;
  11.  
  12. import cn.nukkit.Player;
  13. import cn.nukkit.command.Command;
  14. import cn.nukkit.command.CommandMap;
  15. import cn.nukkit.command.CommandSender;
  16. import cn.nukkit.command.data.CommandParamType;
  17. import cn.nukkit.command.data.CommandParameter;
  18. import cn.nukkit.event.EventHandler;
  19. import cn.nukkit.event.Listener;
  20. import cn.nukkit.event.inventory.InventoryCloseEvent;
  21. import cn.nukkit.event.inventory.InventoryMoveItemEvent;
  22. import cn.nukkit.event.player.PlayerCommandPreprocessEvent;
  23. import cn.nukkit.event.player.PlayerFormRespondedEvent;
  24. import cn.nukkit.event.player.PlayerMoveEvent;
  25. import cn.nukkit.event.server.DataPacketReceiveEvent;
  26. import cn.nukkit.event.server.DataPacketSendEvent;
  27. import cn.nukkit.form.element.ElementButton;
  28. import cn.nukkit.form.window.FormWindowSimple;
  29. import cn.nukkit.inventory.ChestInventory;
  30. import cn.nukkit.inventory.Inventory;
  31. import cn.nukkit.inventory.InventoryHolder;
  32. import cn.nukkit.item.Item;
  33. import cn.nukkit.item.enchantment.Enchantment;
  34. import cn.nukkit.level.Level;
  35. import cn.nukkit.math.Vector3;
  36. import cn.nukkit.network.protocol.BlockEventPacket;
  37. import cn.nukkit.network.protocol.ContainerClosePacket;
  38. import cn.nukkit.network.protocol.ContainerOpenPacket;
  39. import cn.nukkit.network.protocol.InventoryContentPacket;
  40. import cn.nukkit.plugin.PluginBase;
  41. import me.dasneueupdate.commands.BCommand;
  42.  
  43. public class Main extends PluginBase implements Listener {
  44. public HashMap<Player, OpenInvs> openinvs = new HashMap<Player, OpenInvs>();
  45. public HashMap<Inventory, OpenInvs> openinvs1 = new HashMap<Inventory, OpenInvs>();
  46. private static String string1 = "§cDu hast vergessen einen Spieler anzugeben!";
  47. private static String string2 = "Delete";
  48. private static String string3 = "Copy into my inventory";
  49. private static String string4 = "§aDas Item wurde zu deinem Inventar hinzugefügt!";
  50. private static String string5 = "§cDas Item konnte nicht zu deinem Inventar hinzugefügt werden da dein Inventar voll ist!";
  51. private static String string6 = "invsee";
  52. private static String string7 = "invedit";
  53. private static String string8 = "default";
  54. private static String string9 = string6;
  55. private static String string10 = string1;
  56. private static String string11 = string1;
  57. private static String string12 = string1;
  58. private static String string13 = string1;
  59. private static String string14 = string1;
  60. private static String string15 = string1;
  61. private static String string16 = string1;
  62. private static String string17 = string1;
  63. private static String string18 = string1;
  64. private static String string19 = string1;
  65. private static String string20 = string1;
  66. private static String string21 = string1;
  67. private static String string22 = string1;
  68. private static String string23 = string1;
  69. private static String string24 = string1;
  70. private static String string25 = string1;
  71. private static String string26 = string1;
  72. @Override
  73. public void onEnable() {
  74. this.getServer().getPluginManager().registerEvents(this, this);
  75. CommandMap map = getServer().getCommandMap();
  76. Command invsee1 = new BCommand(string6);
  77. Command invedit = new BCommand(string7);
  78. CommandParameter[] array = {new CommandParameter("playername", CommandParamType.STRING, false)};
  79. invsee1.addCommandParameters(string8, array);
  80. invedit.addCommandParameters(string8, array);
  81. map.register(string6, invsee1);
  82. map.register(string6, invedit);
  83. }
  84. @EventHandler
  85. public void onMove(PlayerMoveEvent event) {
  86. if (openinvs.containsKey(event.getPlayer())) {
  87. openinvs.remove(event.getPlayer());
  88. openinvs1.remove(event.getPlayer().getInventory());
  89. sendContents(event.getPlayer(), event.getPlayer());
  90. event.getPlayer().sendAllInventories();
  91. }
  92. }
  93. // @EventHandler
  94. // public void onCloseInventory(InventoryCloseEvent event) {
  95. // openinvs.remove(event.getPlayer());
  96. // sendContents(event.getPlayer(), event.getPlayer());
  97. // event.getPlayer().sendAllInventories();
  98. // }
  99. @EventHandler
  100. public void onPacketRecived(DataPacketSendEvent event) {
  101. if (event.getPacket() instanceof InventoryContentPacket && openinvs.containsKey(event.getPlayer())) {
  102. event.setCancelled(true);
  103. }
  104. }
  105.  
  106. @EventHandler
  107. public void onFormResponse(PlayerFormRespondedEvent e) {
  108. try {
  109. Player p = e.getPlayer();
  110. if(e.getWindow() instanceof FormWindowSimple) {
  111. FormWindowSimple gui = (FormWindowSimple)e.getWindow();
  112. String responseName = gui.getResponse().getClickedButton().getText();
  113. Player player = getServer().getPlayer(gui.getTitle());
  114. if (responseName.equals(string2) || responseName.equals(string3)) {
  115. int slot = Integer.parseInt(gui.getContent().replaceFirst("Slot: ", "").split(" ")[0]) - 1;
  116. Item item = player.getInventory().getItem(slot);
  117. Item nitem = new Item(0);
  118. nitem.setCount(0);
  119. if (responseName.equals(string2)) {
  120. player.getInventory().setItem(slot, nitem);
  121. }
  122. if (responseName.equals(string3)) {
  123. if (p.getInventory().canAddItem(item)) {
  124. p.getInventory().addItem(item);
  125. p.sendMessage(string4);
  126. }else {
  127. p.sendMessage(string5);
  128. }
  129. }
  130. }else if (!gui.getContent().equals("Enderchest") && !gui.getContent().startsWith("Slot_enderchest") && !gui.getResponse().getClickedButton().equals("Get this Item!")){
  131. Player player1 = getServer().getPlayer(gui.getTitle());
  132. String slot = responseName.replaceFirst("Slot ", "").split(" ")[0];
  133. Item item = player.getInventory().getItem(Integer.parseInt(slot) - 1);
  134. FormWindowSimple gui1 = new FormWindowSimple(player1.getName(), "Slot_enderchest " + slot);
  135. String enchantments = "";
  136. int i = 0;
  137. for (Enchantment enc:item.getEnchantments()) {
  138. i++;
  139. if (i > 1) {
  140. enchantments += ",";
  141. }
  142. enchantments += enc.getName() + " " + enc.getLevel();
  143. }
  144. String lore = "Lore: ";
  145. i = 0;
  146. for (String s:item.getLore()) {
  147. i++;
  148. if (i > 1) {
  149. s += "\n";
  150. }
  151. lore += s;
  152. }
  153. if (lore.length() <= 6) lore = "";
  154. gui1.setContent("Slot: " + slot + " \nName: " + item.getName() + "\n" + "Count: " + item.getCount() + "\n" + "§5Enchantments: " + enchantments + "\n§r" + lore + "\n");
  155. gui1.addButton(new ElementButton(string2));
  156. gui1.addButton(new ElementButton(string3));
  157. p.showFormWindow(gui1);
  158. }
  159. if (gui.getContent().startsWith("§0§r") && gui.getResponse().getClickedButton().getText().equals("Get this Item!")) {
  160. String slot = responseName.replaceFirst("§0§rSlot ", "").split(" ")[0];
  161. int slot1 = Integer.parseInt(slot);
  162. Player player1 = getServer().getPlayer(gui.getTitle());
  163. Item item = player1.getEnderChestInventory().getItem(slot1);
  164. Item nitem = new Item(0);
  165. nitem.setCount(0);
  166. if (p.getInventory().canAddItem(item)) {
  167. p.getInventory().addItem(item);
  168. player1.getEnderChestInventory().setItem(slot1, nitem);
  169. }
  170. }
  171. if (gui.getContent().equals("Enderchest")) {
  172. Player player1 = getServer().getPlayer(gui.getTitle());
  173. String slot = responseName.replaceFirst("Slot ", "").split(" ")[0];
  174. Item item = player.getEnderChestInventory().getItem(Integer.parseInt(slot) - 1);
  175. FormWindowSimple gui1 = new FormWindowSimple(player1.getName(), "Slot_enderchest " + slot);
  176. String enchantments = "";
  177. int i = 0;
  178. for (Enchantment enc:item.getEnchantments()) {
  179. i++;
  180. if (i > 1) {
  181. enchantments += ",";
  182. }
  183. enchantments += enc.getName() + " " + enc.getLevel();
  184. }
  185. String lore = "Lore: ";
  186. i = 0;
  187. for (String s:item.getLore()) {
  188. i++;
  189. if (i > 1) {
  190. s += "\n";
  191. }
  192. lore += s;
  193. }
  194. if (lore.length() <= 6) lore = "";
  195. gui1.setContent("§0§rSlot: " + slot + " \nName: " + item.getName() + "\n" + "Count: " + item.getCount() + "\n" + "§5Enchantments: " + enchantments + "\n§r" + lore + "\n");
  196. gui1.addButton(new ElementButton("Get this Item!"));
  197. p.showFormWindow(gui1);
  198. }
  199. if (gui.getResponse().getClickedButton().getText().equals("Lege das Item in meiner Hand in die Kiste")) {
  200. Item item = e.getPlayer().getInventory().getItemInHand();
  201. int handitemslot = e.getPlayer().getInventory().getHeldItemSlot();
  202. Item nitem = new Item(0);
  203. nitem.setCount(0);
  204. if (player.getEnderChestInventory().canAddItem(item)) {
  205. player.getEnderChestInventory().addItem(item);
  206. e.getPlayer().getInventory().setItem(handitemslot, nitem);
  207. }
  208. }
  209. }
  210. }catch (Exception ex2) {
  211. }
  212. }
  213. @EventHandler
  214. public void onCommand(PlayerCommandPreprocessEvent event) {
  215. try {
  216. String[] array = event.getMessage().split(" ");
  217. /*
  218. * if (event.getMessage().toLowerCase().startsWith("/ec") ||
  219. * event.getMessage().toLowerCase().startsWith("/enderchest")) { if
  220. * (event.getPlayer().hasPermission("inv.enderchest")) { String playername =
  221. * event.getMessage().toLowerCase().replaceFirst("/ec ",
  222. * "").replaceFirst("/enderchest", ""); if (playername.startsWith(" "))
  223. * playername.replaceFirst(" ", ""); Player player =
  224. * getServer().getPlayer(playername); if (player == null) player =
  225. * event.getPlayer(); FormWindowSimple gui = new
  226. * FormWindowSimple(player.getName(),"Enderchest"); gui.addButton(new
  227. * ElementButton("Lege das Item in meiner Hand in die Kiste")); for(int i = 0; i
  228. * < player.getEnderChestInventory().getSize();i++) { Item item =
  229. * player.getEnderChestInventory().getItem(i); if (item.getCount() <= 0)
  230. * continue; String s = ""; s = "Slot " + String.valueOf(i + 1) + " " +
  231. * item.getCount() + "x" + " " + item.getName(); gui.addButton(new
  232. * ElementButton(s)); } event.getPlayer().showFormWindow(gui);
  233. * event.getPlayer().sendMessage("§aDu siehst jetzt eine Enderchest!");
  234. * event.setCancelled(); }else { event.getPlayer().
  235. * sendMessage("§cDu hast nicht die benötigten Berechtigungen!"); } }else
  236. */ if (event.getMessage().toLowerCase().startsWith("/invedit ")) {
  237. if (event.getPlayer().hasPermission("inv.edit")) {
  238. Player p = getServer().getPlayer(array[1]);
  239. if (p == null) {
  240. event.getPlayer().sendMessage("§cDer angegebende Spieler wurde nicht gefunden!");
  241. event.setCancelled();
  242. return;
  243. }
  244. FormWindowSimple gui = new FormWindowSimple(p.getName(), "You see the Inventory of " + p.getName());
  245. for(int i = 0; i < p.getInventory().getSize();i++) {
  246. Item item = p.getInventory().getItem(i);
  247. if (item.getCount() <= 0) continue;
  248. String s = "";
  249. s = "Slot " + String.valueOf(i + 1) + " " + item.getCount() + "x" + " " + item.getName();
  250. gui.addButton(new ElementButton(s));
  251. }
  252. event.getPlayer().showFormWindow(gui);
  253. event.getPlayer().sendMessage("§aDu siehst das Inventar von " + p.getName());
  254. }else {
  255. event.getPlayer().sendMessage("§cDu hast nicht die benötigten Berechtigungen!");
  256. }
  257. event.setCancelled();
  258. }else if (event.getMessage().toLowerCase().startsWith("/invsee ")) {
  259. if (event.getPlayer().hasPermission("inv.see")) {
  260. Player p = getServer().getPlayer(array[1]);
  261. if (p == null) {
  262. event.getPlayer().sendMessage("§cDer angegebende Spieler wurde nicht gefunden!");
  263. event.setCancelled();
  264. return;
  265. }
  266. p.getInventory().open(event.getPlayer());
  267. ContainerOpenPacket pk = new ContainerOpenPacket();
  268. pk.windowId = p.getWindowId(p.getInventory());
  269. pk.type = p.getInventory().getType().getNetworkType();
  270. InventoryHolder holder = p.getPlayer().getInventory().getHolder();
  271. if(holder instanceof Vector3) {
  272. pk.x = (int)((Vector3)holder).getX();
  273. pk.y = (int)((Vector3)holder).getY();
  274. pk.z = (int)((Vector3)holder).getZ();
  275. } else {
  276. pk.x = pk.y = pk.z = 0;
  277. }
  278. event.getPlayer().dataPacket(pk);
  279. sendContents(event.getPlayer(), p);
  280. openinvs.put(event.getPlayer(), new OpenInvs(event.getPlayer(), p));
  281. openinvs1.put(event.getPlayer().getInventory(), new OpenInvs(event.getPlayer(), p));
  282. event.getPlayer().sendMessage("§aDu siehst das Inventar von " + p.getName());
  283. }else {
  284. event.getPlayer().sendMessage("§cDu hast nicht die benötigten Berechtigungen!");
  285. }
  286. event.setCancelled();
  287. }else if (event.getMessage().toLowerCase().startsWith("/invsee") || event.getMessage().toLowerCase().startsWith("/invedit")) {
  288. event.getPlayer().sendMessage(string1);
  289. event.setCancelled();
  290. }
  291. }catch (Exception e) {
  292. }
  293. }
  294. public void sendContents(Player player,Player player2) {
  295. InventoryContentPacket pk = new InventoryContentPacket();
  296. pk.slots = new Item[player2.getInventory().getSize()];
  297.  
  298. for(int i = 0; i < player2.getInventory().getSize(); ++i) {
  299. pk.slots[i] = player2.getInventory().getItem(i);
  300. }
  301. int id = player2.getWindowId(player2.getInventory());
  302. if(id != -1 && player2.spawned) {
  303. pk.inventoryId = id;
  304. player.dataPacket(pk);
  305. }
  306. }
  307. }
Advertisement
Add Comment
Please, Sign In to add comment