/[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 1388 - (hide annotations) (download)
Mon Apr 25 07:54:28 2011 UTC (13 years, 1 month ago) by torben
File size: 2576 byte(s)
register onquit for powerminer
1 torben 1378 package dk.thoerup.bukkit.hoeruputils;
2    
3     import java.util.HashSet;
4     import java.util.Set;
5 torben 1384 import java.util.Random;
6 torben 1378
7     import org.bukkit.Material;
8 torben 1379 import org.bukkit.block.Block;
9 torben 1378 import org.bukkit.command.Command;
10     import org.bukkit.command.CommandExecutor;
11     import org.bukkit.command.CommandSender;
12     import org.bukkit.entity.Player;
13     import org.bukkit.event.block.BlockDamageEvent;
14     import org.bukkit.event.block.BlockListener;
15     import org.bukkit.event.player.PlayerListener;
16     import org.bukkit.event.player.PlayerQuitEvent;
17 torben 1379 import org.bukkit.inventory.ItemStack;
18 torben 1378
19 torben 1385 public class PowerMiner extends BlockListener implements CommandExecutor {
20 torben 1378
21    
22 torben 1384 Random rand = new Random();
23    
24 torben 1385 Set<String> miners = new HashSet<String>();
25 torben 1378
26     @Override
27     public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
28     if (!sender.isOp())
29     return false;
30     if (! (sender instanceof Player) )
31     return false;
32 torben 1381
33 torben 1378 Player p = (Player) sender;
34 torben 1385 if (miners.contains(p.getName())) {
35     miners.remove( p.getName() );
36     p.sendMessage("PowerMiner disabled");
37 torben 1378 } else {
38 torben 1385 miners.add( p.getName() );
39     p.sendMessage("PowerMiner enabled - go dig some tunnels (with a feather)");
40 torben 1378 }
41    
42    
43     return true;
44     }
45 torben 1384
46 torben 1378
47 torben 1387 protected ItemStack getDropItems(Block b) {
48 torben 1379 switch (b.getTypeId()) {
49 torben 1384 case 1: //stone drops cobblestone
50 torben 1387 return new ItemStack(4,1);
51 torben 1379 case 2:
52     case 3:
53 torben 1387 return null; //instabreak already drops dirt
54 torben 1386 case 13:
55 torben 1387 return null; //don't drop gravel
56    
57 torben 1384 case 16: //coal ore drops coal
58 torben 1387 return new ItemStack(263,1);
59 torben 1384 case 56: //diamond ore drops diamond
60 torben 1387 return new ItemStack(264,1);
61     case 73:
62     case 74:
63     return new ItemStack(331,4); //redstone ore (both glowing and non-glowing) drops 4 redstone
64 torben 1379 default:
65 torben 1387 return new ItemStack(b.getTypeId(), 1);
66 torben 1379 }
67     }
68    
69 torben 1378 public void onBlockDamage(BlockDamageEvent event) {
70     Player p = event.getPlayer();
71    
72     if (! p.isOp() )
73     return;
74    
75 torben 1385 if ( miners.contains(p.getName()) ) {
76 torben 1378 if (p.getItemInHand().getType() == Material.FEATHER) {
77     event.setInstaBreak(true);
78 torben 1379
79     Block b = event.getBlock();
80 torben 1387 ItemStack items = getDropItems(b);
81 torben 1379
82 torben 1387 if (items != null) {
83     b.getWorld().dropItemNaturally(b.getLocation(), items);
84 torben 1379 }
85    
86 torben 1378 }
87     }
88    
89     }
90 torben 1388 public PlayerQuitListener getPlayerQuitListener() {
91     return new PlayerQuitListener();
92     }
93 torben 1378
94 torben 1388
95 torben 1378 public class PlayerQuitListener extends PlayerListener {
96     @Override
97     public void onPlayerQuit(PlayerQuitEvent event) {
98     Player p = event.getPlayer();
99    
100 torben 1385 if (miners.contains(p.getName())) {
101     miners.remove( p.getName() );
102 torben 1378 }
103     }
104     }
105    
106     }

  ViewVC Help
Powered by ViewVC 1.1.20