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

Annotation 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 - (hide annotations) (download)
Mon Mar 9 14:16:47 2015 UTC (9 years, 3 months ago) by torben
File size: 3429 byte(s)
Deprecation
1 torben 1592 package dk.thoerup.bukkit.hoeruputils;
2    
3     import java.io.File;
4 torben 1614 import java.io.IOException;
5 torben 1592
6     import org.bukkit.ChatColor;
7     import org.bukkit.Location;
8     import org.bukkit.World;
9 torben 1864 import org.bukkit.OfflinePlayer;
10 torben 1592 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 torben 1671 import org.bukkit.configuration.Configuration;
16 torben 1614 import org.bukkit.configuration.file.YamlConfiguration;
17 torben 1592
18     public class HomeCommand implements CommandExecutor {
19    
20     Plugin plugin;
21    
22 torben 1614 YamlConfiguration config;
23 torben 1592
24 torben 1614 File file;
25    
26 torben 1592 public HomeCommand(Plugin plugin) {
27     this.plugin = plugin;
28    
29 torben 1614 file = new File( plugin.getDataFolder(), "homes.yml");
30 torben 1592
31 torben 1614 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 torben 1592 }
38 torben 1671
39     Configuration getConfig() {
40     return config;
41     }
42 torben 1592
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 torben 1666 final Player p = (Player) sender;
51 torben 1592
52     String name = p.getName();
53    
54     if ( command.getName().equals("home") ) {
55 torben 1851 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 torben 2434 @SuppressWarnings("deprecation")
64 torben 1864 OfflinePlayer op = sender.getServer().getOfflinePlayer(args[0]);
65     if (op.hasPlayedBefore() == false && op.isOnline() == false) {
66     sender.sendMessage("Player not found");
67     } else {
68 torben 1865 p.sendMessage("Sending you to " + op.getName() + "'s home");
69 torben 1864 tpUser(p, op.getName() );
70     }
71 torben 1592 } else {
72 torben 1851 p.sendMessage("Only operators may use this command");
73 torben 1592 }
74     }
75    
76     if (command.getName().equals("sethome") ) {
77     Location loc = p.getLocation();
78 torben 1614 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 torben 1592
85 torben 1614 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 torben 1592 }
92    
93     return true;
94     }
95 torben 1851
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 torben 1592 }

  ViewVC Help
Powered by ViewVC 1.1.20