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

  ViewVC Help
Powered by ViewVC 1.1.20