]>
git.defcon.no Git - YAVote/blob - src/no/defcon/yavote/YAVote.java
f12edb3c28b10f92a1de991585c5cbea303dc7ce
1 package no
.defcon
.yavote
;
5 import org
.bukkit
.ChatColor
;
6 import org
.bukkit
.command
.Command
;
7 import org
.bukkit
.command
.CommandSender
;
8 import org
.bukkit
.entity
.Player
;
9 import org
.bukkit
.plugin
.java
.JavaPlugin
;
11 import org
.bukkit
.plugin
.PluginLogger
;
13 public class YAVote
extends JavaPlugin
{
14 public PluginLogger logger
;
15 private Votemanager manager
;
17 public void onDisable() {
21 public void onEnable() {
22 logger
= new PluginLogger(this);
23 manager
= new Votemanager(this);
25 // Set up default values for all missing config variables.
26 if ( ! getConfig().isSet("vote.timeoutSeconds") )
27 getConfig().set("vote.timeoutSeconds", 15*60L);
29 if ( ! getConfig().isSet("vote.weather.requiredPercent") )
30 getConfig().set("vote.weather.requiredPercent", 33);
32 if ( ! getConfig().isSet("vote.time.requiredPercent") )
33 getConfig().set("vote.time.requiredPercent", 33);
35 if ( ! getConfig().isSet("vote.time.dayStart") )
36 getConfig().set("vote.time.dayStart", 23500);
38 if ( ! getConfig().isSet("vote.time.nightStart") )
39 getConfig().set("vote.time.nightStart", 12500);
41 // Create config plugin data-dir if missing...
42 if(!getDataFolder().exists())
44 logger
.info("Creating configuration directory");
45 getDataFolder().mkdirs();
48 // If config.yml is missing, create it by writing out defaults.
49 if(!new File(getDataFolder(), "config.yml").exists())
51 logger
.info("Creating configuration file");
54 logger
.info("Version " + getDescription().getVersion() + " is enabled!");
57 public boolean onCommand(CommandSender sender
, Command cmd
, String commandLabel
, String
[] args
){
58 if(cmd
.getName().equalsIgnoreCase("vote")){
59 if (!(sender
instanceof Player
)) {
60 sender
.sendMessage(ChatColor
.RED
+ "You must be an online player!");
63 Player player
= (Player
) sender
;
65 // TODO: Add check to verify that only one option is given.
67 String voteCmd
= args
[0];
69 if ( voteCmd
.equalsIgnoreCase("status") )
71 if ( ! player
.hasPermission("vote.status"))
72 return noPermissionsMessage(player
);
74 if ( ! manager
.isVoteRunning() )
76 sender
.sendMessage("No vote is currently running.");
80 return notImplemented(player
);
83 else if ( voteCmd
.equalsIgnoreCase("cancel") )
85 if ( ! player
.hasPermission("vote.cancel"))
86 return noPermissionsMessage(player
);
88 if ( ! manager
.isVoteRunning() )
90 if (! manager
.cancelVote() )
91 player
.sendMessage("I'm sorry, unable to cancel at this time.");
96 return notImplemented(player
);
98 else if ( voteCmd
.equalsIgnoreCase("sun") || voteCmd
.equalsIgnoreCase("rain") || voteCmd
.equalsIgnoreCase("storm") ||
99 voteCmd
.equalsIgnoreCase("day") || voteCmd
.equalsIgnoreCase("night") )
101 if ( ! manager
.isVoteRunning() )
103 if ( ! testPermission(voteCmd
, "start", player
))
104 return noPermissionsMessage(player
);
106 manager
.startVote( voteCmd
.toLowerCase(), player
);
111 if ( ! manager
.getVoteType().equalsIgnoreCase( voteCmd
) )
113 player
.sendMessage("A vote for " + manager
.getVoteType() + " is already running.");
117 else if ( ! testPermission(voteCmd
, "respond", player
))
118 return noPermissionsMessage(player
);
120 else if ( ! manager
.addVote( player
, true ) )
122 player
.sendMessage("Oops, I was unable to count your vote!");
129 else if ( voteCmd
.equalsIgnoreCase("yes") || voteCmd
.equalsIgnoreCase("no") )
131 if ( ! manager
.isVoteRunning() )
133 sender
.sendMessage("No vote running. Perhaps you want to start a new one?");
136 if ( ! testPermission(manager
.getVoteType(), "respond", player
))
137 return noPermissionsMessage(player
);
139 if ( ! manager
.addVote( player
, (voteCmd
.equalsIgnoreCase("yes")?
true:false)) )
141 player
.sendMessage("Oops, I was unable to count your vote!");
149 return notImplemented(player
);
154 private boolean notImplemented(Player p
) {
155 p
.sendMessage("It seems I do not know how to do that yet...");
159 private boolean noPermissionsMessage( Player p
){
160 p
.sendMessage("I'm sorry, " + p
.getDisplayName() + ", I'm afraid I can't do that.");
164 private boolean testPermission (String cmd
, String action
, Player p
)
166 if ( ( cmd
.equalsIgnoreCase("sun") ) || cmd
.equalsIgnoreCase("rain") || cmd
.equalsIgnoreCase("storm") )
168 if ( p
.hasPermission("vote.weather." + action
) ) return true;
171 if ( ( cmd
.equalsIgnoreCase("day") ) || cmd
.equalsIgnoreCase("night") )
173 if ( p
.hasPermission("vote.time." + action
) ) return true;