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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1384 - (show annotations) (download)
Sun Apr 24 10:08:10 2011 UTC (13 years ago) by torben
File size: 2343 byte(s)
Diamond ore drops diamond
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.Material;
8 import org.bukkit.block.Block;
9 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 import org.bukkit.inventory.ItemStack;
18
19 public class AdminDestroy extends BlockListener implements CommandExecutor {
20
21
22 Random rand = new Random();
23
24 Set<String> destroyers = new HashSet<String>();
25
26 @Override
27 public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
28 if (!sender.isOp())
29 return false;
30 if (! (sender instanceof Player) )
31 return false;
32
33 Player p = (Player) sender;
34 if (destroyers.contains(p.getName())) {
35 destroyers.remove( p.getName() );
36 p.sendMessage("Admindestroy disabled");
37 } else {
38 destroyers.add( p.getName() );
39 p.sendMessage("Admindestroy enabled - go dig some tunnels (with a feather)");
40 }
41
42
43 return true;
44 }
45
46
47 protected int getDropBlock(Block b) {
48 switch (b.getTypeId()) {
49 case 1: //stone drops cobblestone
50 return 4;
51 case 2:
52 case 3:
53 return 0; //instabreak already drops dirt
54 case 16: //coal ore drops coal
55 return 263;
56 case 56: //diamond ore drops diamond
57 return 264;
58 default:
59 return b.getTypeId(); //don't throw any others
60 }
61 }
62
63 public void onBlockDamage(BlockDamageEvent event) {
64 Player p = event.getPlayer();
65
66 if (! p.isOp() )
67 return;
68
69 if ( destroyers.contains(p.getName()) ) {
70 if (p.getItemInHand().getType() == Material.FEATHER) {
71 event.setInstaBreak(true);
72
73 Block b = event.getBlock();
74 int blockid = getDropBlock(b);
75
76 if (blockid != 0) {
77 ItemStack stack = new ItemStack(blockid, 1);
78 b.getWorld().dropItemNaturally(b.getLocation(), stack);
79 }
80
81 }
82 }
83
84 }
85
86 public class PlayerQuitListener extends PlayerListener {
87 @Override
88 public void onPlayerQuit(PlayerQuitEvent event) {
89 Player p = event.getPlayer();
90
91 if (destroyers.contains(p.getName())) {
92 destroyers.remove( p.getName() );
93 }
94 }
95 }
96
97 }

  ViewVC Help
Powered by ViewVC 1.1.20