Advertisement
Guest User

friskStick source

a guest
Aug 3rd, 2012
271
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 7.84 KB | None | 0 0
  1. main.java:
  2. package me.lol768.friskStick;
  3.  
  4. import java.io.FileInputStream;
  5. import java.io.FileOutputStream;
  6. import java.io.ObjectInputStream;
  7. import java.io.ObjectOutputStream;
  8. import java.util.ArrayList;
  9. import java.util.Iterator;
  10. import java.util.List;
  11. import java.util.logging.Logger;
  12.  
  13. import org.bukkit.Bukkit;
  14. import org.bukkit.ChatColor;
  15. import org.bukkit.Material;
  16. import org.bukkit.command.Command;
  17. import org.bukkit.command.CommandSender;
  18. import org.bukkit.entity.Player;
  19. import org.bukkit.event.EventHandler;
  20. import org.bukkit.event.Listener;
  21. import org.bukkit.event.entity.EntityDamageByEntityEvent;
  22. import org.bukkit.inventory.ItemStack;
  23. import org.bukkit.inventory.PlayerInventory;
  24. import org.bukkit.material.MaterialData;
  25. import org.bukkit.plugin.java.JavaPlugin;
  26.  
  27. public class main extends JavaPlugin implements Listener
  28. {
  29.     Logger log;
  30.     List<illegalItem> m = new ArrayList<illegalItem>();
  31.     Boolean f =  true;
  32.     public static void save(Object obj,String path) throws Exception
  33.     {
  34.         ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(path));
  35.         oos.writeObject(obj);
  36.         oos.flush();
  37.         oos.close();
  38.     }
  39.     public static Object load(String path) throws Exception
  40.     {
  41.         ObjectInputStream ois = new ObjectInputStream(new FileInputStream(path));
  42.         Object result = ois.readObject();
  43.         ois.close();
  44.         return result;
  45.     }
  46.    
  47.     public void onEnable()
  48.     {
  49.         if (f)
  50.         {
  51.             f = !f;
  52.             Bukkit.getServer().getPluginManager().registerEvents(this, this);
  53.         }
  54.         log = this.getLogger();
  55.         log.info("Loading banned materials...");
  56.          if (!(getDataFolder().exists())) {
  57.              
  58.                 getDataFolder().mkdir();
  59.                 log.info("No data folder. Liklely to be first time use");
  60.             }
  61.         try {
  62.             m = (List<illegalItem>) load(getDataFolder() + "/illegalItems.bin");
  63.            
  64.         } catch (Exception e) {
  65.             // TODO Auto-generated catch block
  66.             log.severe("Couldn't load em. First enable? " + getDataFolder() + "/illegalItems.bin");
  67.         }
  68.        
  69.         if (m.size() == 0)
  70.         {
  71.             log.info("No items in banned item list");
  72.         }
  73.         else
  74.         {
  75.             log.info("Found " + Integer.toString(m.size()) + " illegal items.");
  76.             Iterator all = m.iterator();
  77.             while (all.hasNext())
  78.             {
  79.                 illegalItem i = (illegalItem) all.next();
  80.                 Material m = Material.getMaterial(i.retID());
  81.                 log.info("Found " + m.name());
  82.             }
  83.         }
  84.        
  85.        
  86.        
  87.     }
  88.    
  89.     public void onDisable()
  90.     {
  91.         log = this.getLogger();
  92.         log.info("Saving banned materials...");
  93.         try {
  94.             save(m,getDataFolder() + "/illegalItems.bin");
  95.         } catch (Exception e) {
  96.             // TODO Auto-generated catch block
  97.             log.severe("Couldn't save em. Permissions issue? " );
  98.         }
  99.     }
  100.    
  101.     public void reload()
  102.     {
  103.         onEnable();
  104.     }
  105.    
  106.       public static int getAmount(Player player, int id, Byte md, Player cop){
  107.             PlayerInventory inventory = player.getInventory();
  108.            
  109.             ItemStack[] items = inventory.getContents();
  110.             Iterator it = inventory.iterator();
  111.             int has = 0;
  112.             int i = 0;
  113.             while(it.hasNext())
  114.             {
  115.                 ItemStack item = (ItemStack) it.next();
  116.                 if ((item != null) && (item.getTypeId() == id) && (item.getAmount() > 0) && (item.getData().getData() == md)) {
  117.                     has += item.getAmount();
  118.  
  119.                    inventory.remove(item);
  120.                    
  121.                     cop.getInventory().addItem(item);
  122.                    
  123.                 }
  124.                 i++;
  125.             }
  126.             return has;
  127.         }
  128.    
  129.       public boolean onCommand(CommandSender sender, Command cmd, String commandLabel, final String[] args)
  130.       {
  131.           if (cmd.getName().equalsIgnoreCase("fsremove") && sender.hasPermission("frisk.remove"))
  132.           {
  133.               Player victim = (Player) sender;
  134.               ItemStack i = victim.getItemInHand();
  135.               sender.sendMessage("Removing " + i.getType().name() + " from item list...");
  136.               illegalItem it = new illegalItem(i.getTypeId(), i.getData().getData());
  137.               Iterator iter = m.iterator();
  138.               String comp = it.toString();
  139.               while (iter.hasNext())
  140.               {
  141.                   illegalItem il = (illegalItem) iter.next();
  142.                   if (il.toString().equals(comp))
  143.                   {
  144.                       sender.sendMessage("Removed item from list");
  145.                       iter.remove();
  146.                   }
  147.               }
  148.              
  149.               try {
  150.                     save(m,getDataFolder() + "/illegalItems.bin");
  151.                 } catch (Exception e) {
  152.                     // TODO Auto-generated catch block
  153.                     log.severe("Couldn't save em. Permissions issue? " + e.getMessage());
  154.                 }
  155.           }
  156.          
  157.           if (cmd.getName().equalsIgnoreCase("fsadd") && sender.hasPermission("frisk.add"))
  158.           {
  159.               Player victim = (Player) sender;
  160.               ItemStack i = victim.getItemInHand();
  161.               sender.sendMessage("Adding " + i.getType().name() + " to item list...");
  162.               illegalItem it = new illegalItem(i.getTypeId(), i.getData().getData());
  163.               m.add(it);
  164.               try {
  165.                     save(m,getDataFolder() + "/illegalItems.bin");
  166.                 } catch (Exception e) {
  167.                     // TODO Auto-generated catch block
  168.                     log.severe("Couldn't save em. Permissions issue? " + e.getMessage());
  169.                 }
  170.           }
  171.           if (cmd.getName().equalsIgnoreCase("fsreset")  && sender.hasPermission("frisk.reset"))
  172.           {
  173.              
  174.               m.clear();
  175.               sender.sendMessage("Resetting  the item list...");
  176.               try {
  177.                     save(m,getDataFolder() + "/illegalItems.bin");
  178.                 } catch (Exception e) {
  179.                     // TODO Auto-generated catch block
  180.                     log.severe("Couldn't save em. Permissions issue? " + e.getMessage());
  181.                 }
  182.           }
  183.          
  184.         return true;
  185.          
  186.       }
  187.     @EventHandler
  188.     public void frisk(EntityDamageByEntityEvent e)
  189.     {
  190.        
  191.         if (e.getEntity() instanceof Player && e.getDamager() instanceof Player)
  192.         {
  193.             Player victim = (Player) e.getEntity();
  194.             Player cop = (Player) e.getDamager();
  195.             if (cop.hasPermission("frisk.reload") && cop.getItemInHand().getType() == Material.BLAZE_ROD)
  196.             {
  197.                 reload();
  198.                  e.setCancelled(true);
  199.                     e.setDamage(0);
  200.                 cop.sendMessage("Config reloaded");
  201.                
  202.             }
  203.             if (cop.hasPermission("frisk.allow") && cop.getItemInHand().getType() == Material.STICK)
  204.             {
  205.                     PlayerInventory inv = victim.getInventory();
  206.                      
  207.                             boolean noth = true;
  208.                            
  209.                          
  210.                                     Iterator ite = m.iterator();
  211.                                     while(ite.hasNext())
  212.                                     {
  213.                                        
  214.                                     illegalItem i = (illegalItem) ite.next();
  215.                                     int val = getAmount(victim, i.retID(), i.retdata(),cop);
  216.                                     Material m = Material.getMaterial(i.retID());
  217.                                    
  218.                                         if(val != 0)
  219.                                         {
  220.                                               cop.sendMessage(ChatColor.BLUE + "[Frisk] Illegal items found! " + victim.getName() + " had " + val + " " +  m.name());
  221.                                         victim.sendMessage(ChatColor.BLUE + "[Frisk] " + cop.getName() + " found " + m.name() + " on you!");
  222.                                              
  223.                                        
  224.                                             noth = false;
  225.                                         }
  226.                         }
  227.                        
  228.                         if (noth)
  229.                         {
  230.                             cop.sendMessage(ChatColor.GREEN + "[Frisk] " + victim.getName() + " has no illegal items");
  231.                             victim.sendMessage(ChatColor.BLUE + "[Frisk] " + cop.getName() + " Frisked you! No drugs were found.");
  232.                         }
  233.                         e.setCancelled(true);
  234.                         e.setDamage(0);
  235.                  
  236.                 }
  237.                
  238.                
  239.                
  240.             }
  241.         }
  242.        
  243.     }
  244.  
  245.  
  246. illegalItem.java:
  247. package me.lol768.friskStick;
  248.  
  249. import java.io.Serializable;
  250.  
  251. import org.bukkit.Material;
  252.  
  253. public class illegalItem implements Serializable
  254. {
  255.     private int id;
  256.     private byte data;
  257.     public illegalItem(int i, byte dat)
  258.     {
  259.         id = i;
  260.         data = dat;
  261.     }
  262.     public int retID()
  263.     {
  264.         return id;
  265.        
  266.     }
  267.     public String toString()
  268.     {
  269.         Material m = Material.getMaterial(id);
  270.         return "Material: " + m.name() + "  Data: " + data;
  271.     }
  272.     public byte retdata()
  273.     {
  274.         return data;
  275.        
  276.     }
  277.    
  278. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement