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

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

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

revision 1810 by torben, Mon Jun 4 18:27:14 2012 UTC revision 1869 by torben, Tue Nov 6 16:49:06 2012 UTC
# Line 24  import org.bukkit.event.EventHandler; Line 24  import org.bukkit.event.EventHandler;
24  import org.bukkit.event.Listener;  import org.bukkit.event.Listener;
25  import org.bukkit.event.block.Action;  import org.bukkit.event.block.Action;
26  import org.bukkit.event.block.BlockBreakEvent;  import org.bukkit.event.block.BlockBreakEvent;
27    import org.bukkit.event.block.BlockBurnEvent;
28  import org.bukkit.event.block.BlockPlaceEvent;  import org.bukkit.event.block.BlockPlaceEvent;
29  import org.bukkit.event.entity.EntityExplodeEvent;  import org.bukkit.event.entity.EntityExplodeEvent;
30  import org.bukkit.event.inventory.InventoryCloseEvent;  import org.bukkit.event.inventory.InventoryCloseEvent;
# Line 76  public class AdvancedChest  implements L Line 77  public class AdvancedChest  implements L
77                                    
78                  if (args.length == 0) {                  if (args.length == 0) {
79                          player.sendMessage("Usage:");                          player.sendMessage("Usage:");
80                          player.sendMessage("/chest (status|lock|snitch|remove|addplayer|removeplayer) [player]");                          player.sendMessage("/chest (status|lock|snitch|remove|addplayer|removeplayer|setowner|comment) [player]");
81                          return true;                          return true;
82                  }                  }
83                                    
# Line 110  public class AdvancedChest  implements L Line 111  public class AdvancedChest  implements L
111                                                                    
112                                  player.sendMessage(ChatColor.GREEN + "Chest is  a " + mode + " chest owned by " + chest.getOwner());                                  player.sendMessage(ChatColor.GREEN + "Chest is  a " + mode + " chest owned by " + chest.getOwner());
113                                  player.sendMessage(ChatColor.GREEN + "Allowed players: " + chest.getModifyPlayers() );                                  player.sendMessage(ChatColor.GREEN + "Allowed players: " + chest.getModifyPlayers() );
114                                    player.sendMessage(ChatColor.GREEN + "Comment: " + chest.getComment() );
115                          } else {                          } else {
116                                  player.sendMessage(ChatColor.GREEN + "The chest is not protected");                                  player.sendMessage(ChatColor.GREEN + "The chest is not protected");
117                          }                          }
# Line 131  public class AdvancedChest  implements L Line 133  public class AdvancedChest  implements L
133                                          modeStr = "snitching";                                          modeStr = "snitching";
134                                  }                                  }
135                                  chest.setModifyPlayers("");                                  chest.setModifyPlayers("");
136                                    chest.setComment("");
137                                  addChest(loc, chest);                                  addChest(loc, chest);
138                                  player.sendMessage("Chest is now " + modeStr);                                  player.sendMessage("Chest is now " + modeStr);
139                          } else {                          } else {
# Line 140  public class AdvancedChest  implements L Line 143  public class AdvancedChest  implements L
143                  }                  }
144                                    
145                  if (cmd.equals("remove")) {                  if (cmd.equals("remove")) {
146                          if (chest != null) {                          if (chest == null) {
147                                  player.sendMessage("[LockedChest] Removing protection from chest");                                  player.sendMessage("This chest is not protected");
148                                  removeChest(loc);                                                                return true;
149                          } else {                          }
150                                  player.sendMessage("This chest is not protected");                                if (! chest.getOwner().equals( player.getName() ) ) {
151                                    player.sendMessage("You can not remove lock from a chest you don't own");
152                                    return true;
153                          }                          }
154    
155                            player.sendMessage("[LockedChest] Removing protection from chest");
156                            removeChest(loc);                              
157    
158                            return true;
159                    }
160    
161                    if (cmd.equals("setowner")) {
162                            if (chest == null) {
163                                    player.sendMessage("This chest is not protected");
164                                    return true;
165                            }
166                            if (! chest.getOwner().equals( player.getName() ) ) {
167                                    player.sendMessage("You can not set new owner of a chest you dont own");
168                                    return true;
169                            }
170                            if (args.length != 2) {
171                                    player.sendMessage("You need to specify which player should own this chest");
172                                    return true;
173                            }
174                            OfflinePlayer p2 = server.getOfflinePlayer(args[1]);
175                            if ( p2.hasPlayedBefore() == false && p2.isOnline() == false) {
176                                    player.sendMessage("Unknown user: " + args[1] );
177                                    return true;
178                            }
179                            chest.setOwner( p2.getName() );
180                            plugin.getDatabase().save( chest );
181                            player.sendMessage("ok");
182                          return true;                          return true;
183                  }                  }
184                                    
# Line 154  public class AdvancedChest  implements L Line 187  public class AdvancedChest  implements L
187                                  player.sendMessage("This chest is not protected");                                  player.sendMessage("This chest is not protected");
188                                  return true;                                  return true;
189                          }                          }
190                            if (! chest.getOwner().equals( player.getName() ) ) {
191                                    player.sendMessage("You can not add/remove players from a chest you don't own");
192                                    return true;
193                            }
194                          if (args.length != 2) {                          if (args.length != 2) {
195                                  player.sendMessage("You need to specify which player to add or remove");                                  player.sendMessage("You need to specify which player to add or remove");
196                                  return true;                                  return true;
# Line 176  public class AdvancedChest  implements L Line 213  public class AdvancedChest  implements L
213                          player.sendMessage("ok");                          player.sendMessage("ok");
214                          return true;                          return true;
215                  }                  }
216                    if (cmd.equals("comment")) {    
217                            if (chest == null) {
218                                    player.sendMessage("This chest is not protected");
219                                    return true;
220                            }
221                            if (! chest.getOwner().equals( player.getName() ) ) {
222                                    player.sendMessage("You can not comment a chest you don't own");
223                                    return true;
224                            }
225    
226                            StringBuilder sb = new StringBuilder();
227                            for (int i=1; i<args.length; i++) {
228                                    sb.append(args[i]).append(" ");
229                            }
230                            String comment = sb.toString().trim();
231    
232                            chest.setComment( comment );
233                            plugin.getDatabase().save( chest );
234                            player.sendMessage("Comment set");
235    
236                            return true;
237                    }
238                                    
239                  /*                  /*
240                  if (chest != null) {                  if (chest != null) {
# Line 265  public class AdvancedChest  implements L Line 324  public class AdvancedChest  implements L
324                    
325          void loadChests() {                      void loadChests() {            
326                  int count = loadChestsWorker();                  int count = loadChestsWorker();
327                  plugin.getLogger().info("[AdvancedChest] loaded " + count + " chests");                  server.getLogger().info("[AdvancedChest] loaded " + count + " chests");
328          }          }
329                    
330                    
# Line 371  public class AdvancedChest  implements L Line 430  public class AdvancedChest  implements L
430                                  return;                                  return;
431                          }                          }
432                  }                  }
433          }                }
434    
435            @EventHandler
436            public void onChestBurn(BlockBurnEvent event) {
437                    ChestBean chest = chestMap.get( event.getBlock().getLocation() );
438                    if (chest != null) {
439                            server.getLogger().info( "[AdvancedChest] prevented a fire from destrying chest owned by " + chest.getOwner() );
440                            event.setCancelled( true);
441                    }
442            }
443                    
444          // prevent a user from opening a chest          // prevent a user from opening a chest
445          @EventHandler          @EventHandler
# Line 403  public class AdvancedChest  implements L Line 471  public class AdvancedChest  implements L
471                                  }                                  }
472    
473    
474                                                            server.getLogger().info( "[AdvancedChest] " + event.getPlayer().getName() + " tried opening a chest owned by " + chest.getOwner() );
475                                  player.sendMessage( ChatColor.BLUE +  "Sorry but this chest is locked !");                                  player.sendMessage( ChatColor.BLUE +  "Sorry but this chest is locked !");
476                                  event.setCancelled(true);                                  event.setCancelled(true);
477                          }                          }
# Line 444  public class AdvancedChest  implements L Line 512  public class AdvancedChest  implements L
512                          }                          }
513                                                    
514                                                    
515                            //server.getLogger().info( "[AdvancedChest] " + event.getPlayer().getName() + " opened a snitching chest owned by " + chest.getOwner() );
516    
517                          ItemCount contents = countItems( event.getInventory().getContents() );                                            ItemCount contents = countItems( event.getInventory().getContents() );                  
518                                                    
519                          contentMap.put(player.getName(), contents );                          contentMap.put(player.getName(), contents );
# Line 513  public class AdvancedChest  implements L Line 583  public class AdvancedChest  implements L
583                                          }                                          }
584                                                                    
585                                                                    
586                                          plugin.getLogger().info(msg);                                          server.getLogger().info( "[AdvancedChest]" + msg);
587                                          plugin.getMessageWrapper().sendMessage("system", owner, msg);                                          plugin.getMessageWrapper().sendMessage("system", owner, msg);
588                                  }                                  }
589                                                                    

Legend:
Removed from v.1810  
changed lines
  Added in v.1869

  ViewVC Help
Powered by ViewVC 1.1.20