Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- main.java:
- package me.robertsj.home;
- import java.io.FileInputStream;
- import java.io.FileOutputStream;
- import java.io.ObjectInputStream;
- import java.io.ObjectOutputStream;
- import java.util.HashMap;
- 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.EnderCrystal;
- import org.bukkit.entity.Player;
- import org.bukkit.event.Listener;
- import org.bukkit.plugin.java.JavaPlugin;
- public class main extends JavaPlugin implements Listener
- {
- HashMap<String,savedLocation> homes = new HashMap<String,savedLocation>();
- @SuppressWarnings("unchecked")
- public void onEnable()
- {
- Logger log;
- log = this.getLogger();
- log.info("Enabling SimpleHome");
- try {
- if (this.getDataFolder().exists())
- {
- homes = (HashMap<String, savedLocation>) load(getDataFolder() + "/data.bin");
- }
- else
- {
- this.getDataFolder().mkdir();
- Bukkit.getLogger().info("First time run? No Data available");
- }
- } catch (Exception e) {
- Bukkit.getLogger().info("Couldn't load the damn data");
- }
- }
- public void onDisable()
- {
- this.saveConfig();
- Logger log;
- log = this.getLogger();
- log.info("Disabling SimpleHome");
- try {
- if (this.getDataFolder().exists())
- {
- save(homes,getDataFolder() + "/data.bin");
- }
- else
- {
- this.getDataFolder().mkdir();
- }
- } catch (Exception e) {
- Bukkit.getLogger().info("Couldn't save the damn data");
- }
- }
- 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 boolean onCommand(CommandSender sender, Command cmd, String commandLabel, final String[] args)
- {
- if(cmd.getName().equalsIgnoreCase("home") && sender.hasPermission("home.home") && sender instanceof Player)
- {
- if (homes.containsKey(sender.getName()))
- {
- Player p = (Player) sender;
- savedLocation l = homes.get(p.getName());
- Location lo = l.retrieve();
- if (lo.getWorld() == null)
- {
- lo.setWorld(p.getWorld());
- }
- p.teleport(lo);
- }
- else
- {
- sender.sendMessage("You haven't set a home location");
- }
- return true;
- }
- if(cmd.getName().equalsIgnoreCase("sethome") && sender.hasPermission("home.set") && sender instanceof Player)
- {
- Player p = (Player) sender;
- homes.put(sender.getName(), new savedLocation(p.getLocation(), p.getWorld().toString()));
- sender.sendMessage("Home set successfully.");
- return true;
- }
- if(cmd.getName().equalsIgnoreCase("delhome") && sender.hasPermission("home.del") && sender instanceof Player)
- {
- if (homes.containsKey(sender.getName()))
- {
- Player p = (Player) sender;
- //p.getWorld().spawn(p.getLocation(), EnderCrystal.class);
- homes.remove(p.getName());
- sender.sendMessage("Home deleted.");
- }
- else
- {
- sender.sendMessage("You haven't set a home yet.");
- }
- return true;
- }
- return false;
- }
- }
- savedLocation.java:
- package me.robertsj.home;
- import java.io.Serializable;
- import org.bukkit.Bukkit;
- import org.bukkit.Location;
- public class savedLocation implements Serializable
- {
- private double x; //coords
- private double y;
- private double z;
- private float pitch;
- private float yaw;
- private String world;
- public savedLocation(Location xa, String w)
- {
- x = xa.getX();
- y = xa.getY();
- z = xa.getZ();
- yaw = xa.getYaw();
- pitch = xa.getPitch();
- world = w;
- }
- public Location retrieve()
- {
- Location l = new Location(Bukkit.getWorld(world),x,y,z,pitch,yaw);
- return l;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement