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

Contents of /miscJava/bukkit-minecraft-plugins/HoerupUtils/src/dk/thoerup/bukkit/hoeruputils/SuperMiner.java

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1586 - (show annotations) (download)
Sun Aug 7 20:25:13 2011 UTC (12 years, 9 months ago) by torben
File size: 3003 byte(s)
switch to permissions instead of isOp() and add a permissions controlled /tp command
1 package dk.thoerup.bukkit.hoeruputils;
2
3 import java.util.HashSet;
4 import java.util.Set;
5 import java.util.Random;
6
7 import org.bukkit.Location;
8 import org.bukkit.Material;
9 import org.bukkit.World;
10 import org.bukkit.block.Block;
11 import org.bukkit.command.Command;
12 import org.bukkit.command.CommandExecutor;
13 import org.bukkit.command.CommandSender;
14 import org.bukkit.entity.Player;
15 import org.bukkit.event.block.BlockDamageEvent;
16 import org.bukkit.event.block.BlockListener;
17 import org.bukkit.event.player.PlayerListener;
18 import org.bukkit.event.player.PlayerQuitEvent;
19
20 public class SuperMiner extends BlockListener implements CommandExecutor {
21
22
23 Random rand = new Random();
24
25 Set<String> miners = new HashSet<String>();
26
27 final static int radius = 5;
28
29 @Override
30 public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
31
32 if (! (sender instanceof Player) ) {
33 return false;
34 }
35
36 /* if (!sender.isOp()) {
37 sender.sendMessage("Only ops can use superminer");
38 return true;
39 }*/
40
41
42 Player p = (Player) sender;
43
44 if (! p.hasPermission("hoeruputils.superminer") ) {
45 p.sendMessage("You don't have permissions to use superminer");
46 return true;
47 }
48
49 if (miners.contains(p.getName())) {
50 miners.remove( p.getName() );
51 p.sendMessage("SuperMiner disabled");
52 } else {
53 miners.add( p.getName() );
54 p.sendMessage("SuperMiner enabled - go dig some tunnels (with a fish)");
55 }
56
57
58 return true;
59 }
60
61
62
63 public void onBlockDamage(BlockDamageEvent event) {
64 Player p = event.getPlayer();
65
66 if (! p.isOp() )
67 return;
68
69
70 if (p.getItemInHand().getType() == Material.RAW_FISH) {
71 if ( miners.contains(p.getName()) ) {
72
73 Block b = event.getBlock();
74
75 superMiner(p, p.getWorld(), p.getLocation() );
76 }
77 }
78
79 }
80
81
82 public void superMiner(Player player, World world, Location location) {
83
84
85 Location l = location;
86
87 for (int x=(radius*-1); x<=radius; x++) {
88 for (int y=0; y<=radius; y++) {
89 for (int z=(radius*-1); z<=radius; z++) {
90
91 Block b = world.getBlockAt( l.getBlockX()+x, l.getBlockY()+y, l.getBlockZ()+z);
92
93 int id = b.getTypeId();
94
95 if (id == 1 || id == 2 || id == 3 || id == 4 || id == 8 || id == 9 || id == 10 || id == 11 || id == 13 || id == 87) {
96 b.setTypeId( 0 );
97 }
98 }
99
100
101 }
102 }
103
104 }
105
106
107
108 public PlayerQuitListener getPlayerQuitListener() {
109 return new PlayerQuitListener();
110 }
111
112
113 public class PlayerQuitListener extends PlayerListener {
114 @Override
115 public void onPlayerQuit(PlayerQuitEvent event) {
116 Player p = event.getPlayer();
117
118 if (miners.contains(p.getName())) {
119 miners.remove( p.getName() );
120 }
121 }
122 }
123
124 }

  ViewVC Help
Powered by ViewVC 1.1.20