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

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

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

miscJava/bukkit-minecraft-plugins/HoerupUtils/src/dk/thoerup/bukkit/hoeruputils/HomeCommand.java revision 1592 by torben, Wed Aug 24 18:45:40 2011 UTC miscJava/bukkit-minecraft-plugins/HoerupUtils/src/main/java/dk/thoerup/bukkit/hoeruputils/HomeCommand.java revision 1851 by torben, Sun Sep 23 18:56:24 2012 UTC
# Line 1  Line 1 
1  package dk.thoerup.bukkit.hoeruputils;  package dk.thoerup.bukkit.hoeruputils;
2    
3  import java.io.File;  import java.io.File;
4    import java.io.IOException;
5    
6  import org.bukkit.ChatColor;  import org.bukkit.ChatColor;
7  import org.bukkit.Location;  import org.bukkit.Location;
# Line 10  import org.bukkit.command.CommandExecuto Line 11  import org.bukkit.command.CommandExecuto
11  import org.bukkit.command.CommandSender;  import org.bukkit.command.CommandSender;
12  import org.bukkit.entity.Player;  import org.bukkit.entity.Player;
13  import org.bukkit.plugin.Plugin;  import org.bukkit.plugin.Plugin;
14  import org.bukkit.util.config.Configuration;  import org.bukkit.configuration.Configuration;
15    import org.bukkit.configuration.file.YamlConfiguration;
16    
17  public class HomeCommand implements CommandExecutor {  public class HomeCommand implements CommandExecutor {
18    
19          Plugin plugin;          Plugin plugin;
20    
21          Configuration config;          YamlConfiguration config;
22    
23            File file;
24    
25          public HomeCommand(Plugin plugin) {          public HomeCommand(Plugin plugin) {
26                  this.plugin = plugin;                  this.plugin = plugin;
27    
28                  File file = new File( plugin.getDataFolder(), "homes.yml");                  file = new File( plugin.getDataFolder(), "homes.yml");
29    
30                  config = new Configuration( file );                  config = new YamlConfiguration();
31                  config.load();                  try {
32                            config.load(file);
33                    } catch (Exception e) {
34                            System.out.println("[HoerupUtils] exception loading config file: " + e.getMessage() );
35                    }
36            }
37    
38            Configuration getConfig() {
39                    return config;
40          }          }
41                    
42    
# Line 34  public class HomeCommand implements Comm Line 46  public class HomeCommand implements Comm
46                  if (!(sender instanceof Player)) {                  if (!(sender instanceof Player)) {
47                          return false;                          return false;
48                  }                  }
49                  Player p = (Player) sender;                  final Player p = (Player) sender;
50    
51                  String name = p.getName();                  String name = p.getName();
52    
53                  if ( command.getName().equals("home") ) {                  if ( command.getName().equals("home") ) {
54                          config.load();                          tpUser(p, name);
55                    }
56                          String worldName = config.getString( name + ".world");                  if ( command.getName().equals("ophome") ) {
57                          if (worldName != null) {                          if (args.length != 1) {
58                                  double yaw = config.getDouble( name + ".yaw", 0.0);                                      p.sendMessage("Usage: /ophome <player>");
59                                  double pitch = config.getDouble( name + ".pitch", 0.0);                                  return true;
60                                  double x = config.getDouble( name + ".x", 0.0);                          }
61                                  double y = config.getDouble( name + ".y", 0.0);                          if ( p.isOp() ) {
62                                  double z = config.getDouble( name + ".z", 0.0);                                  tpUser(p, args[0]);
   
                                 World world = p.getServer().getWorld(worldName);  
   
                                 Location loc = new Location( world, x, y, z, (float)yaw, (float)pitch);  
   
                                 p.teleport(loc);  
63                          } else {                          } else {
64                                  p.sendMessage(ChatColor.YELLOW + "You haven't set a home yet!");                                  p.sendMessage("Only operators may use this command");
65                          }                          }
66                  }                  }
67    
68                  if (command.getName().equals("sethome") ) {                  if (command.getName().equals("sethome") ) {
69                          Location loc = p.getLocation();                          Location loc = p.getLocation();
70                          config.setProperty( name + ".yaw", loc.getYaw() );                          config.set( name + ".yaw", loc.getYaw() );
71                          config.setProperty( name + ".pitch", loc.getPitch() );                          config.set( name + ".pitch", loc.getPitch() );
72                          config.setProperty( name + ".world", loc.getWorld().getName() );                          config.set( name + ".world", loc.getWorld().getName() );
73                          config.setProperty( name + ".x", loc.getX() );                          config.set( name + ".x", loc.getX() );
74                          config.setProperty( name + ".y", loc.getY() );                          config.set( name + ".y", loc.getY() );
75                          config.setProperty( name + ".z", loc.getZ() );                          config.set( name + ".z", loc.getZ() );
76    
77                          config.save();                          try {
78                          p.sendMessage(ChatColor.YELLOW + "home is set");                                  config.save(file);
79                                    p.sendMessage(ChatColor.YELLOW + "home is set");
80                            } catch (IOException e) {
81                                    System.out.println("[HoerupUtils] : /sethome save threw an IO exception: " + e.getMessage() );
82                            }
83                  }                  }
84                                    
85                  return true;                  return true;
86          }          }
87            
88            private void tpUser(final Player p, String name) {
89                    String worldName = config.getString( name + ".world");
90                    if (worldName != null) {
91                            double yaw = config.getDouble( name + ".yaw", 0.0);    
92                            double pitch = config.getDouble( name + ".pitch", 0.0);
93                            double x = config.getDouble( name + ".x", 0.0);
94                            double y = config.getDouble( name + ".y", 0.0);
95                            double z = config.getDouble( name + ".z", 0.0);
96    
97                            World world = p.getServer().getWorld(worldName);
98                            int blockX = (int) Math.floor(x);
99                            int blockZ = (int) Math.floor(z);
100                            world.loadChunk(blockX, blockZ);        
101    
102                            final Location loc = new Location( world, x, y, z, (float)yaw, (float)pitch);
103    
104                            Runnable r = new Runnable() {
105                                    public void run() {
106                                            p.teleport(loc);
107                                    }
108                            };
109                            int tickCount = 2; // 2 ticks = 100ms
110    
111                            p.getServer().getScheduler().scheduleSyncDelayedTask(plugin, r, tickCount);
112    
113                    } else {
114                            p.sendMessage(ChatColor.YELLOW + "You haven't set a home yet!");
115                    }
116                    
117            }
118  }  }

Legend:
Removed from v.1592  
changed lines
  Added in v.1851

  ViewVC Help
Powered by ViewVC 1.1.20