/[projects]/miscJava/bukkit-minecraft-plugins/HoerupUtils/src/main/java/dk/thoerup/bukkit/hoeruputils/HomeCommand.java
ViewVC logotype

Contents of /miscJava/bukkit-minecraft-plugins/HoerupUtils/src/main/java/dk/thoerup/bukkit/hoeruputils/HomeCommand.java

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2434 - (show annotations) (download)
Mon Mar 9 14:16:47 2015 UTC (9 years, 2 months ago) by torben
File size: 3429 byte(s)
Deprecation
1 package dk.thoerup.bukkit.hoeruputils;
2
3 import java.io.File;
4 import java.io.IOException;
5
6 import org.bukkit.ChatColor;
7 import org.bukkit.Location;
8 import org.bukkit.World;
9 import org.bukkit.OfflinePlayer;
10 import org.bukkit.command.Command;
11 import org.bukkit.command.CommandExecutor;
12 import org.bukkit.command.CommandSender;
13 import org.bukkit.entity.Player;
14 import org.bukkit.plugin.Plugin;
15 import org.bukkit.configuration.Configuration;
16 import org.bukkit.configuration.file.YamlConfiguration;
17
18 public class HomeCommand implements CommandExecutor {
19
20 Plugin plugin;
21
22 YamlConfiguration config;
23
24 File file;
25
26 public HomeCommand(Plugin plugin) {
27 this.plugin = plugin;
28
29 file = new File( plugin.getDataFolder(), "homes.yml");
30
31 config = new YamlConfiguration();
32 try {
33 config.load(file);
34 } catch (Exception e) {
35 System.out.println("[HoerupUtils] exception loading config file: " + e.getMessage() );
36 }
37 }
38
39 Configuration getConfig() {
40 return config;
41 }
42
43
44 @Override
45 public boolean onCommand(final CommandSender sender, Command command, String label, String[] args) {
46
47 if (!(sender instanceof Player)) {
48 return false;
49 }
50 final Player p = (Player) sender;
51
52 String name = p.getName();
53
54 if ( command.getName().equals("home") ) {
55 tpUser(p, name);
56 }
57 if ( command.getName().equals("ophome") ) {
58 if (args.length != 1) {
59 p.sendMessage("Usage: /ophome <player>");
60 return true;
61 }
62 if ( p.isOp() ) {
63 @SuppressWarnings("deprecation")
64 OfflinePlayer op = sender.getServer().getOfflinePlayer(args[0]);
65 if (op.hasPlayedBefore() == false && op.isOnline() == false) {
66 sender.sendMessage("Player not found");
67 } else {
68 p.sendMessage("Sending you to " + op.getName() + "'s home");
69 tpUser(p, op.getName() );
70 }
71 } else {
72 p.sendMessage("Only operators may use this command");
73 }
74 }
75
76 if (command.getName().equals("sethome") ) {
77 Location loc = p.getLocation();
78 config.set( name + ".yaw", loc.getYaw() );
79 config.set( name + ".pitch", loc.getPitch() );
80 config.set( name + ".world", loc.getWorld().getName() );
81 config.set( name + ".x", loc.getX() );
82 config.set( name + ".y", loc.getY() );
83 config.set( name + ".z", loc.getZ() );
84
85 try {
86 config.save(file);
87 p.sendMessage(ChatColor.YELLOW + "home is set");
88 } catch (IOException e) {
89 System.out.println("[HoerupUtils] : /sethome save threw an IO exception: " + e.getMessage() );
90 }
91 }
92
93 return true;
94 }
95
96 private void tpUser(final Player p, String name) {
97 String worldName = config.getString( name + ".world");
98 if (worldName != null) {
99 double yaw = config.getDouble( name + ".yaw", 0.0);
100 double pitch = config.getDouble( name + ".pitch", 0.0);
101 double x = config.getDouble( name + ".x", 0.0);
102 double y = config.getDouble( name + ".y", 0.0);
103 double z = config.getDouble( name + ".z", 0.0);
104
105 World world = p.getServer().getWorld(worldName);
106 int blockX = (int) Math.floor(x);
107 int blockZ = (int) Math.floor(z);
108 world.loadChunk(blockX, blockZ);
109
110 final Location loc = new Location( world, x, y, z, (float)yaw, (float)pitch);
111
112 Runnable r = new Runnable() {
113 public void run() {
114 p.teleport(loc);
115 }
116 };
117 int tickCount = 2; // 2 ticks = 100ms
118
119 p.getServer().getScheduler().scheduleSyncDelayedTask(plugin, r, tickCount);
120
121 } else {
122 p.sendMessage(ChatColor.YELLOW + "You haven't set a home yet!");
123 }
124
125 }
126 }

  ViewVC Help
Powered by ViewVC 1.1.20