Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- main.java:
- package me.lol768.friskStick;
- import java.io.FileInputStream;
- import java.io.FileOutputStream;
- import java.io.ObjectInputStream;
- import java.io.ObjectOutputStream;
- import java.util.ArrayList;
- import java.util.Iterator;
- import java.util.List;
- import java.util.logging.Logger;
- import org.bukkit.Bukkit;
- import org.bukkit.ChatColor;
- import org.bukkit.Material;
- import org.bukkit.command.Command;
- import org.bukkit.command.CommandSender;
- import org.bukkit.entity.Player;
- import org.bukkit.event.EventHandler;
- import org.bukkit.event.Listener;
- import org.bukkit.event.entity.EntityDamageByEntityEvent;
- import org.bukkit.inventory.ItemStack;
- import org.bukkit.inventory.PlayerInventory;
- import org.bukkit.material.MaterialData;
- import org.bukkit.plugin.java.JavaPlugin;
- public class main extends JavaPlugin implements Listener
- {
- Logger log;
- List<illegalItem> m = new ArrayList<illegalItem>();
- Boolean f = true;
- public static void save(Object obj,String path) throws Exception
- {
- ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(path));
- oos.writeObject(obj);
- oos.flush();
- oos.close();
- }
- public static Object load(String path) throws Exception
- {
- ObjectInputStream ois = new ObjectInputStream(new FileInputStream(path));
- Object result = ois.readObject();
- ois.close();
- return result;
- }
- public void onEnable()
- {
- if (f)
- {
- f = !f;
- Bukkit.getServer().getPluginManager().registerEvents(this, this);
- }
- log = this.getLogger();
- log.info("Loading banned materials...");
- if (!(getDataFolder().exists())) {
- getDataFolder().mkdir();
- log.info("No data folder. Liklely to be first time use");
- }
- try {
- m = (List<illegalItem>) load(getDataFolder() + "/illegalItems.bin");
- } catch (Exception e) {
- // TODO Auto-generated catch block
- log.severe("Couldn't load em. First enable? " + getDataFolder() + "/illegalItems.bin");
- }
- if (m.size() == 0)
- {
- log.info("No items in banned item list");
- }
- else
- {
- log.info("Found " + Integer.toString(m.size()) + " illegal items.");
- Iterator all = m.iterator();
- while (all.hasNext())
- {
- illegalItem i = (illegalItem) all.next();
- Material m = Material.getMaterial(i.retID());
- log.info("Found " + m.name());
- }
- }
- }
- public void onDisable()
- {
- log = this.getLogger();
- log.info("Saving banned materials...");
- try {
- save(m,getDataFolder() + "/illegalItems.bin");
- } catch (Exception e) {
- // TODO Auto-generated catch block
- log.severe("Couldn't save em. Permissions issue? " );
- }
- }
- public void reload()
- {
- onEnable();
- }
- public static int getAmount(Player player, int id, Byte md, Player cop){
- PlayerInventory inventory = player.getInventory();
- ItemStack[] items = inventory.getContents();
- Iterator it = inventory.iterator();
- int has = 0;
- int i = 0;
- while(it.hasNext())
- {
- ItemStack item = (ItemStack) it.next();
- if ((item != null) && (item.getTypeId() == id) && (item.getAmount() > 0) && (item.getData().getData() == md)) {
- has += item.getAmount();
- inventory.remove(item);
- cop.getInventory().addItem(item);
- }
- i++;
- }
- return has;
- }
- public boolean onCommand(CommandSender sender, Command cmd, String commandLabel, final String[] args)
- {
- if (cmd.getName().equalsIgnoreCase("fsremove") && sender.hasPermission("frisk.remove"))
- {
- Player victim = (Player) sender;
- ItemStack i = victim.getItemInHand();
- sender.sendMessage("Removing " + i.getType().name() + " from item list...");
- illegalItem it = new illegalItem(i.getTypeId(), i.getData().getData());
- Iterator iter = m.iterator();
- String comp = it.toString();
- while (iter.hasNext())
- {
- illegalItem il = (illegalItem) iter.next();
- if (il.toString().equals(comp))
- {
- sender.sendMessage("Removed item from list");
- iter.remove();
- }
- }
- try {
- save(m,getDataFolder() + "/illegalItems.bin");
- } catch (Exception e) {
- // TODO Auto-generated catch block
- log.severe("Couldn't save em. Permissions issue? " + e.getMessage());
- }
- }
- if (cmd.getName().equalsIgnoreCase("fsadd") && sender.hasPermission("frisk.add"))
- {
- Player victim = (Player) sender;
- ItemStack i = victim.getItemInHand();
- sender.sendMessage("Adding " + i.getType().name() + " to item list...");
- illegalItem it = new illegalItem(i.getTypeId(), i.getData().getData());
- m.add(it);
- try {
- save(m,getDataFolder() + "/illegalItems.bin");
- } catch (Exception e) {
- // TODO Auto-generated catch block
- log.severe("Couldn't save em. Permissions issue? " + e.getMessage());
- }
- }
- if (cmd.getName().equalsIgnoreCase("fsreset") && sender.hasPermission("frisk.reset"))
- {
- m.clear();
- sender.sendMessage("Resetting the item list...");
- try {
- save(m,getDataFolder() + "/illegalItems.bin");
- } catch (Exception e) {
- // TODO Auto-generated catch block
- log.severe("Couldn't save em. Permissions issue? " + e.getMessage());
- }
- }
- return true;
- }
- @EventHandler
- public void frisk(EntityDamageByEntityEvent e)
- {
- if (e.getEntity() instanceof Player && e.getDamager() instanceof Player)
- {
- Player victim = (Player) e.getEntity();
- Player cop = (Player) e.getDamager();
- if (cop.hasPermission("frisk.reload") && cop.getItemInHand().getType() == Material.BLAZE_ROD)
- {
- reload();
- e.setCancelled(true);
- e.setDamage(0);
- cop.sendMessage("Config reloaded");
- }
- if (cop.hasPermission("frisk.allow") && cop.getItemInHand().getType() == Material.STICK)
- {
- PlayerInventory inv = victim.getInventory();
- boolean noth = true;
- Iterator ite = m.iterator();
- while(ite.hasNext())
- {
- illegalItem i = (illegalItem) ite.next();
- int val = getAmount(victim, i.retID(), i.retdata(),cop);
- Material m = Material.getMaterial(i.retID());
- if(val != 0)
- {
- cop.sendMessage(ChatColor.BLUE + "[Frisk] Illegal items found! " + victim.getName() + " had " + val + " " + m.name());
- victim.sendMessage(ChatColor.BLUE + "[Frisk] " + cop.getName() + " found " + m.name() + " on you!");
- noth = false;
- }
- }
- if (noth)
- {
- cop.sendMessage(ChatColor.GREEN + "[Frisk] " + victim.getName() + " has no illegal items");
- victim.sendMessage(ChatColor.BLUE + "[Frisk] " + cop.getName() + " Frisked you! No drugs were found.");
- }
- e.setCancelled(true);
- e.setDamage(0);
- }
- }
- }
- }
- illegalItem.java:
- package me.lol768.friskStick;
- import java.io.Serializable;
- import org.bukkit.Material;
- public class illegalItem implements Serializable
- {
- private int id;
- private byte data;
- public illegalItem(int i, byte dat)
- {
- id = i;
- data = dat;
- }
- public int retID()
- {
- return id;
- }
- public String toString()
- {
- Material m = Material.getMaterial(id);
- return "Material: " + m.name() + " Data: " + data;
- }
- public byte retdata()
- {
- return data;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement