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

Annotation of /miscJava/bukkit-minecraft-plugins/HoerupUtils/src/dk/thoerup/bukkit/hoeruputils/PowerMiner.java

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1379 - (hide annotations) (download)
Sat Apr 23 13:48:35 2011 UTC (13 years, 1 month ago) by torben
Original Path: miscJava/bukkit-minecraft-plugins/HoerupUtils/src/dk/thoerup/bukkit/hoeruputils/AdminDestroy.java
File size: 2185 byte(s)
Correct some of the blocks dropped
1 torben 1378 package dk.thoerup.bukkit.hoeruputils;
2    
3     import java.util.HashSet;
4     import java.util.Set;
5    
6     import org.bukkit.Material;
7 torben 1379 import org.bukkit.block.Block;
8 torben 1378 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 torben 1379 import org.bukkit.inventory.ItemStack;
17 torben 1378
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 torben 1379
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 torben 1378 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 torben 1379
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 torben 1378 }
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