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

Diff of /miscJava/bukkit-minecraft-plugins/HoerupUtils/src/dk/thoerup/bukkit/hoeruputils/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 1383 by torben, Sat Apr 23 14:40:49 2011 UTC miscJava/bukkit-minecraft-plugins/HoerupUtils/src/dk/thoerup/bukkit/hoeruputils/PowerMiner.java revision 1457 by torben, Sat May 7 14:48:03 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;  import org.bukkit.block.Block;
# Line 15  import org.bukkit.event.player.PlayerLis Line 16  import org.bukkit.event.player.PlayerLis
16  import org.bukkit.event.player.PlayerQuitEvent;  import org.bukkit.event.player.PlayerQuitEvent;
17  import org.bukkit.inventory.ItemStack;  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) {
# Line 29  public class AdminDestroy extends BlockL Line 31  public class AdminDestroy extends BlockL
31                          return false;                          return false;
32                                    
33                  Player p  = (Player) sender;                  Player p  = (Player) sender;
34                  if (destroyers.contains(p.getName())) {                  if (miners.contains(p.getName())) {
35                          destroyers.remove( p.getName() );                          miners.remove( p.getName() );
36                          p.sendMessage("Admindestroy disabled");                          p.sendMessage("PowerMiner disabled");
37                  } else {                  } else {
38                          destroyers.add( p.getName() );                          miners.add( p.getName() );
39                          p.sendMessage("Admindestroy enabled - go dig some tunnels (with a feather)");                          p.sendMessage("PowerMiner enabled - go dig some tunnels (with a feather)");
40                  }                  }
41                                    
42                                    
43                  return true;                  return true;
44          }          }
45    
46                    
47                    protected ItemStack getDropItems(Block b) {
         protected int getThrowBlock(Block b) {  
48                  switch (b.getTypeId()) {                  switch (b.getTypeId()) {
49                  case 1:                  case 1: //stone drops cobblestone
50                          return 4;                          return new ItemStack(4,1);
51                  case 2:                  case 2:
52                  case 3:                                  case 3:                
53                          return 0; //instabreak already throws dirt                                        return null; //instabreak already drops dirt
54                  case 16:                  case 12:
55                          return 263;                                      return null; //instabreak drops sand
56                    case 13:
57                            return null; //don't drop gravel                
58                    case 16: //coal ore drops coal                  
59                            return new ItemStack(263,1);
60                    case 17:
61                            return null; //instabreak drops wood
62                    case 18:
63                            return (rand.nextInt(16) == 0) ? new ItemStack(6,1,(short)0, b.getData() ) : null;  //leaves has 6.25% chance of dropping sapplings
64                    case 21: //lapis lazuli
65                            int count = rand.nextInt(5) + 4;
66                            return new ItemStack(351,count,(short)0, (byte)4);
67                    case 27:
68                    case 28:
69                            return null; //instabreak drops powered and detector rails
70                    case 56: //diamond ore drops diamond
71                            return new ItemStack(264,1);
72                    case 66:
73                            return null; //instabreak drops rails
74                    case 73:
75                    case 74:
76                            return new ItemStack(331,4); //redstone ore (both glowing and non-glowing) drops 4 redstone
77                    case 82:
78                            return null; //instabreak drops clay from clayblock
79                  default:                  default:
80                          return b.getTypeId(); //don't throw any others                          return new ItemStack(b.getTypeId(), 1,(short)0, b.getData());
81                  }                  }
82          }          }
83                    
# Line 62  public class AdminDestroy extends BlockL Line 87  public class AdminDestroy extends BlockL
87                  if (! p.isOp() )                  if (! p.isOp() )
88                          return;                          return;
89                                    
90                  if ( destroyers.contains(p.getName()) ) {                  if ( miners.contains(p.getName()) ) {
91                          if (p.getItemInHand().getType() == Material.FEATHER) {                          if (p.getItemInHand().getType() == Material.FEATHER) {
                                 event.setInstaBreak(true);  
92                                                                    
93                                  Block b = event.getBlock();                                  Block b = event.getBlock();
                                 int blockid = getThrowBlock(b);  
94                                                                    
95                                  if (blockid != 0) {                                                              if (b.getTypeId() == 7) //don't remove bedrock
96                                          ItemStack stack = new ItemStack(blockid, 1);                                          return;
97                                          b.getWorld().dropItemNaturally(b.getLocation(), stack);                                  if (b.getTypeId() == 90) //don't break portal
98                                            return;
99                                    
100                                    event.setInstaBreak(true);
101                                    
102    
103                                    ItemStack items = getDropItems(b);
104                                    
105                                    
106                                    if (items != null) {                            
107                                            b.getWorld().dropItemNaturally(b.getLocation(), items);
108                                  }                                  }
109                                                                    
110                          }                          }
111                  }                  }
112                                    
113          }          }
114            public PlayerQuitListener getPlayerQuitListener() {
115                    return new PlayerQuitListener();
116            }
117            
118                    
119          public class PlayerQuitListener extends PlayerListener {          public class PlayerQuitListener extends PlayerListener {
120                  @Override                  @Override
121                  public void onPlayerQuit(PlayerQuitEvent event) {                  public void onPlayerQuit(PlayerQuitEvent event) {
122                          Player p = event.getPlayer();                          Player p = event.getPlayer();
123                                                    
124                          if (destroyers.contains(p.getName())) {                          if (miners.contains(p.getName())) {
125                                  destroyers.remove( p.getName() );                                  miners.remove( p.getName() );
126                          }                          }
127                  }                  }
128          }          }

Legend:
Removed from v.1383  
changed lines
  Added in v.1457

  ViewVC Help
Powered by ViewVC 1.1.20