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|setowner) [player]"); |
player.sendMessage("/chest (status|lock|snitch|remove|addplayer|removeplayer|setowner|comment) [player]"); |
81 |
return true; |
return true; |
82 |
} |
} |
83 |
|
|
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 |
} |
} |
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 { |
140 |
|
server.getLogger().info( player.getName() + " tried to protect a chest owned by " + chest.getOwner() ); |
141 |
player.sendMessage("This chest is already protected"); |
player.sendMessage("This chest is already protected"); |
142 |
} |
} |
143 |
return true; |
return true; |
148 |
player.sendMessage("This chest is not protected"); |
player.sendMessage("This chest is not protected"); |
149 |
return true; |
return true; |
150 |
} |
} |
151 |
if (! chest.getOwner().equals( player.getName() ) ) { |
if ( chest.getOwner().equals( player.getName() ) || player.isOp() ) { |
152 |
|
//do nothing |
153 |
|
} else { |
154 |
player.sendMessage("You can not remove lock from a chest you don't own"); |
player.sendMessage("You can not remove lock from a chest you don't own"); |
155 |
|
server.getLogger().info( player.getName() + " tried to remove protection froma chest owned by " + chest.getOwner() ); |
156 |
return true; |
return true; |
157 |
} |
} |
158 |
|
|
167 |
player.sendMessage("This chest is not protected"); |
player.sendMessage("This chest is not protected"); |
168 |
return true; |
return true; |
169 |
} |
} |
170 |
if (! chest.getOwner().equals( player.getName() ) ) { |
if ( chest.getOwner().equals( player.getName() ) || player.isOp() ) { |
171 |
|
//do nothing |
172 |
|
} else { |
173 |
player.sendMessage("You can not set new owner of a chest you dont own"); |
player.sendMessage("You can not set new owner of a chest you dont own"); |
174 |
|
server.getLogger().info( player.getName() + " tried to set owner on a chest owned by " + chest.getOwner() ); |
175 |
return true; |
return true; |
176 |
} |
} |
177 |
if (args.length != 2) { |
if (args.length != 2) { |
196 |
} |
} |
197 |
if (! chest.getOwner().equals( player.getName() ) ) { |
if (! chest.getOwner().equals( player.getName() ) ) { |
198 |
player.sendMessage("You can not add/remove players from a chest you don't own"); |
player.sendMessage("You can not add/remove players from a chest you don't own"); |
199 |
|
server.getLogger().info( player.getName() + " tried to add/remove player on a chest owned by " + chest.getOwner() ); |
200 |
return true; |
return true; |
201 |
} |
} |
202 |
if (args.length != 2) { |
if (args.length != 2) { |
221 |
player.sendMessage("ok"); |
player.sendMessage("ok"); |
222 |
return true; |
return true; |
223 |
} |
} |
224 |
|
if (cmd.equals("comment")) { |
225 |
|
if (chest == null) { |
226 |
|
player.sendMessage("This chest is not protected"); |
227 |
|
return true; |
228 |
|
} |
229 |
|
if (! chest.getOwner().equals( player.getName() ) ) { |
230 |
|
player.sendMessage("You can not comment a chest you don't own"); |
231 |
|
server.getLogger().info( player.getName() + " tried to comment on a chest owned by " + chest.getOwner() ); |
232 |
|
return true; |
233 |
|
} |
234 |
|
|
235 |
|
StringBuilder sb = new StringBuilder(); |
236 |
|
for (int i=1; i<args.length; i++) { |
237 |
|
sb.append(args[i]).append(" "); |
238 |
|
} |
239 |
|
String comment = sb.toString().trim(); |
240 |
|
|
241 |
|
chest.setComment( comment ); |
242 |
|
plugin.getDatabase().save( chest ); |
243 |
|
player.sendMessage("Comment set"); |
244 |
|
|
245 |
|
return true; |
246 |
|
} |
247 |
|
|
248 |
/* |
/* |
249 |
if (chest != null) { |
if (chest != null) { |
284 |
} else { |
} else { |
285 |
event.setCancelled(true); |
event.setCancelled(true); |
286 |
event.getPlayer().sendMessage("You can't destroy that chest"); |
event.getPlayer().sendMessage("You can't destroy that chest"); |
287 |
server.getLogger().info( "[AdvancedChest] " + event.getPlayer().getName() + " tried breaking a chest owned by " + chest.getOwner() ); |
server.getLogger().info( "[AdvancedChest] " + event.getPlayer().getName() + " tried breaking a chest owned by " + chest.getOwner() + chest.getCommentString() ); |
288 |
} |
} |
289 |
} |
} |
290 |
} |
} |
434 |
for (Block b : event.blockList() ) { |
for (Block b : event.blockList() ) { |
435 |
ChestBean chest = chestMap.get( b.getLocation() ); |
ChestBean chest = chestMap.get( b.getLocation() ); |
436 |
if (chest != null) { |
if (chest != null) { |
437 |
server.getLogger().info( "[AdvancedChest] Prevented an explosion from destroying chest owned by " + chest.getOwner() ); |
server.getLogger().info( "[AdvancedChest] Prevented an explosion from destroying chest owned by " + chest.getOwner() + chest.getCommentString() ); |
438 |
event.setCancelled( true ); |
event.setCancelled( true ); |
439 |
return; |
return; |
440 |
} |
} |
445 |
public void onChestBurn(BlockBurnEvent event) { |
public void onChestBurn(BlockBurnEvent event) { |
446 |
ChestBean chest = chestMap.get( event.getBlock().getLocation() ); |
ChestBean chest = chestMap.get( event.getBlock().getLocation() ); |
447 |
if (chest != null) { |
if (chest != null) { |
448 |
server.getLogger().info( "[AdvancedChest] prevented a fire from destrying chest owned by " + chest.getOwner() ); |
server.getLogger().info( "[AdvancedChest] prevented a fire from destrying chest owned by " + chest.getOwner() + chest.getCommentString() ); |
449 |
event.setCancelled( true); |
event.setCancelled( true); |
450 |
} |
} |
451 |
} |
} |
474 |
return; //chest is opened by it's owner |
return; //chest is opened by it's owner |
475 |
} |
} |
476 |
|
|
477 |
Set<String> players = Util.stringToSet( chest.getModifyPlayers() ); |
Set<String> players = chest.getModifyPlayersSet() ; |
478 |
if ( players.contains(player.getName()) ) { |
if ( players.contains(player.getName()) ) { |
479 |
return; //this player is on the whitelist so he may open |
return; //this player is on the whitelist so he may open |
480 |
} |
} |
481 |
|
|
482 |
|
|
483 |
server.getLogger().info( "[AdvancedChest] " + event.getPlayer().getName() + " tried opening a chest owned by " + chest.getOwner() ); |
server.getLogger().info( "[AdvancedChest] " + event.getPlayer().getName() + " tried opening a chest owned by " + chest.getOwner() + chest.getCommentString() ); |
484 |
player.sendMessage( ChatColor.BLUE + "Sorry but this chest is locked !"); |
player.sendMessage( ChatColor.BLUE + "Sorry but this chest is locked !"); |
485 |
event.setCancelled(true); |
event.setCancelled(true); |
486 |
} |
} |
515 |
return; //chest is owned by it's own player |
return; //chest is owned by it's own player |
516 |
} |
} |
517 |
|
|
518 |
Set<String> players = Util.stringToSet( chest.getModifyPlayers() ); |
Set<String> players = chest.getModifyPlayersSet(); |
519 |
if ( players.contains(player.getName()) ) { |
if ( players.contains(player.getName()) ) { |
520 |
return; //this player is on the whitelist so he may open |
return; //this player is on the whitelist so he may open |
521 |
} |
} |
522 |
|
|
523 |
|
|
524 |
|
server.getLogger().info( "[AdvancedChest] " + event.getPlayer().getName() + " opened a snitching chest owned by " + chest.getOwner() + chest.getCommentString() ); |
525 |
|
|
526 |
ItemCount contents = countItems( event.getInventory().getContents() ); |
ItemCount contents = countItems( event.getInventory().getContents() ); |
527 |
|
|
528 |
contentMap.put(player.getName(), contents ); |
contentMap.put(player.getName(), contents ); |