Advertisement
Guest User

FindIP Source

a guest
Aug 6th, 2012
293
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 8.70 KB | None | 0 0
  1. v1.3
  2. main.java:
  3. package me.lol768.findIP;
  4.  
  5. import java.io.FileInputStream;
  6. import java.io.FileOutputStream;
  7. import java.io.ObjectInputStream;
  8. import java.io.ObjectOutputStream;
  9. import java.util.HashMap;
  10. import java.util.Iterator;
  11. import java.util.logging.Logger;
  12.  
  13. import org.bukkit.Bukkit;
  14. import org.bukkit.ChatColor;
  15. import org.bukkit.Location;
  16. import org.bukkit.command.Command;
  17. import org.bukkit.command.CommandSender;
  18. import org.bukkit.entity.Player;
  19. import org.bukkit.entity.TNTPrimed;
  20. import org.bukkit.event.EventHandler;
  21. import org.bukkit.event.Listener;
  22. import org.bukkit.event.player.PlayerPreLoginEvent;
  23. import org.bukkit.plugin.java.JavaPlugin;
  24. import org.bukkit.util.Vector;
  25.  
  26. public class main extends JavaPlugin implements Listener
  27. {
  28.     HashMap<String,playerIpList> map = new HashMap<String, playerIpList>();
  29.  
  30.     public String translatePreferred(int id, String other)
  31.     {
  32.         String done = null;
  33.         if (this.getConfig().contains("messages." + id))
  34.         {
  35.             done =  this.getConfig().getString("messages." + id);
  36.         }
  37.  
  38.         if (done == null)
  39.         {
  40.             this.getConfig().set("messages." + id, other);
  41.             this.saveConfig();
  42.             return other;
  43.            
  44.         }
  45.         else
  46.         {
  47.             return done;
  48.         }
  49.        
  50.        
  51.        
  52.     }
  53.     @Override
  54.     public void onEnable()
  55.     {
  56.         Logger log;
  57.         log = Bukkit.getLogger();
  58.         log.info(translatePreferred(1,"[FindIP] Enabled"));
  59.         Bukkit.getServer().getPluginManager().registerEvents(this, this);
  60.        
  61.         if (!(getDataFolder().exists())) {
  62.              
  63.             getDataFolder().mkdir();
  64.             log.info(translatePreferred(2,"Created data folder"));
  65.         }
  66.        
  67.         try {
  68.             map = (HashMap<String, playerIpList>) load(getDataFolder() + "/IPhistory.bin");
  69.         } catch (Exception e) {
  70.             // TODO Auto-generated catch block
  71.             log.severe(translatePreferred(3,"Couldn't load IP list. First use?") );
  72.         }
  73.     }
  74.    
  75.     @Override
  76.     public void onDisable()
  77.     {
  78.         this.saveConfig();
  79.         Logger log;
  80.         log = Bukkit.getLogger();
  81.         log.info(translatePreferred(4,"[FindIP] Disabled"));
  82.        
  83.         if (!(getDataFolder().exists())) {
  84.              
  85.             getDataFolder().mkdir();
  86.             log.info(translatePreferred(5,"Created data folder"));
  87.         }
  88.        
  89.         try {
  90.             save(map,getDataFolder() + "/IPhistory.bin");
  91.         } catch (Exception e) {
  92.             // TODO Auto-generated catch block
  93.             log.severe(translatePreferred(6,"Couldn't save IP list. Permissions issue?"));
  94.         }
  95.     }
  96.    
  97.     public static void save(Object obj,String path) throws Exception
  98.     {
  99.         ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(path));
  100.         oos.writeObject(obj);
  101.         oos.flush();
  102.         oos.close();
  103.     }
  104.     public static Object load(String path) throws Exception
  105.     {
  106.         ObjectInputStream ois = new ObjectInputStream(new FileInputStream(path));
  107.         Object result = ois.readObject();
  108.         ois.close();
  109.         return result;
  110.     }
  111.    
  112.    
  113.     @EventHandler
  114.     public void onJoin(PlayerPreLoginEvent e)
  115.     {
  116.         Logger l = Bukkit.getLogger();
  117.         l.info("Got " + e.getName());
  118.         if (map.containsKey(e.getName()))
  119.         {
  120.             playerIpList i = map.get(e.getName());
  121.             i.addIP(e.getAddress().getHostAddress());
  122.            
  123.             map.put(e.getName(), i);
  124.         }
  125.         else
  126.         {
  127.             playerIpList il = new playerIpList(e.getAddress().getHostAddress());
  128.             map.put(e.getName(), il);
  129.         }
  130.        
  131.     }
  132.     public boolean onCommand(CommandSender sender, Command cmd, String commandLabel, String[] args)
  133.     {
  134.         if(commandLabel.equalsIgnoreCase("compare"))
  135.         {
  136.             if(sender.hasPermission("findip.compare"))
  137.             {
  138.                 try
  139.                 {
  140.                     if (args.length != 2)
  141.                     {
  142.                         sender.sendMessage(ChatColor.RED + translatePreferred(12,"You need to specify two players"));
  143.                        
  144.                     }
  145.                     else
  146.                     {
  147.                         Player one = Bukkit.getPlayer(args[0]);
  148.                         Player two = Bukkit.getPlayer(args[1]);
  149.                        
  150.                         if (one.getAddress().getAddress().getHostAddress().equals(two.getAddress().getAddress().getHostAddress()))
  151.                         {
  152.                             sender.sendMessage(ChatColor.GREEN + translatePreferred(13,"Those players currently have the same IP address"));
  153.                             sender.sendMessage(one.getAddress().getAddress().getHostAddress());
  154.                            
  155.                         }
  156.                         else
  157.                         {
  158.                             sender.sendMessage(ChatColor.RED + translatePreferred(14,"Those players do not currently have the same IP"));
  159.                             sender.sendMessage(one.getAddress().getAddress().getHostAddress());
  160.                             sender.sendMessage(two.getAddress().getAddress().getHostAddress());
  161.                             sender.sendMessage(ChatColor.BLUE + translatePreferred(15,"You may want to use /ip to manually compare past IP addresses"));
  162.                         }
  163.                     }
  164.                 }
  165.                 catch (Exception e)
  166.                 {
  167.                     sender.sendMessage(ChatColor.RED + translatePreferred(11,"Those players aren't online. Doing offline comparing..."));
  168.                     if (sender instanceof Player)
  169.                     {
  170.                         Player p = (Player) sender;
  171.                         p.performCommand("ip " + args[0]);
  172.                         p.performCommand("ip " + args[1]);
  173.                     }
  174.                     else
  175.                     {
  176.                         Bukkit.dispatchCommand(sender, "ip " + args[0]);
  177.                         Bukkit.dispatchCommand(sender, "ip " + args[1]);
  178.                     }
  179.                 }
  180.             }
  181.         }
  182.         if(commandLabel.equalsIgnoreCase("ip"))
  183.         {
  184.             if(sender.hasPermission("findip.get"))
  185.             {
  186.                 if(args.length ==1)
  187.                 {
  188.                     try
  189.                     {
  190.                         Player p = Bukkit.getPlayer(args[0]);
  191.                         String th = translatePreferred(7,"player's #6current IP is: ipAddress");
  192.                         th = th.replaceAll("player", p.getName());
  193.                         String chara = "" + ChatColor.COLOR_CHAR;
  194.                         th = th.replaceAll("#", chara);
  195.                        
  196.                         th = th.replaceAll("ipAddress", p.getAddress().getAddress().getHostAddress());
  197.                         sender.sendMessage(th);
  198.                        
  199.                         if (map.containsKey(p.getName()))
  200.                         {
  201.                             sender.sendMessage(ChatColor.GOLD + translatePreferred(8,"Past IP addresses have included:"));
  202.                             Iterator li = map.get(p.getName()).returnIterator();
  203.                             StringBuilder build = new StringBuilder(1000);
  204.                             if (li.hasNext())
  205.                             {
  206.                                 build = build.append(li.next());
  207.                             }
  208.                             while (li.hasNext())
  209.                             {
  210.                                 build = build.append(",");
  211.                                 build = build.append(li.next());
  212.                                
  213.                                
  214.                             }
  215.                             sender.sendMessage(build.toString());
  216.                         }
  217.                     }
  218.                     catch (Exception e){
  219.                        
  220.                         sender.sendMessage(ChatColor.RED + translatePreferred(9,"Player isn't currently online"));
  221.                         if (map.containsKey(args[0]))
  222.                         {
  223.                             sender.sendMessage(ChatColor.GOLD + translatePreferred(8,"Past IP addresses have included:"));
  224.                             Iterator li = map.get(args[0]).returnIterator();
  225.                             StringBuilder build = new StringBuilder(1000);
  226.                             if (li.hasNext())
  227.                             {
  228.                                 build = build.append(li.next());
  229.                             }
  230.                             while (li.hasNext())
  231.                             {
  232.                                 build = build.append(",");
  233.                                 build = build.append(li.next());
  234.                                
  235.                                
  236.                             }
  237.                             sender.sendMessage(build.toString());
  238.                         }
  239.                        
  240.                     }
  241.                 }
  242.                 else
  243.                 {
  244.                         if(sender instanceof Player)
  245.                         {
  246.                             Player p = (Player) sender;
  247.                            
  248.                             String th = translatePreferred(7,"player's #6current IP is: ipAddress");
  249.                             th = th.replaceAll("player", p.getName());
  250.                             String chara = "" + ChatColor.COLOR_CHAR;
  251.                             th = th.replaceAll("#", chara);
  252.                            
  253.                             th = th.replaceAll("ipAddress", p.getAddress().getAddress().getHostAddress());
  254.                             sender.sendMessage(th);
  255.                             if (map.containsKey(p.getName()))
  256.                             {
  257.                                 sender.sendMessage(ChatColor.GOLD + translatePreferred(8,"Past IP addresses have included:"));
  258.                                 Iterator li = map.get(p.getName()).returnIterator();
  259.                                 StringBuilder build = new StringBuilder(1000);
  260.                                 if (li.hasNext())
  261.                                 {
  262.                                     build = build.append(li.next());
  263.                                 }
  264.                                 while (li.hasNext())
  265.                                 {
  266.                                     build = build.append(",");
  267.                                     build = build.append(li.next());
  268.                                    
  269.                                    
  270.                                 }
  271.                                 sender.sendMessage(build.toString());
  272.                                
  273.  
  274.                                
  275.                             }
  276.                            
  277.                            
  278.                         }
  279.                         else
  280.                         {
  281.                             sender.sendMessage(ChatColor.RED + translatePreferred(9,"Unsupported Command Sender! Use /ip <player>"));
  282.                             sender.sendMessage(map.toString());
  283.                         }
  284.                 }
  285.             }
  286.             else
  287.             {
  288.                 sender.sendMessage(ChatColor.RED + translatePreferred(10,"You don't have permission!"));
  289.             }
  290.         }
  291.             return true;
  292.         }
  293.     }
  294.  
  295. playerIpList.java:
  296. package me.lol768.findIP;
  297.  
  298. import java.io.Serializable;
  299. import java.util.ArrayList;
  300. import java.util.Iterator;
  301. import java.util.List;
  302.  
  303. public class playerIpList implements Serializable
  304. {
  305.     List<String> ip = new ArrayList<String>();
  306.     public playerIpList(String hostAddress)
  307.     {
  308.         ip.add(hostAddress);
  309.     }
  310.  
  311.    
  312.     public String toString()
  313.     {
  314.         return ip.toString();
  315.     }
  316.    
  317.     public boolean addIP(String p)
  318.     {
  319.         if (ip.contains(p))
  320.         {
  321.             return false;
  322.         }
  323.         else
  324.         {
  325.             ip.add(p);
  326.             return true;
  327.         }
  328.        
  329.     }
  330.    
  331.     public Iterator returnIterator()
  332.     {
  333.         return ip.iterator();
  334.     }
  335. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement