From 3b8e8c7f01a45fa433e13eb10b15ae001f89c367 Mon Sep 17 00:00:00 2001 From: Alex Date: Sat, 1 Jun 2019 23:52:06 -0400 Subject: [PATCH] =Fixed Raffling system and started char database --- commands.config | 1 + locCommands.config | 1 + src/core/ObjectBuilderFactory.java | 1 + src/dataStructures/KittyCharacter.java | 5 +++++ src/dataStructures/KittyGuild.java | 27 +++++++++++--------------- 5 files changed, 19 insertions(+), 16 deletions(-) create mode 100644 src/dataStructures/KittyCharacter.java diff --git a/commands.config b/commands.config index 27dd88f..5b3532f 100644 --- a/commands.config +++ b/commands.config @@ -29,6 +29,7 @@ map=1 perish, thenperish=1 ping=1 poll=1 +raffleend=1 rafflejoin=1 rafflespin=1 rafflestart=1 diff --git a/locCommands.config b/locCommands.config index 36e3e71..b1e2cc7 100644 --- a/locCommands.config +++ b/locCommands.config @@ -27,6 +27,7 @@ shutdown= boop= tony, stark, dontfeelgood, dontfeelsogood= role= +raffleend= ping= roll= blur= diff --git a/src/core/ObjectBuilderFactory.java b/src/core/ObjectBuilderFactory.java index 92db292..d5fe6f0 100644 --- a/src/core/ObjectBuilderFactory.java +++ b/src/core/ObjectBuilderFactory.java @@ -350,6 +350,7 @@ public class ObjectBuilderFactory manager.Register(LocCommands.Stub("rpg"), new CommandRPG(KittyRole.Mod, KittyRating.Safe)); manager.Register(LocCommands.Stub("rafflestart"), new CommandRaffleStart(KittyRole.Mod, KittyRating.Safe)); manager.Register(LocCommands.Stub("rafflespin"), new CommandRaffleSpin(KittyRole.Mod, KittyRating.Safe)); + manager.Register(LocCommands.Stub("raffleend"), new CommandRaffleEnd(KittyRole.Mod, KittyRating.Safe)); // General manager.Register(LocCommands.Stub("fetch"), new CommandFetch(KittyRole.General, KittyRating.Safe)); diff --git a/src/dataStructures/KittyCharacter.java b/src/dataStructures/KittyCharacter.java new file mode 100644 index 0000000..0812a8a --- /dev/null +++ b/src/dataStructures/KittyCharacter.java @@ -0,0 +1,5 @@ +package dataStructures; + +public class KittyCharacter { + +} diff --git a/src/dataStructures/KittyGuild.java b/src/dataStructures/KittyGuild.java index 1e0d6eb..7331f01 100644 --- a/src/dataStructures/KittyGuild.java +++ b/src/dataStructures/KittyGuild.java @@ -1,8 +1,6 @@ package dataStructures; import java.util.ArrayList; -import java.util.HashMap; -import java.util.Random; import core.DatabaseManager; import core.DatabaseTrackedObject; @@ -23,7 +21,8 @@ public class KittyGuild extends DatabaseTrackedObject public ArrayList emoji = new ArrayList(); public ArrayList choices = new ArrayList(); public AdminControl control; - public HashMap raffleUsers = new HashMap(); + public ArrayList raffleUsersUnchosen = new ArrayList(); + public ArrayList raffleUsersChosen = new ArrayList(); // Database synced info private final String roleListName = "guildRoles"; @@ -111,6 +110,8 @@ public class KittyGuild extends DatabaseTrackedObject { raffleCost = 0; raffling = false; + raffleUsersChosen.removeAll(raffleUsersChosen); + raffleUsersUnchosen.removeAll(raffleUsersUnchosen); return true; } return false; @@ -118,10 +119,10 @@ public class KittyGuild extends DatabaseTrackedObject public boolean joinRaffle(KittyUser user) { - if(!raffleUsers.containsKey(user) && user.GetBeans() > raffleCost && raffling) + if(!raffleUsersChosen.contains(user) && !raffleUsersUnchosen.contains(user) && user.GetBeans() > raffleCost && raffling) { user.ChangeBeans(raffleCost); - raffleUsers.put(user, true); + raffleUsersUnchosen.add(user); return true; } return false; @@ -129,18 +130,12 @@ public class KittyGuild extends DatabaseTrackedObject public KittyUser chooseRaffleWinner() { - if(!raffleUsers.isEmpty()) + if(!raffleUsersUnchosen.isEmpty()) { - KittyUser chosen = (KittyUser) raffleUsers.keySet().toArray()[new Random().nextInt(raffleUsers.keySet().toArray().length)]; - for(int i = 0; i < 10; i ++) - { - if(raffleUsers.get(chosen)) - { - raffleUsers.replace(chosen, false); - return chosen; - } - } - + KittyUser chosen = raffleUsersUnchosen.get((int) (Math.random() * raffleUsersUnchosen.size())); + raffleUsersUnchosen.remove(chosen); + raffleUsersChosen.add(chosen); + return chosen; } return null; }