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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1590 - (hide annotations) (download)
Tue Aug 16 16:04:01 2011 UTC (12 years, 9 months ago) by torben
Original Path: miscJava/bukkit-minecraft-plugins/HoerupUtils/src/dk/thoerup/bukkit/hoeruputils/PowerMiner.java
File size: 4238 byte(s)
added /wall commando og fixet bug in (power/super)miner
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 torben 1586 /* if (!sender.isOp()) {
29 torben 1471 sender.sendMessage("Only ops can use powerminer");
30 torben 1378 return false;
31 torben 1586 }*/
32 torben 1471
33     if (! (sender instanceof Player) ) {
34     sender.sendMessage("Only in-game players can use powerminer");
35 torben 1378 return false;
36 torben 1471 }
37    
38 torben 1381
39 torben 1378 Player p = (Player) sender;
40 torben 1586
41    
42     if ( ! p.hasPermission("hoeruputils.powerminer") ) {
43     sender.sendMessage("You don't have permissions to use powerminer!");
44     return false;
45     }
46    
47 torben 1385 if (miners.contains(p.getName())) {
48     miners.remove( p.getName() );
49     p.sendMessage("PowerMiner disabled");
50 torben 1378 } else {
51 torben 1385 miners.add( p.getName() );
52     p.sendMessage("PowerMiner enabled - go dig some tunnels (with a feather)");
53 torben 1378 }
54    
55    
56     return true;
57     }
58 torben 1384
59 torben 1378
60 torben 1387 protected ItemStack getDropItems(Block b) {
61 torben 1379 switch (b.getTypeId()) {
62 torben 1384 case 1: //stone drops cobblestone
63 torben 1387 return new ItemStack(4,1);
64 torben 1379 case 2:
65     case 3:
66 torben 1387 return null; //instabreak already drops dirt
67 torben 1490 case 5:
68     return null; //instabreak drops wooden plank
69 torben 1389 case 12:
70     return null; //instabreak drops sand
71 torben 1386 case 13:
72 torben 1389 return null; //don't drop gravel
73     case 16: //coal ore drops coal
74     return new ItemStack(263,1);
75     case 17:
76     return null; //instabreak drops wood
77 torben 1390 case 18:
78 torben 1392 return (rand.nextInt(16) == 0) ? new ItemStack(6,1,(short)0, b.getData() ) : null; //leaves has 6.25% chance of dropping sapplings
79 torben 1390 case 21: //lapis lazuli
80     int count = rand.nextInt(5) + 4;
81     return new ItemStack(351,count,(short)0, (byte)4);
82 torben 1456 case 27:
83     case 28:
84     return null; //instabreak drops powered and detector rails
85 torben 1491 case 50:
86     return null; //instabreak drops torches
87 torben 1493 case 53:
88     return null; //instabreak drops wood for wooden stairs
89 torben 1477 case 54:
90     return null; //instabreak drops chests
91 torben 1384 case 56: //diamond ore drops diamond
92 torben 1387 return new ItemStack(264,1);
93 torben 1477 case 58:
94     return null; //instabreak drops craft tables
95     case 64: //instabreak drops wooden doors
96 torben 1491 case 65: //instabreak drops ladders
97 torben 1456 case 66:
98     return null; //instabreak drops rails
99 torben 1477 case 71: //instabreak drops iron doors
100     return null;
101 torben 1387 case 73:
102     case 74:
103 torben 1456 return new ItemStack(331,4); //redstone ore (both glowing and non-glowing) drops 4 redstone
104 torben 1491 case 75:
105     case 76:
106     return null; //instabreak drops redstone torches (both on and off)
107 torben 1456 case 82:
108     return null; //instabreak drops clay from clayblock
109 torben 1489 case 88:
110     return null; //instabreak drops soul sand
111 torben 1491 case 93: //instabreak drops repeater both on and off
112     case 94:
113     return null;
114 torben 1379 default:
115 torben 1457 return new ItemStack(b.getTypeId(), 1,(short)0, b.getData());
116 torben 1379 }
117     }
118    
119 torben 1378 public void onBlockDamage(BlockDamageEvent event) {
120     Player p = event.getPlayer();
121    
122 torben 1469 if (p.getItemInHand().getType() == Material.FEATHER) {
123     if ( miners.contains(p.getName()) ) {
124 torben 1390
125     Block b = event.getBlock();
126    
127     if (b.getTypeId() == 7) //don't remove bedrock
128     return;
129 torben 1391 if (b.getTypeId() == 90) //don't break portal
130     return;
131 torben 1390
132 torben 1378 event.setInstaBreak(true);
133 torben 1379
134 torben 1390
135 torben 1387 ItemStack items = getDropItems(b);
136 torben 1379
137 torben 1390
138 torben 1387 if (items != null) {
139     b.getWorld().dropItemNaturally(b.getLocation(), items);
140 torben 1379 }
141    
142 torben 1378 }
143     }
144    
145     }
146 torben 1388 public PlayerQuitListener getPlayerQuitListener() {
147     return new PlayerQuitListener();
148     }
149 torben 1378
150 torben 1388
151 torben 1378 public class PlayerQuitListener extends PlayerListener {
152     @Override
153     public void onPlayerQuit(PlayerQuitEvent event) {
154     Player p = event.getPlayer();
155    
156 torben 1385 if (miners.contains(p.getName())) {
157     miners.remove( p.getName() );
158 torben 1378 }
159     }
160     }
161    
162     }

  ViewVC Help
Powered by ViewVC 1.1.20