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

Contents of /miscJava/bukkit-minecraft-plugins/HoerupUtils/src/dk/thoerup/bukkit/hoeruputils/AdminDestroy.java

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1379 - (show annotations) (download)
Sat Apr 23 13:48:35 2011 UTC (13 years ago) by torben
File size: 2185 byte(s)
Correct some of the blocks dropped
1 package dk.thoerup.bukkit.hoeruputils;
2
3 import java.util.HashSet;
4 import java.util.Set;
5
6 import org.bukkit.Material;
7 import org.bukkit.block.Block;
8 import org.bukkit.command.Command;
9 import org.bukkit.command.CommandExecutor;
10 import org.bukkit.command.CommandSender;
11 import org.bukkit.entity.Player;
12 import org.bukkit.event.block.BlockDamageEvent;
13 import org.bukkit.event.block.BlockListener;
14 import org.bukkit.event.player.PlayerListener;
15 import org.bukkit.event.player.PlayerQuitEvent;
16 import org.bukkit.inventory.ItemStack;
17
18 public class AdminDestroy extends BlockListener implements CommandExecutor {
19
20
21
22 Set<String> destroyers = new HashSet<String>();
23
24 @Override
25 public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
26 if (!sender.isOp())
27 return false;
28 if (! (sender instanceof Player) )
29 return false;
30 Player p = (Player) sender;
31 if (destroyers.contains(p.getName())) {
32 destroyers.remove( p.getName() );
33 p.sendMessage("Admindestroy disabled");
34 } else {
35 destroyers.add( p.getName() );
36 p.sendMessage("Admindestroy enabled - go dig some tunnels (with a feather)");
37 }
38
39
40 return true;
41 }
42
43
44 protected int getThrowBlock(Block b) {
45 switch (b.getTypeId()) {
46 case 1:
47 return 4;
48 case 2:
49 case 3:
50 return 0; //instabreak already throws dirt
51 case 16:
52 return 264;
53 default:
54 return b.getTypeId(); //don't throw any others
55 }
56 }
57
58 public void onBlockDamage(BlockDamageEvent event) {
59 Player p = event.getPlayer();
60
61 if (! p.isOp() )
62 return;
63
64 if ( destroyers.contains(p.getName()) ) {
65 if (p.getItemInHand().getType() == Material.FEATHER) {
66 event.setInstaBreak(true);
67
68 Block b = event.getBlock();
69 int blockid = getThrowBlock(b);
70
71 if (blockid != 0) {
72 ItemStack stack = new ItemStack(b.getTypeId(), 1);
73 b.getWorld().dropItem(b.getLocation(), stack);
74 }
75
76 }
77 }
78
79 }
80
81 public class PlayerQuitListener extends PlayerListener {
82 @Override
83 public void onPlayerQuit(PlayerQuitEvent event) {
84 Player p = event.getPlayer();
85
86 if (destroyers.contains(p.getName())) {
87 destroyers.remove( p.getName() );
88 }
89 }
90 }
91
92 }

  ViewVC Help
Powered by ViewVC 1.1.20