/[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 1378 by torben, Sat Apr 23 13:14:39 2011 UTC miscJava/bukkit-minecraft-plugins/HoerupUtils/src/dk/thoerup/bukkit/hoeruputils/PowerMiner.java revision 1387 by torben, Sun Apr 24 11:49:42 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) {
# Line 25  public class AdminDestroy extends BlockL Line 29  public class AdminDestroy extends BlockL
29                          return false;                          return false;
30                  if (! (sender instanceof Player) )                  if (! (sender instanceof Player) )
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) {
48                    switch (b.getTypeId()) {
49                    case 1: //stone drops cobblestone
50                            return new ItemStack(4,1);
51                    case 2:
52                    case 3:                
53                            return null; //instabreak already drops dirt
54                    case 13:
55                            return null; //don't drop gravel
56                    
57                    case 16: //coal ore drops coal
58                            return new ItemStack(263,1);    
59                    case 56: //diamond ore drops diamond
60                            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                    default:
65                            return new ItemStack(b.getTypeId(), 1);
66                    }
67            }
68                    
69          public void onBlockDamage(BlockDamageEvent event) {          public void onBlockDamage(BlockDamageEvent event) {
70                  Player p = event.getPlayer();                  Player p = event.getPlayer();
# Line 44  public class AdminDestroy extends BlockL Line 72  public class AdminDestroy extends BlockL
72                  if (! p.isOp() )                  if (! p.isOp() )
73                          return;                          return;
74                                    
75                  if ( destroyers.contains(p.getName()) ) {                  if ( miners.contains(p.getName()) ) {
76                          if (p.getItemInHand().getType() == Material.FEATHER) {                          if (p.getItemInHand().getType() == Material.FEATHER) {
77                                  event.setInstaBreak(true);                                  event.setInstaBreak(true);
78                                    
79                                    Block b = event.getBlock();
80                                    ItemStack items = getDropItems(b);
81                                    
82                                    if (items != null) {                            
83                                            b.getWorld().dropItemNaturally(b.getLocation(), items);
84                                    }
85                                    
86                          }                          }
87                  }                  }
88                                    
# Line 57  public class AdminDestroy extends BlockL Line 93  public class AdminDestroy extends BlockL
93                  public void onPlayerQuit(PlayerQuitEvent event) {                  public void onPlayerQuit(PlayerQuitEvent event) {
94                          Player p = event.getPlayer();                          Player p = event.getPlayer();
95                                                    
96                          if (destroyers.contains(p.getName())) {                          if (miners.contains(p.getName())) {
97                                  destroyers.remove( p.getName() );                                  miners.remove( p.getName() );
98                          }                          }
99                  }                  }
100          }          }

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

  ViewVC Help
Powered by ViewVC 1.1.20