]> git.defcon.no Git - YAVote/blobdiff - src/no/defcon/yavote/Votemanager.java
Removed debugging text. Seems to work OK, bumping version to 1.5
[YAVote] / src / no / defcon / yavote / Votemanager.java
index 2212b7a40f7c254324d65b3feecc98e994dc986e..bacbd92940dac0aabc9537f0d53a180c09c923ef 100644 (file)
@@ -64,7 +64,7 @@ public class Votemanager {
 \r
                yesVoters.add(p.getName());\r
 \r
-               if ( checkRatio( ) )\r
+               if ( ((float) yesVoters.size() / (float) plugin.getServer().getOnlinePlayers().length ) >= getRequired() )\r
                {\r
                        applyVote( voteType );\r
                        return true;\r
@@ -101,6 +101,24 @@ public class Votemanager {
                return voteType;\r
        }\r
 \r
+       public void removeVote(Player player )\r
+       {\r
+               if ( ! voteRunning || (voteType == null ) )\r
+                       return;\r
+\r
+               if ( yesVoters.contains(player.getName()) )\r
+                       yesVoters.remove(player.getName());\r
+\r
+               if ( noVoters.contains(player.getName()) )\r
+                       noVoters.remove(player.getName());\r
+\r
+               if ( yesVoters.size() + noVoters.size() == 0 )\r
+                       cancelVote();\r
+\r
+               else if ( ((float) yesVoters.size() / (float) (plugin.getServer().getOnlinePlayers().length - 1) ) >= getRequired() )\r
+                       applyVote( voteType );\r
+       }\r
+\r
        public boolean addVote(Player player, boolean yes) \r
        {\r
                if ( ! voteRunning || (voteType == null ) )\r
@@ -114,7 +132,7 @@ public class Votemanager {
                if (yes == true) yesVoters.add(player.getName());\r
                else noVoters.add(player.getName());\r
                \r
-               if ( (yes == true) && checkRatio( ) )\r
+               if ( ( yes == true) && ( ((float) yesVoters.size() / (float) plugin.getServer().getOnlinePlayers().length ) >= getRequired() ) )\r
                {\r
                        applyVote( voteType );\r
                        return true;\r
@@ -160,17 +178,15 @@ public class Votemanager {
                clearState();\r
        }\r
        \r
-       private boolean checkRatio( )\r
+       private float getRequired( )\r
        {\r
-               float required = 0.5F;\r
+               float req = 0.0f;\r
                if ( voteType.equalsIgnoreCase("sun") || voteType.equalsIgnoreCase("rain") || voteType.equalsIgnoreCase("storm") )\r
-                       required = (float)plugin.getConfig().getInt("vote.weather.requiredPercent") / 100.0F;\r
+                       req = (float)plugin.getConfig().getInt("vote.weather.requiredPercent") / 100.0F;\r
                else if ( voteType.equalsIgnoreCase("day") || voteType.equalsIgnoreCase("night") )\r
-                       required = (float)plugin.getConfig().getInt("vote.time.requiredPercent") / 100.0F;\r
-               \r
-               float ratio = (float) yesVoters.size() / (float) plugin.getServer().getOnlinePlayers().length;\r
-               if ( ratio > required ) return true;\r
-               return false;\r
+                       req = (float)plugin.getConfig().getInt("vote.time.requiredPercent") / 100.0F;\r
+\r
+               return req;\r
        }\r
        \r
        private void clearState()\r