Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package io.freehase.patcher;
- import com.comphenix.protocol.PacketType;
- import com.comphenix.protocol.ProtocolLibrary;
- import com.comphenix.protocol.ProtocolManager;
- import com.comphenix.protocol.events.ListenerPriority;
- import com.comphenix.protocol.events.PacketAdapter;
- import com.comphenix.protocol.events.PacketEvent;
- import java.util.ArrayList;
- import org.bukkit.Bukkit;
- import org.bukkit.entity.HumanEntity;
- import org.bukkit.entity.Player;
- import org.bukkit.event.EventHandler;
- import org.bukkit.event.Listener;
- import org.bukkit.event.block.BlockDispenseEvent;
- import org.bukkit.event.inventory.InventoryCloseEvent;
- import org.bukkit.event.player.PlayerCommandPreprocessEvent;
- import org.bukkit.event.player.PlayerPickupItemEvent;
- import org.bukkit.inventory.InventoryHolder;
- import org.bukkit.plugin.Plugin;
- import org.bukkit.plugin.java.JavaPlugin;
- public class Patcher
- extends JavaPlugin
- implements Listener
- {
- private ArrayList<Player> autoCrafters;
- private ProtocolManager protocolManager;
- public void onEnable() {
- this.autoCrafters = new ArrayList();
- if (Bukkit.getPluginManager().isPluginEnabled("ProtocolLib")) {
- getLogger().info("ProtocolLib is installed!");
- this.protocolManager = ProtocolLibrary.getProtocolManager();
- this.protocolManager.addPacketListener(new PacketAdapter(this, ListenerPriority.NORMAL, new PacketType[] { PacketType.Play.Client.AUTO_RECIPE })
- {
- public void onPacketReceiving(PacketEvent e)
- {
- Player p = e.getPlayer();
- if (!Patcher.this.autoCrafters.contains(p))
- Patcher.this.autoCrafters.add(p);
- }
- });
- } else {
- getLogger().info("ProtocolLib isn't found! Disabling..");
- Bukkit.getPluginManager().disablePlugin(this);
- }
- Bukkit.getPluginManager().registerEvents(this, this);
- }
- @EventHandler(ignoreCancelled = true)
- public void onDrop(PlayerPickupItemEvent e) {
- Player p = e.getPlayer();
- if (this.autoCrafters.contains(p))
- e.setCancelled(true);
- }
- @EventHandler(ignoreCancelled = true)
- public void onClose(InventoryCloseEvent e) {
- HumanEntity he = e.getPlayer();
- if (he instanceof Player) {
- Player p = (Player)he;
- if (this.autoCrafters.contains(p))
- this.autoCrafters.remove(p);
- }
- }
- @EventHandler(ignoreCancelled = true)
- public void onCommand(PlayerCommandPreprocessEvent e) {
- Player p = e.getPlayer();
- if ((e.getMessage().startsWith("/pex promote") || e.getMessage().startsWith("/permissionsex:pex promote")) && !p.hasPermission("permissions.user.promote")) {
- p.sendMessage("§cSorry, you don't have enough permissions.");
- e.setCancelled(true);
- }
- }
- @EventHandler(ignoreCancelled = true)
- public void onDispense(BlockDispenseEvent e) {
- InventoryHolder dispenser = (InventoryHolder)e.getBlock().getState();
- Bukkit.getScheduler().scheduleSyncDelayedTask(this, () -> {
- for (HumanEntity he : dispenser.getInventory().getViewers()) {
- Player p = (Player)he;
- p.updateInventory();
- }
- }1L);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement