/[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 3201 by torben, Wed May 31 08:56:00 2017 UTC
# Line 1  Line 1 
1  package dk.thoerup.bukkit.hoeruputils;  package dk.thoerup.bukkit.hoeruputils;
2    
3  import org.bukkit.ChatColor;  import java.io.File;
4    import java.util.Set;
5    import java.util.TreeSet;
6    
7  import org.bukkit.Location;  import org.bukkit.Location;
8    import org.bukkit.OfflinePlayer;
9  import org.bukkit.Server;  import org.bukkit.Server;
10  import org.bukkit.World;  import org.bukkit.World;
11  import org.bukkit.command.Command;  import org.bukkit.command.Command;
12  import org.bukkit.command.CommandExecutor;  import org.bukkit.command.CommandExecutor;
13  import org.bukkit.command.CommandSender;  import org.bukkit.command.CommandSender;
14    import org.bukkit.configuration.file.YamlConfiguration;
15  import org.bukkit.entity.Player;  import org.bukkit.entity.Player;
 import org.bukkit.plugin.Plugin;  
   
 import org.bukkit.event.Listener;  
16  import org.bukkit.event.EventHandler;  import org.bukkit.event.EventHandler;
17  import org.bukkit.event.player.PlayerTeleportEvent;  import org.bukkit.event.Listener;
 import org.bukkit.event.player.PlayerPortalEvent;  
 import org.bukkit.event.player.PlayerMoveEvent;  
 import org.bukkit.event.player.PlayerJoinEvent;  
   
18  import org.bukkit.event.block.BlockBreakEvent;  import org.bukkit.event.block.BlockBreakEvent;
19  import org.bukkit.event.block.BlockPlaceEvent;  import org.bukkit.event.block.BlockPlaceEvent;
20    import org.bukkit.event.player.PlayerJoinEvent;
21  import org.bukkit.configuration.file.YamlConfiguration;  import org.bukkit.event.player.PlayerMoveEvent;
22    import org.bukkit.event.player.PlayerPortalEvent;
23  import java.io.File;  import org.bukkit.event.player.PlayerRespawnEvent;
24  import java.io.*;  import org.bukkit.event.player.PlayerTeleportEvent;
   
 import java.util.ArrayList;  
 import java.util.Set;  
 import java.util.TreeSet;  
25    
26  public class Jail implements CommandExecutor,  Listener {  public class Jail implements CommandExecutor,  Listener {
27                    
28          Plugin plugin;          HoerupUtilsPlugin  plugin;
29    
30          TreeSet<String> jailed = new TreeSet<String>();          TreeSet<String> jailed = new TreeSet<String>();
31    
# Line 40  public class Jail implements CommandExec Line 34  public class Jail implements CommandExec
34    
35          final double maxDist = 25.0;          final double maxDist = 25.0;
36                    
37          public Jail(Plugin plugin) {          public Jail(HoerupUtilsPlugin  plugin) {
38                  this.plugin = plugin;                  this.plugin = plugin;
39    
40    
# Line 64  public class Jail implements CommandExec Line 58  public class Jail implements CommandExec
58                  jailLocation = loadLocation(config, plugin.getServer(), "jailloc");                  jailLocation = loadLocation(config, plugin.getServer(), "jailloc");
59                  releaseLocation = loadLocation(config, plugin.getServer(), "releaseloc");                  releaseLocation = loadLocation(config, plugin.getServer(), "releaseloc");
60    
61                    @SuppressWarnings("unchecked")
62                  Set<String> tmpSet = (Set<String>) config.get("jails");                  Set<String> tmpSet = (Set<String>) config.get("jails");
63                  jailed.addAll(tmpSet);                  jailed.addAll(tmpSet);
64          }          }
# Line 111  public class Jail implements CommandExec Line 106  public class Jail implements CommandExec
106    
107          @Override          @Override
108          public boolean onCommand(final CommandSender sender, Command command, String label, String[] args) {          public boolean onCommand(final CommandSender sender, Command command, String label, String[] args) {
109                  if (! (sender instanceof Player) ) {                  if (args.length == 0) {
110                          sender.sendMessage("only use these commands in-game");                          sender.sendMessage("Usage: /jail <imprison|release|list|tpjail|tprelease|setjail|setrelease>");
111                          return true;                          return true;
112                  }                  }
113                    
114                  Player p = (Player) sender;                  if (sender instanceof Player ) {
115                            Player p = (Player) sender;
116                  if ( !p.isOp()) {                          if ( p.isOp() || p.hasPermission("hoeruputils.jail") ) {
117                          p.sendMessage("Only server operators may use this command");                                  //do nothing
118                          return true;                          } else {
119                                    p.sendMessage("Only server operators or players with hoeruputils.jail priv may use this command");
120                                    return true;
121                            }
122                    } else {
123                            if ( args[0].equals("imprison") || args[0].equals("release") || args[0].equals("list") ) {
124                                    //do nothing
125                            } else {
126                                    sender.sendMessage("only imprison, release and list may be used from console");
127                                    return true;
128                            }
129                  }                  }
130    
                 if (args.length == 0) {  
                         p.sendMessage("Usage: /jail <imprison|release|list|tpjail|tprelease|setjail|setrelease>");  
                         return true;  
                 }  
131    
132                  if (args[0].equals("imprison")) {                  if (args[0].equals("imprison")) {
133                          if (args.length != 2) {                          if (args.length != 2) {
134                                    sender.sendMessage("You must specify the player");
135                                  return true;                                  return true;
136                          }                          }
137    
138                          Player inmate = sender.getServer().getPlayer( args[1] );                          OfflinePlayer inmate = sender.getServer().getOfflinePlayer( args[1] );
139                          if (inmate == null) {                          if (inmate.hasPlayedBefore() == false && inmate.isOnline() == false) {
140                                  p.sendMessage("Player not found");                                  sender.sendMessage("Player not found");
141                                  return true;                                      return true;    
142                          }                                }      
143    
144                            if (inmate instanceof Player) {
145                          inmate.sendMessage("You have been imprisoned");                                  Player p = (Player) inmate;
146                          inmate.teleport( jailLocation );                                  p.sendMessage("You have been imprisoned");
147                                    p.teleport( jailLocation );
148                            }
149                          jailed.add( inmate.getName() );                          jailed.add( inmate.getName() );
150                          save();                          save();
151                            sender.sendMessage("player " + inmate.getName() + " is imprisoned");
152                          return true;                          return true;
153                  }                  }
154    
155                  if (args[0].equals("release")) {                  if (args[0].equals("release")) {
156                          if (args.length != 2) {                          if (args.length != 2) {
157                                    sender.sendMessage("You must specify the player");
158                                  return true;                                  return true;
159                          }                          }
160    
161                          Player inmate = sender.getServer().getPlayer( args[1] );                          OfflinePlayer inmate = sender.getServer().getOfflinePlayer( args[1] );
162                          if (inmate == null) {                          if (inmate.hasPlayedBefore() == false && inmate.isOnline() == false) {
163                                  p.sendMessage("Player not found");                                  sender.sendMessage("Player not found");
164                                  return true;                                      return true;    
165                          }                                }      
166    
   
167                          jailed.remove( inmate.getName() );                          jailed.remove( inmate.getName() );
168                          inmate.sendMessage("You have been released from prison");                          if (inmate instanceof Player) {
169                          inmate.teleport( releaseLocation );                                  Player p = (Player) inmate;
170                                    p.sendMessage("You have been released from jail");
171                                    p.teleport( releaseLocation );
172                            } else {
173                                    plugin.getMessageWrapper().sendMessage("Jail System", inmate, "You have been release from jail - you are free to go home");
174                            }
175                          save();                          save();
176                            sender.sendMessage("player " + inmate.getName() + " is released");
177                          return true;                          return true;
178                  }                  }
179    
# Line 181  public class Jail implements CommandExec Line 192  public class Jail implements CommandExec
192                  }                  }
193    
194                  if (args[0].equals("setjail")) {                  if (args[0].equals("setjail")) {
195                            Player p = (Player) sender;
196                          jailLocation = p.getLocation().clone();                          jailLocation = p.getLocation().clone();
197                          p.sendMessage("New jail location has been set");                          p.sendMessage("New jail location has been set");
198                          save();                          save();
199                          return true;                          return true;
200                  }                  }
201                  if (args[0].equals("setrelease")) {                  if (args[0].equals("setrelease")) {
202                            Player p = (Player) sender;
203                          releaseLocation = p.getLocation().clone();                          releaseLocation = p.getLocation().clone();
204                          p.sendMessage("New release location has been set");                          p.sendMessage("New release location has been set");
205                          save();                          save();
# Line 194  public class Jail implements CommandExec Line 207  public class Jail implements CommandExec
207                  }                  }
208    
209                  if (args[0].equals("tpjail")) {                  if (args[0].equals("tpjail")) {
210                            Player p = (Player) sender;
211                          p.teleport(jailLocation);                          p.teleport(jailLocation);
212                          return true;                          return true;
213                  }                  }
214                  if (args[0].equals("tprelease")) {                  if (args[0].equals("tprelease")) {
215                            Player p = (Player) sender;
216                          p.teleport(releaseLocation);                          p.teleport(releaseLocation);
217                          return true;                          return true;
218                  }                  }
# Line 279  public class Jail implements CommandExec Line 294  public class Jail implements CommandExec
294                          event.setCancelled( true );                                              event.setCancelled( true );                    
295                  }                  }
296          }          }
297    
298            @EventHandler
299            public void onRespawn(PlayerRespawnEvent event) {
300                    Player p = event.getPlayer();
301                    if (jailed.contains( p.getName() ) ) {
302                            event.setRespawnLocation( jailLocation );
303                            p.teleport( jailLocation );
304                    }
305            }
306  }  }
307                                    

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

  ViewVC Help
Powered by ViewVC 1.1.20