Advertisement
Guest User

SimpleHome v0.1 Source Code

a guest
Aug 22nd, 2012
1,507
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.98 KB | None | 0 0
  1. main.java:
  2. package me.robertsj.home;
  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.HashMap;
  9. import java.util.logging.Logger;
  10.  
  11. import org.bukkit.Bukkit;
  12. import org.bukkit.ChatColor;
  13. import org.bukkit.Location;
  14. import org.bukkit.command.Command;
  15. import org.bukkit.command.CommandSender;
  16. import org.bukkit.entity.EnderCrystal;
  17. import org.bukkit.entity.Player;
  18. import org.bukkit.event.Listener;
  19. import org.bukkit.plugin.java.JavaPlugin;
  20.  
  21. public class main extends JavaPlugin implements Listener
  22. {
  23.     HashMap<String,savedLocation> homes = new HashMap<String,savedLocation>();
  24.     @SuppressWarnings("unchecked")
  25.     public void onEnable()
  26.     {
  27.         Logger log;
  28.         log = this.getLogger();
  29.         log.info("Enabling SimpleHome");
  30.        
  31.         try {
  32.             if (this.getDataFolder().exists())
  33.             {
  34.             homes = (HashMap<String, savedLocation>) load(getDataFolder() + "/data.bin");
  35.             }
  36.             else
  37.             {
  38.                 this.getDataFolder().mkdir();
  39.                 Bukkit.getLogger().info("First time run? No Data available");
  40.             }
  41.         } catch (Exception e) {
  42.             Bukkit.getLogger().info("Couldn't load the damn data");
  43.            
  44.         }
  45.     }
  46.     public void onDisable()
  47.     {
  48.         this.saveConfig();
  49.         Logger log;
  50.         log = this.getLogger();
  51.         log.info("Disabling SimpleHome");
  52.         try {
  53.             if (this.getDataFolder().exists())
  54.             {
  55.             save(homes,getDataFolder() + "/data.bin");
  56.             }
  57.             else
  58.             {
  59.                 this.getDataFolder().mkdir();
  60.             }
  61.         } catch (Exception e) {
  62.             Bukkit.getLogger().info("Couldn't save the damn data");
  63.            
  64.         }
  65.     }
  66.    
  67.     public static void save(Object obj,String path) throws Exception
  68.     {
  69.         ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(path));
  70.         oos.writeObject(obj);
  71.         oos.flush();
  72.         oos.close();
  73.     }
  74.     public static Object load(String path) throws Exception
  75.     {
  76.         ObjectInputStream ois = new ObjectInputStream(new FileInputStream(path));
  77.         Object result = ois.readObject();
  78.         ois.close();
  79.         return result;
  80.     }
  81.    
  82.     public boolean onCommand(CommandSender sender, Command cmd, String commandLabel, final String[] args)
  83.     {
  84.         if(cmd.getName().equalsIgnoreCase("home") && sender.hasPermission("home.home") && sender instanceof Player)
  85.         {
  86.             if (homes.containsKey(sender.getName()))
  87.             {
  88.                 Player p = (Player) sender;
  89.                 savedLocation l = homes.get(p.getName());
  90.                 Location lo = l.retrieve();
  91.                
  92.                 if (lo.getWorld() == null)
  93.                 {
  94.                     lo.setWorld(p.getWorld());
  95.                 }
  96.                 p.teleport(lo);
  97.             }
  98.             else
  99.             {
  100.                 sender.sendMessage("You haven't set a home location");
  101.             }
  102.             return true;
  103.         }
  104.        
  105.         if(cmd.getName().equalsIgnoreCase("sethome") && sender.hasPermission("home.set") && sender instanceof Player)
  106.         {
  107.             Player p = (Player) sender;
  108.             homes.put(sender.getName(), new savedLocation(p.getLocation(), p.getWorld().toString()));
  109.             sender.sendMessage("Home set successfully.");
  110.             return true;
  111.         }
  112.        
  113.         if(cmd.getName().equalsIgnoreCase("delhome") && sender.hasPermission("home.del") && sender instanceof Player)
  114.         {
  115.             if (homes.containsKey(sender.getName()))
  116.             {
  117.                 Player p = (Player) sender;
  118.                 //p.getWorld().spawn(p.getLocation(), EnderCrystal.class);
  119.                 homes.remove(p.getName());
  120.                 sender.sendMessage("Home deleted.");
  121.             }
  122.             else
  123.             {
  124.                 sender.sendMessage("You haven't set a home yet.");
  125.             }
  126.             return true;
  127.         }
  128.         return false;
  129.        
  130.     }
  131. }
  132.  
  133. savedLocation.java:
  134. package me.robertsj.home;
  135.  
  136. import java.io.Serializable;
  137.  
  138. import org.bukkit.Bukkit;
  139. import org.bukkit.Location;
  140.  
  141. public class savedLocation implements Serializable
  142. {
  143.     private double x; //coords
  144.     private double y;
  145.     private double z;
  146.     private float pitch;
  147.     private float yaw;
  148. private String world;
  149.    
  150.     public savedLocation(Location xa, String w)
  151.     {
  152.         x = xa.getX();
  153.         y = xa.getY();
  154.         z = xa.getZ();
  155.         yaw = xa.getYaw();
  156.         pitch = xa.getPitch();
  157.         world = w;
  158.     }
  159.    
  160.     public Location retrieve()
  161.     {
  162.         Location l = new Location(Bukkit.getWorld(world),x,y,z,pitch,yaw);
  163.         return l;
  164.        
  165.     }
  166. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement