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

Annotation of /miscJava/bukkit-minecraft-plugins/HoerupUtils/src/main/java/dk/thoerup/bukkit/hoeruputils/DiverCommand.java

Parent Directory Parent Directory | Revision Log Revision Log


Revision 3201 - (hide annotations) (download)
Wed May 31 08:56:00 2017 UTC (7 years ago) by torben
File size: 2953 byte(s)
Code cleanup(still doesn't compile)
1 torben 1671 package dk.thoerup.bukkit.hoeruputils;
2    
3    
4 torben 3201 import java.util.HashMap;
5    
6     import org.bukkit.ChatColor;
7 torben 2429 import org.bukkit.Material;
8 torben 1671 import org.bukkit.command.Command;
9     import org.bukkit.command.CommandExecutor;
10     import org.bukkit.command.CommandSender;
11     import org.bukkit.entity.Player;
12 torben 3201 import org.bukkit.event.EventHandler;
13 torben 1680 import org.bukkit.event.Listener;
14 torben 1671 import org.bukkit.event.player.PlayerQuitEvent;
15     import org.bukkit.inventory.Inventory;
16     import org.bukkit.inventory.ItemStack;
17 torben 3201 import org.bukkit.plugin.Plugin;
18 torben 1671 import org.bukkit.scheduler.BukkitScheduler;
19    
20 torben 1680 public class DiverCommand implements CommandExecutor, Listener {
21 torben 1671
22     final static int LEATHER_COUNT = 3;
23    
24     final static int TICK_COUNT = 20;
25    
26     HashMap<String,Integer> divers = new HashMap<String,Integer>();
27    
28    
29     Plugin plugin;
30    
31     BukkitScheduler scheduler;
32     public DiverCommand(Plugin plugin) {
33     this.plugin = plugin;
34     scheduler = plugin.getServer().getScheduler();
35     }
36    
37     @Override
38     public boolean onCommand(final CommandSender sender, Command command, String label, String[] args) {
39    
40     if (!(sender instanceof Player)) {
41     return false;
42     }
43     final Player player = (Player) sender;
44    
45     if (divers.containsKey( sender.getName() )) {
46     //disableDiver( player.getName() );
47     //player.sendMessage(ChatColor.GREEN + "Diver disabled - you're now gasping for air");;
48     player.sendMessage(ChatColor.GREEN + "Diver: - you already have a airbladder");
49     } else {
50     Inventory inv = player.getInventory();
51 torben 2429 if (inv.contains(Material.LEATHER, LEATHER_COUNT) ) {
52 torben 1671 RefillAir r = new RefillAir(player);
53     int taskid = scheduler.scheduleSyncRepeatingTask(plugin, r, (5*20), (5*20) );
54     divers.put(player.getName(), taskid);
55     player.sendMessage(ChatColor.GREEN + "Diver: you created a airbladder from " + LEATHER_COUNT + " leather - go for a swim");
56    
57 torben 2429 inv.removeItem( new ItemStack(Material.LEATHER, LEATHER_COUNT) );
58 torben 1671 } else {
59     player.sendMessage(ChatColor.GREEN + "Diver: you need " + LEATHER_COUNT + " leather to create a airbladder");
60     }
61    
62     }
63    
64     return true;
65     }
66    
67    
68     public void disableDiver(String name) {
69     int taskid = divers.get( name );
70     scheduler.cancelTask( taskid );
71     divers.remove( name );
72     }
73    
74     class RefillAir implements Runnable {
75    
76     int ticks = TICK_COUNT;
77    
78     Player player;
79     public RefillAir(Player player) {
80     this.player = player;
81     }
82    
83     public void run() {
84     int maxair = player.getMaximumAir();
85     if (player.getRemainingAir() < (maxair/2)) {
86     player.setRemainingAir( maxair);
87    
88     ticks --;
89     if (ticks == 1) {
90     player.sendMessage(ChatColor.GREEN + "Diver: there's not much air left in the air-bladder");
91     }
92     if (ticks <= 0) {
93     disableDiver( player.getName() );
94     player.sendMessage(ChatColor.GREEN + "Diver: your air-bladder are empty!");
95     }
96     }
97     }
98    
99     }
100    
101 torben 1680 @EventHandler
102     public void onPlayerQuit(PlayerQuitEvent e) {
103     Player p = e.getPlayer();
104 torben 1671
105 torben 1680 if (divers.containsKey( p.getName() )) {
106     disableDiver( p.getName() );
107     }
108 torben 1671
109 torben 1680 }
110 torben 1671 }

  ViewVC Help
Powered by ViewVC 1.1.20