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

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

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

miscJava/bukkit-minecraft-plugins/HoerupUtils/src/dk/thoerup/bukkit/hoeruputils/AdminDestroy.java revision 1378 by torben, Sat Apr 23 13:14:39 2011 UTC miscJava/bukkit-minecraft-plugins/HoerupUtils/src/dk/thoerup/bukkit/hoeruputils/deprecated/PowerMiner.java revision 1653 by torben, Fri Dec 9 17:06:52 2011 UTC
# Line 2  package dk.thoerup.bukkit.hoeruputils; Line 2  package dk.thoerup.bukkit.hoeruputils;
2    
3  import java.util.HashSet;  import java.util.HashSet;
4  import java.util.Set;  import java.util.Set;
5    import java.util.Random;
6    
7  import org.bukkit.Material;  import org.bukkit.Material;
8    import org.bukkit.block.Block;
9  import org.bukkit.command.Command;  import org.bukkit.command.Command;
10  import org.bukkit.command.CommandExecutor;  import org.bukkit.command.CommandExecutor;
11  import org.bukkit.command.CommandSender;  import org.bukkit.command.CommandSender;
# Line 12  import org.bukkit.event.block.BlockDamag Line 14  import org.bukkit.event.block.BlockDamag
14  import org.bukkit.event.block.BlockListener;  import org.bukkit.event.block.BlockListener;
15  import org.bukkit.event.player.PlayerListener;  import org.bukkit.event.player.PlayerListener;
16  import org.bukkit.event.player.PlayerQuitEvent;  import org.bukkit.event.player.PlayerQuitEvent;
17    import org.bukkit.inventory.ItemStack;
18    
19  public class AdminDestroy extends BlockListener implements CommandExecutor {  public class PowerMiner extends BlockListener implements CommandExecutor {
20                    
           
21                    
22          Set<String> destroyers = new HashSet<String>();          Random rand = new Random();
23            
24            Set<String> miners = new HashSet<String>();
25    
26          @Override          @Override
27          public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {          public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
28                  if (!sender.isOp())  /*              if (!sender.isOp()) {
29                            sender.sendMessage("Only ops can use powerminer");
30                          return false;                          return false;
31                  if (! (sender instanceof Player) )                  }*/
32                            
33                    if (! (sender instanceof Player) ) {
34                            sender.sendMessage("Only in-game players can use powerminer");
35                          return false;                          return false;
36                    }
37                            
38                    
39                  Player p  = (Player) sender;                  Player p  = (Player) sender;
40                  if (destroyers.contains(p.getName())) {  
41                          destroyers.remove( p.getName() );  
42                          p.sendMessage("Admindestroy disabled");                  if ( ! p.hasPermission("hoeruputils.powerminer") ) {
43                            sender.sendMessage("You don't have permissions to use powerminer!");
44                            return false;
45                    }
46    
47                    if (miners.contains(p.getName())) {
48                            miners.remove( p.getName() );
49                            p.sendMessage("PowerMiner disabled");
50                  } else {                  } else {
51                          destroyers.add( p.getName() );                          miners.add( p.getName() );
52                          p.sendMessage("Admindestroy enabled - go dig some tunnels (with a feather)");                          p.sendMessage("PowerMiner enabled - go dig some tunnels (with a feather)");
53                  }                  }
54                                    
55                                    
56                  return true;                  return true;
57          }          }
58    
59            
60            protected ItemStack getDropItems(Block b) {
61                    switch (b.getTypeId()) {
62                    case 1: //stone drops cobblestone
63                            return new ItemStack(4,1);
64                    case 2:
65                    case 3:                
66                            return null; //instabreak already drops dirt
67                    case 5:
68                            return null; //instabreak drops wooden plank
69                    case 12:
70                            return null; //instabreak drops sand
71                    case 13:
72                            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                    case 18:
78                            return (rand.nextInt(16) == 0) ? new ItemStack(6,1,(short)0, b.getData() ) : null;  //leaves has 6.25% chance of dropping sapplings
79                    case 21: //lapis lazuli
80                            int count = rand.nextInt(5) + 4;
81                            return new ItemStack(351,count,(short)0, (byte)4);
82                    case 27:
83                    case 28:
84                            return null; //instabreak drops powered and detector rails
85                    case 50:
86                            return null; //instabreak drops torches
87                    case 53:
88                            return null; //instabreak drops wood for wooden stairs
89                    case 54:
90                            return null; //instabreak drops chests
91                    case 56: //diamond ore drops diamond
92                            return new ItemStack(264,1);
93                    case 58:
94                            return null; //instabreak drops craft tables
95                    case 60:
96                            return null; //instabreak drops dirt for farmland blocks
97                    case 64: //instabreak drops wooden doors
98                    case 65: //instabreak drops ladders
99                    case 66:
100                            return null; //instabreak drops rails
101                    case 71: //instabreak drops iron doors
102                            return null;
103                    case 73:
104                    case 74:
105                            return new ItemStack(331,4); //redstone ore (both glowing and non-glowing) drops 4 redstone
106                    case 75:
107                    case 76:
108                            return null; //instabreak drops redstone torches (both on and off)
109                    case 82:
110                            return null; //instabreak drops clay from clayblock
111                    case 88:
112                            return null; //instabreak drops soul sand
113                    case 93: //instabreak drops repeater both on and off
114                    case 94:
115                            return null;
116                    default:
117                            return new ItemStack(b.getTypeId(), 1,(short)0, b.getData());
118                    }
119            }
120                    
121          public void onBlockDamage(BlockDamageEvent event) {          public void onBlockDamage(BlockDamageEvent event) {
122                  Player p = event.getPlayer();                  Player p = event.getPlayer();
123                                    
124                  if (! p.isOp() )                  if (p.getItemInHand().getType() == Material.FEATHER) {
125                          return;                          if ( miners.contains(p.getName()) ) {                  
126                                                    
127                  if ( destroyers.contains(p.getName()) ) {                                  Block b = event.getBlock();
128                          if (p.getItemInHand().getType() == Material.FEATHER) {                                  
129                                    if (b.getTypeId() == 7) //don't remove bedrock
130                                            return;
131                                    if (b.getTypeId() == 90) //don't break portal
132                                            return;
133                                    
134                                  event.setInstaBreak(true);                                  event.setInstaBreak(true);
135                                    
136    
137                                    ItemStack items = getDropItems(b);
138                                    
139                                    
140                                    if (items != null) {                            
141                                            b.getWorld().dropItemNaturally(b.getLocation(), items);
142                                    }
143                                    
144                          }                          }
145                  }                  }
146                                    
147          }          }
148            public PlayerQuitListener getPlayerQuitListener() {
149                    return new PlayerQuitListener();
150            }
151            
152                    
153          public class PlayerQuitListener extends PlayerListener {          public class PlayerQuitListener extends PlayerListener {
154                  @Override                  @Override
155                  public void onPlayerQuit(PlayerQuitEvent event) {                  public void onPlayerQuit(PlayerQuitEvent event) {
156                          Player p = event.getPlayer();                          Player p = event.getPlayer();
157                                                    
158                          if (destroyers.contains(p.getName())) {                          if (miners.contains(p.getName())) {
159                                  destroyers.remove( p.getName() );                                  miners.remove( p.getName() );
160                          }                          }
161                  }                  }
162          }          }

Legend:
Removed from v.1378  
changed lines
  Added in v.1653

  ViewVC Help
Powered by ViewVC 1.1.20