Advertisement
Guest User

Untitled

a guest
Nov 21st, 2019
149
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.23 KB | None | 0 0
  1. package io.freehase.patcher;
  2.  
  3. import com.comphenix.protocol.PacketType;
  4. import com.comphenix.protocol.ProtocolLibrary;
  5. import com.comphenix.protocol.ProtocolManager;
  6. import com.comphenix.protocol.events.ListenerPriority;
  7. import com.comphenix.protocol.events.PacketAdapter;
  8. import com.comphenix.protocol.events.PacketEvent;
  9. import java.util.ArrayList;
  10. import org.bukkit.Bukkit;
  11. import org.bukkit.entity.HumanEntity;
  12. import org.bukkit.entity.Player;
  13. import org.bukkit.event.EventHandler;
  14. import org.bukkit.event.Listener;
  15. import org.bukkit.event.block.BlockDispenseEvent;
  16. import org.bukkit.event.inventory.InventoryCloseEvent;
  17. import org.bukkit.event.player.PlayerCommandPreprocessEvent;
  18. import org.bukkit.event.player.PlayerPickupItemEvent;
  19. import org.bukkit.inventory.InventoryHolder;
  20. import org.bukkit.plugin.Plugin;
  21. import org.bukkit.plugin.java.JavaPlugin;
  22.  
  23.  
  24. public class Patcher
  25. extends JavaPlugin
  26. implements Listener
  27. {
  28. private ArrayList<Player> autoCrafters;
  29. private ProtocolManager protocolManager;
  30.  
  31. public void onEnable() {
  32. this.autoCrafters = new ArrayList();
  33.  
  34. if (Bukkit.getPluginManager().isPluginEnabled("ProtocolLib")) {
  35. getLogger().info("ProtocolLib is installed!");
  36. this.protocolManager = ProtocolLibrary.getProtocolManager();
  37.  
  38.  
  39. this.protocolManager.addPacketListener(new PacketAdapter(this, ListenerPriority.NORMAL, new PacketType[] { PacketType.Play.Client.AUTO_RECIPE })
  40. {
  41.  
  42.  
  43. public void onPacketReceiving(PacketEvent e)
  44. {
  45. Player p = e.getPlayer();
  46. if (!Patcher.this.autoCrafters.contains(p))
  47. Patcher.this.autoCrafters.add(p);
  48. }
  49. });
  50. } else {
  51. getLogger().info("ProtocolLib isn't found! Disabling..");
  52. Bukkit.getPluginManager().disablePlugin(this);
  53. }
  54.  
  55. Bukkit.getPluginManager().registerEvents(this, this);
  56. }
  57.  
  58.  
  59. @EventHandler(ignoreCancelled = true)
  60. public void onDrop(PlayerPickupItemEvent e) {
  61. Player p = e.getPlayer();
  62.  
  63. if (this.autoCrafters.contains(p))
  64. e.setCancelled(true);
  65. }
  66.  
  67. @EventHandler(ignoreCancelled = true)
  68. public void onClose(InventoryCloseEvent e) {
  69. HumanEntity he = e.getPlayer();
  70.  
  71. if (he instanceof Player) {
  72. Player p = (Player)he;
  73. if (this.autoCrafters.contains(p))
  74. this.autoCrafters.remove(p);
  75. }
  76. }
  77.  
  78. @EventHandler(ignoreCancelled = true)
  79. public void onCommand(PlayerCommandPreprocessEvent e) {
  80. Player p = e.getPlayer();
  81.  
  82. if ((e.getMessage().startsWith("/pex promote") || e.getMessage().startsWith("/permissionsex:pex promote")) && !p.hasPermission("permissions.user.promote")) {
  83. p.sendMessage("§cSorry, you don't have enough permissions.");
  84. e.setCancelled(true);
  85. }
  86. }
  87.  
  88. @EventHandler(ignoreCancelled = true)
  89. public void onDispense(BlockDispenseEvent e) {
  90. InventoryHolder dispenser = (InventoryHolder)e.getBlock().getState();
  91.  
  92. Bukkit.getScheduler().scheduleSyncDelayedTask(this, () -> {
  93. for (HumanEntity he : dispenser.getInventory().getViewers()) {
  94. Player p = (Player)he;
  95. p.updateInventory();
  96. }
  97. }1L);
  98. }
  99. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement