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

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

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

revision 1858 by torben, Sun Oct 14 13:21:38 2012 UTC revision 1862 by torben, Mon Oct 15 07:59:16 2012 UTC
# Line 8  import org.bukkit.command.Command; Line 8  import org.bukkit.command.Command;
8  import org.bukkit.command.CommandExecutor;  import org.bukkit.command.CommandExecutor;
9  import org.bukkit.command.CommandSender;  import org.bukkit.command.CommandSender;
10  import org.bukkit.entity.Player;  import org.bukkit.entity.Player;
11    import org.bukkit.OfflinePlayer;
12  import org.bukkit.plugin.Plugin;  import org.bukkit.plugin.Plugin;
13    
14  import org.bukkit.event.Listener;  import org.bukkit.event.Listener;
# Line 16  import org.bukkit.event.player.PlayerTel Line 17  import org.bukkit.event.player.PlayerTel
17  import org.bukkit.event.player.PlayerPortalEvent;  import org.bukkit.event.player.PlayerPortalEvent;
18  import org.bukkit.event.player.PlayerMoveEvent;  import org.bukkit.event.player.PlayerMoveEvent;
19  import org.bukkit.event.player.PlayerJoinEvent;  import org.bukkit.event.player.PlayerJoinEvent;
20    import org.bukkit.event.player.PlayerRespawnEvent;
21    
22  import org.bukkit.event.block.BlockBreakEvent;  import org.bukkit.event.block.BlockBreakEvent;
23  import org.bukkit.event.block.BlockPlaceEvent;  import org.bukkit.event.block.BlockPlaceEvent;
# Line 31  import java.util.TreeSet; Line 33  import java.util.TreeSet;
33    
34  public class Jail implements CommandExecutor,  Listener {  public class Jail implements CommandExecutor,  Listener {
35                    
36          Plugin plugin;          HoerupUtilsPlugin  plugin;
37    
38          TreeSet<String> jailed = new TreeSet<String>();          TreeSet<String> jailed = new TreeSet<String>();
39    
# Line 40  public class Jail implements CommandExec Line 42  public class Jail implements CommandExec
42    
43          final double maxDist = 25.0;          final double maxDist = 25.0;
44                    
45          public Jail(Plugin plugin) {          public Jail(HoerupUtilsPlugin  plugin) {
46                  this.plugin = plugin;                  this.plugin = plugin;
47    
48    
# Line 111  public class Jail implements CommandExec Line 113  public class Jail implements CommandExec
113    
114          @Override          @Override
115          public boolean onCommand(final CommandSender sender, Command command, String label, String[] args) {          public boolean onCommand(final CommandSender sender, Command command, String label, String[] args) {
116                  if (! (sender instanceof Player) ) {                  if (args.length == 0) {
117                          sender.sendMessage("only use these commands in-game");                          sender.sendMessage("Usage: /jail <imprison|release|list|tpjail|tprelease|setjail|setrelease>");
118                          return true;                          return true;
119                  }                  }
120                    
121                  Player p = (Player) sender;                  if (sender instanceof Player ) {
122                            Player p = (Player) sender;
123                  if ( !p.isOp()) {                          if ( !p.isOp()) {
124                          p.sendMessage("Only server operators may use this command");                                  p.sendMessage("Only server operators may use this command");
125                          return true;                                  return true;
126                            }
127                    } else {
128                            if ( args[0].equals("imprison") || args[0].equals("release") || args[0].equals("list") ) {
129                                    //do nothing
130                            } else {
131                                    sender.sendMessage("only imprison, release and list may be used from console");
132                                    return true;
133                            }
134                  }                  }
135    
                 if (args.length == 0) {  
                         p.sendMessage("Usage: /jail <imprison|release|list|tpjail|tprelease|setjail|setrelease>");  
                         return true;  
                 }  
136    
137                  if (args[0].equals("imprison")) {                  if (args[0].equals("imprison")) {
138                          if (args.length != 2) {                          if (args.length != 2) {
139                                    sender.sendMessage("You must specify the player");
140                                  return true;                                  return true;
141                          }                          }
142    
143                          Player inmate = sender.getServer().getPlayer( args[1] );                          OfflinePlayer inmate = sender.getServer().getOfflinePlayer( args[1] );
144                          if (inmate == null) {                          if (inmate.hasPlayedBefore() == false && inmate.isOnline() == false) {
145                                  p.sendMessage("Player not found");                                  sender.sendMessage("Player not found");
146                                  return true;                                      return true;    
147                          }                                }      
148    
149                            if (inmate instanceof Player) {
150                          inmate.sendMessage("You have been imprisoned");                                  Player p = (Player) inmate;
151                          inmate.teleport( jailLocation );                                  p.sendMessage("You have been imprisoned");
152                                    p.teleport( jailLocation );
153                            }
154                          jailed.add( inmate.getName() );                          jailed.add( inmate.getName() );
155                          save();                          save();
156                          return true;                          return true;
# Line 149  public class Jail implements CommandExec Line 158  public class Jail implements CommandExec
158    
159                  if (args[0].equals("release")) {                  if (args[0].equals("release")) {
160                          if (args.length != 2) {                          if (args.length != 2) {
161                                    sender.sendMessage("You must specify the player");
162                                  return true;                                  return true;
163                          }                          }
164    
165                          Player inmate = sender.getServer().getPlayer( args[1] );                          OfflinePlayer inmate = sender.getServer().getOfflinePlayer( args[1] );
166                          if (inmate == null) {                          if (inmate.hasPlayedBefore() == false && inmate.isOnline() == false) {
167                                  p.sendMessage("Player not found");                                  sender.sendMessage("Player not found");
168                                  return true;                                      return true;    
169                          }                                }      
170    
   
171                          jailed.remove( inmate.getName() );                          jailed.remove( inmate.getName() );
172                          inmate.sendMessage("You have been released from prison");                          if (inmate instanceof Player) {
173                          inmate.teleport( releaseLocation );                                  Player p = (Player) inmate;
174                                    p.sendMessage("You have been released from jail");
175                                    p.teleport( releaseLocation );
176                            } else {
177                                    plugin.getMessageWrapper().sendMessage("Jail System", inmate, "You have been release from jail - you are free to go home");
178                            }
179                          save();                          save();
180                          return true;                          return true;
181                  }                  }
# Line 181  public class Jail implements CommandExec Line 195  public class Jail implements CommandExec
195                  }                  }
196    
197                  if (args[0].equals("setjail")) {                  if (args[0].equals("setjail")) {
198                            Player p = (Player) sender;
199                          jailLocation = p.getLocation().clone();                          jailLocation = p.getLocation().clone();
200                          p.sendMessage("New jail location has been set");                          p.sendMessage("New jail location has been set");
201                          save();                          save();
202                          return true;                          return true;
203                  }                  }
204                  if (args[0].equals("setrelease")) {                  if (args[0].equals("setrelease")) {
205                            Player p = (Player) sender;
206                          releaseLocation = p.getLocation().clone();                          releaseLocation = p.getLocation().clone();
207                          p.sendMessage("New release location has been set");                          p.sendMessage("New release location has been set");
208                          save();                          save();
# Line 194  public class Jail implements CommandExec Line 210  public class Jail implements CommandExec
210                  }                  }
211    
212                  if (args[0].equals("tpjail")) {                  if (args[0].equals("tpjail")) {
213                            Player p = (Player) sender;
214                          p.teleport(jailLocation);                          p.teleport(jailLocation);
215                          return true;                          return true;
216                  }                  }
217                  if (args[0].equals("tprelease")) {                  if (args[0].equals("tprelease")) {
218                            Player p = (Player) sender;
219                          p.teleport(releaseLocation);                          p.teleport(releaseLocation);
220                          return true;                          return true;
221                  }                  }
# Line 279  public class Jail implements CommandExec Line 297  public class Jail implements CommandExec
297                          event.setCancelled( true );                                              event.setCancelled( true );                    
298                  }                  }
299          }          }
300    
301            @EventHandler
302            public void onRespawn(PlayerRespawnEvent event) {
303                    Player p = event.getPlayer();
304                    if (jailed.contains( p.getName() ) ) {
305                            event.setRespawnLocation( jailLocation );
306                            p.teleport( jailLocation );
307                    }
308            }
309  }  }
310                                    

Legend:
Removed from v.1858  
changed lines
  Added in v.1862

  ViewVC Help
Powered by ViewVC 1.1.20