Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- v1.3
- main.java:
- package me.lol768.findIP;
- import java.io.FileInputStream;
- import java.io.FileOutputStream;
- import java.io.ObjectInputStream;
- import java.io.ObjectOutputStream;
- import java.util.HashMap;
- import java.util.Iterator;
- import java.util.logging.Logger;
- import org.bukkit.Bukkit;
- import org.bukkit.ChatColor;
- import org.bukkit.Location;
- import org.bukkit.command.Command;
- import org.bukkit.command.CommandSender;
- import org.bukkit.entity.Player;
- import org.bukkit.entity.TNTPrimed;
- import org.bukkit.event.EventHandler;
- import org.bukkit.event.Listener;
- import org.bukkit.event.player.PlayerPreLoginEvent;
- import org.bukkit.plugin.java.JavaPlugin;
- import org.bukkit.util.Vector;
- public class main extends JavaPlugin implements Listener
- {
- HashMap<String,playerIpList> map = new HashMap<String, playerIpList>();
- public String translatePreferred(int id, String other)
- {
- String done = null;
- if (this.getConfig().contains("messages." + id))
- {
- done = this.getConfig().getString("messages." + id);
- }
- if (done == null)
- {
- this.getConfig().set("messages." + id, other);
- this.saveConfig();
- return other;
- }
- else
- {
- return done;
- }
- }
- @Override
- public void onEnable()
- {
- Logger log;
- log = Bukkit.getLogger();
- log.info(translatePreferred(1,"[FindIP] Enabled"));
- Bukkit.getServer().getPluginManager().registerEvents(this, this);
- if (!(getDataFolder().exists())) {
- getDataFolder().mkdir();
- log.info(translatePreferred(2,"Created data folder"));
- }
- try {
- map = (HashMap<String, playerIpList>) load(getDataFolder() + "/IPhistory.bin");
- } catch (Exception e) {
- // TODO Auto-generated catch block
- log.severe(translatePreferred(3,"Couldn't load IP list. First use?") );
- }
- }
- @Override
- public void onDisable()
- {
- this.saveConfig();
- Logger log;
- log = Bukkit.getLogger();
- log.info(translatePreferred(4,"[FindIP] Disabled"));
- if (!(getDataFolder().exists())) {
- getDataFolder().mkdir();
- log.info(translatePreferred(5,"Created data folder"));
- }
- try {
- save(map,getDataFolder() + "/IPhistory.bin");
- } catch (Exception e) {
- // TODO Auto-generated catch block
- log.severe(translatePreferred(6,"Couldn't save IP list. Permissions issue?"));
- }
- }
- 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;
- }
- @EventHandler
- public void onJoin(PlayerPreLoginEvent e)
- {
- Logger l = Bukkit.getLogger();
- l.info("Got " + e.getName());
- if (map.containsKey(e.getName()))
- {
- playerIpList i = map.get(e.getName());
- i.addIP(e.getAddress().getHostAddress());
- map.put(e.getName(), i);
- }
- else
- {
- playerIpList il = new playerIpList(e.getAddress().getHostAddress());
- map.put(e.getName(), il);
- }
- }
- public boolean onCommand(CommandSender sender, Command cmd, String commandLabel, String[] args)
- {
- if(commandLabel.equalsIgnoreCase("compare"))
- {
- if(sender.hasPermission("findip.compare"))
- {
- try
- {
- if (args.length != 2)
- {
- sender.sendMessage(ChatColor.RED + translatePreferred(12,"You need to specify two players"));
- }
- else
- {
- Player one = Bukkit.getPlayer(args[0]);
- Player two = Bukkit.getPlayer(args[1]);
- if (one.getAddress().getAddress().getHostAddress().equals(two.getAddress().getAddress().getHostAddress()))
- {
- sender.sendMessage(ChatColor.GREEN + translatePreferred(13,"Those players currently have the same IP address"));
- sender.sendMessage(one.getAddress().getAddress().getHostAddress());
- }
- else
- {
- sender.sendMessage(ChatColor.RED + translatePreferred(14,"Those players do not currently have the same IP"));
- sender.sendMessage(one.getAddress().getAddress().getHostAddress());
- sender.sendMessage(two.getAddress().getAddress().getHostAddress());
- sender.sendMessage(ChatColor.BLUE + translatePreferred(15,"You may want to use /ip to manually compare past IP addresses"));
- }
- }
- }
- catch (Exception e)
- {
- sender.sendMessage(ChatColor.RED + translatePreferred(11,"Those players aren't online. Doing offline comparing..."));
- if (sender instanceof Player)
- {
- Player p = (Player) sender;
- p.performCommand("ip " + args[0]);
- p.performCommand("ip " + args[1]);
- }
- else
- {
- Bukkit.dispatchCommand(sender, "ip " + args[0]);
- Bukkit.dispatchCommand(sender, "ip " + args[1]);
- }
- }
- }
- }
- if(commandLabel.equalsIgnoreCase("ip"))
- {
- if(sender.hasPermission("findip.get"))
- {
- if(args.length ==1)
- {
- try
- {
- Player p = Bukkit.getPlayer(args[0]);
- String th = translatePreferred(7,"player's #6current IP is: ipAddress");
- th = th.replaceAll("player", p.getName());
- String chara = "" + ChatColor.COLOR_CHAR;
- th = th.replaceAll("#", chara);
- th = th.replaceAll("ipAddress", p.getAddress().getAddress().getHostAddress());
- sender.sendMessage(th);
- if (map.containsKey(p.getName()))
- {
- sender.sendMessage(ChatColor.GOLD + translatePreferred(8,"Past IP addresses have included:"));
- Iterator li = map.get(p.getName()).returnIterator();
- StringBuilder build = new StringBuilder(1000);
- if (li.hasNext())
- {
- build = build.append(li.next());
- }
- while (li.hasNext())
- {
- build = build.append(",");
- build = build.append(li.next());
- }
- sender.sendMessage(build.toString());
- }
- }
- catch (Exception e){
- sender.sendMessage(ChatColor.RED + translatePreferred(9,"Player isn't currently online"));
- if (map.containsKey(args[0]))
- {
- sender.sendMessage(ChatColor.GOLD + translatePreferred(8,"Past IP addresses have included:"));
- Iterator li = map.get(args[0]).returnIterator();
- StringBuilder build = new StringBuilder(1000);
- if (li.hasNext())
- {
- build = build.append(li.next());
- }
- while (li.hasNext())
- {
- build = build.append(",");
- build = build.append(li.next());
- }
- sender.sendMessage(build.toString());
- }
- }
- }
- else
- {
- if(sender instanceof Player)
- {
- Player p = (Player) sender;
- String th = translatePreferred(7,"player's #6current IP is: ipAddress");
- th = th.replaceAll("player", p.getName());
- String chara = "" + ChatColor.COLOR_CHAR;
- th = th.replaceAll("#", chara);
- th = th.replaceAll("ipAddress", p.getAddress().getAddress().getHostAddress());
- sender.sendMessage(th);
- if (map.containsKey(p.getName()))
- {
- sender.sendMessage(ChatColor.GOLD + translatePreferred(8,"Past IP addresses have included:"));
- Iterator li = map.get(p.getName()).returnIterator();
- StringBuilder build = new StringBuilder(1000);
- if (li.hasNext())
- {
- build = build.append(li.next());
- }
- while (li.hasNext())
- {
- build = build.append(",");
- build = build.append(li.next());
- }
- sender.sendMessage(build.toString());
- }
- }
- else
- {
- sender.sendMessage(ChatColor.RED + translatePreferred(9,"Unsupported Command Sender! Use /ip <player>"));
- sender.sendMessage(map.toString());
- }
- }
- }
- else
- {
- sender.sendMessage(ChatColor.RED + translatePreferred(10,"You don't have permission!"));
- }
- }
- return true;
- }
- }
- playerIpList.java:
- package me.lol768.findIP;
- import java.io.Serializable;
- import java.util.ArrayList;
- import java.util.Iterator;
- import java.util.List;
- public class playerIpList implements Serializable
- {
- List<String> ip = new ArrayList<String>();
- public playerIpList(String hostAddress)
- {
- ip.add(hostAddress);
- }
- public String toString()
- {
- return ip.toString();
- }
- public boolean addIP(String p)
- {
- if (ip.contains(p))
- {
- return false;
- }
- else
- {
- ip.add(p);
- return true;
- }
- }
- public Iterator returnIterator()
- {
- return ip.iterator();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement