From 8cfa25a51ba65209f38beba1b506ce72197c08da Mon Sep 17 00:00:00 2001 From: Alex Date: Fri, 18 Oct 2019 00:39:33 -0400 Subject: [PATCH 1/6] =Synchronized response String --- src/utils/audio/AudioController.java | 76 +++++++++++++++------------- 1 file changed, 40 insertions(+), 36 deletions(-) diff --git a/src/utils/audio/AudioController.java b/src/utils/audio/AudioController.java index 8c05bed..011cf49 100644 --- a/src/utils/audio/AudioController.java +++ b/src/utils/audio/AudioController.java @@ -12,8 +12,9 @@ import dataStructures.KittyGuild; public class AudioController { - private final AudioPlayerManager playerManager; public String response; + private final AudioPlayerManager playerManager; + public AudioController() { @@ -24,48 +25,51 @@ public class AudioController public void loadAndPlay(final String trackUrl, KittyGuild guild) { - GuildMusicManager musicManager = guild.musicManager; - response = "HERE"; + synchronized(response) + { + GuildMusicManager musicManager = guild.musicManager; - playerManager.loadItemOrdered(musicManager, trackUrl, new AudioLoadResultHandler() - { - @Override - public void trackLoaded(AudioTrack track) - { - response = "Adding to queue " + track.getInfo().title; - System.out.println("QUEUED"); - play(musicManager, track); - } + playerManager.loadItemOrdered(musicManager, trackUrl, new AudioLoadResultHandler() + { + @Override + public void trackLoaded(AudioTrack track) + { + response = "Adding to queue " + track.getInfo().title; + System.out.println("QUEUED"); + play(musicManager, track); + } - @Override - public void playlistLoaded(AudioPlaylist playlist) - { - AudioTrack firstTrack = playlist.getSelectedTrack(); + @Override + public void playlistLoaded(AudioPlaylist playlist) + { + AudioTrack firstTrack = playlist.getSelectedTrack(); - if (firstTrack == null) - { - firstTrack = playlist.getTracks().get(0); - } + if (firstTrack == null) + { + firstTrack = playlist.getTracks().get(0); + } - response = "Adding to queue " + firstTrack.getInfo().title + " (first track of playlist " + playlist.getName() + ")"; + response = "Adding to queue " + firstTrack.getInfo().title + " (first track of playlist " + playlist.getName() + ")"; - play(musicManager, firstTrack); - } + play(musicManager, firstTrack); + } - @Override - public void noMatches() - { - System.out.println("NOT QUEUED"); - response = "Nothing found by " + trackUrl; - } + @Override + public void noMatches() + { + System.out.println("NOT QUEUED"); + response = "Nothing found by " + trackUrl; + } - @Override - public void loadFailed(FriendlyException exception) - { - System.out.println("EXCEPTION"); - System.out.println(exception.getCause()); - } - }); + @Override + public void loadFailed(FriendlyException exception) + { + System.out.println("EXCEPTION"); + System.out.println(exception.getCause()); + } + }); + } + } private void play(GuildMusicManager musicManager, AudioTrack track) From 6a84f3759a2ea404c9fe877fbbd88ffbca012edd Mon Sep 17 00:00:00 2001 From: Alex Date: Fri, 18 Oct 2019 03:11:01 -0400 Subject: [PATCH 2/6] =Updates --- src/commands/music/SubCommandAddTrack.java | 9 ++- src/dataStructures/KittyGuild.java | 2 +- src/utils/audio/AudioController.java | 71 ++++++++++------------ src/utils/audio/GuildMusicManager.java | 6 +- 4 files changed, 44 insertions(+), 44 deletions(-) diff --git a/src/commands/music/SubCommandAddTrack.java b/src/commands/music/SubCommandAddTrack.java index d8f7472..575bd00 100644 --- a/src/commands/music/SubCommandAddTrack.java +++ b/src/commands/music/SubCommandAddTrack.java @@ -25,8 +25,11 @@ public class SubCommandAddTrack extends SubCommand //Get track from Youtube String video = YT.getYT(input.args); ac.loadAndPlay(video, guild); - - System.out.println(ac.response); - return new SubCommandFormattable(video); + try { + Thread.sleep(2000); + } catch (InterruptedException e) { + e.printStackTrace(); + } + return new SubCommandFormattable(ac.response); } } \ No newline at end of file diff --git a/src/dataStructures/KittyGuild.java b/src/dataStructures/KittyGuild.java index 4369490..d989348 100644 --- a/src/dataStructures/KittyGuild.java +++ b/src/dataStructures/KittyGuild.java @@ -58,7 +58,7 @@ public class KittyGuild extends DatabaseTrackedObject roleList = new KittyTrackedVector(roleListName, uniqueID); beans = new KittyTrackedLong(beansName, uniqueID); registerTrackedObjects(); - musicManager = new GuildMusicManager(playerManager); + musicManager = new GuildMusicManager(playerManager, this); control = adminControl; this.contentRating = KittyRating.Safe; diff --git a/src/utils/audio/AudioController.java b/src/utils/audio/AudioController.java index 011cf49..0754180 100644 --- a/src/utils/audio/AudioController.java +++ b/src/utils/audio/AudioController.java @@ -25,56 +25,49 @@ public class AudioController public void loadAndPlay(final String trackUrl, KittyGuild guild) { - synchronized(response) - { - GuildMusicManager musicManager = guild.musicManager; + GuildMusicManager musicManager = guild.musicManager; - playerManager.loadItemOrdered(musicManager, trackUrl, new AudioLoadResultHandler() - { - @Override - public void trackLoaded(AudioTrack track) - { - response = "Adding to queue " + track.getInfo().title; - System.out.println("QUEUED"); - play(musicManager, track); - } + playerManager.loadItemOrdered(musicManager, trackUrl, new AudioLoadResultHandler() + { + @Override + public void trackLoaded(AudioTrack track) + { + response = "Adding to queue " + track.getInfo().title; + play(musicManager, track); + } - @Override - public void playlistLoaded(AudioPlaylist playlist) - { - AudioTrack firstTrack = playlist.getSelectedTrack(); + @Override + public void playlistLoaded(AudioPlaylist playlist) + { + AudioTrack firstTrack = playlist.getSelectedTrack(); - if (firstTrack == null) - { - firstTrack = playlist.getTracks().get(0); - } + if (firstTrack == null) + { + firstTrack = playlist.getTracks().get(0); + } - response = "Adding to queue " + firstTrack.getInfo().title + " (first track of playlist " + playlist.getName() + ")"; + response = "Adding to queue " + firstTrack.getInfo().title + " (first track of playlist " + playlist.getName() + ")"; - play(musicManager, firstTrack); - } + play(musicManager, firstTrack); + } - @Override - public void noMatches() - { - System.out.println("NOT QUEUED"); - response = "Nothing found by " + trackUrl; - } + @Override + public void noMatches() + { + response = "Nothing found by " + trackUrl; + } - @Override - public void loadFailed(FriendlyException exception) - { - System.out.println("EXCEPTION"); - System.out.println(exception.getCause()); - } - }); - } - + @Override + public void loadFailed(FriendlyException exception) + { + System.out.println(exception.getCause()); + } + }); } private void play(GuildMusicManager musicManager, AudioTrack track) { - + System.out.println(musicManager.guildName); musicManager.scheduler.queue(track); } diff --git a/src/utils/audio/GuildMusicManager.java b/src/utils/audio/GuildMusicManager.java index 599f513..b499517 100644 --- a/src/utils/audio/GuildMusicManager.java +++ b/src/utils/audio/GuildMusicManager.java @@ -3,6 +3,8 @@ package utils.audio; import com.sedmelluq.discord.lavaplayer.player.AudioPlayer; import com.sedmelluq.discord.lavaplayer.player.AudioPlayerManager; +import dataStructures.KittyGuild; + /** * Holder for both the player and a track scheduler for one guild. */ @@ -15,16 +17,18 @@ public class GuildMusicManager { * Track scheduler for the player. */ public final TrackScheduler scheduler; + public final String guildName; /** * Creates a player and a track scheduler. * @param manager Audio player manager to use for creating the player. */ - public GuildMusicManager(AudioPlayerManager manager) + public GuildMusicManager(AudioPlayerManager manager, KittyGuild guild) { player = manager.createPlayer(); scheduler = new TrackScheduler(player); player.addListener(scheduler); + guildName = guild.uniqueID; } /** From 7f2251732ea8e476ad26107e4f5510e044a8116c Mon Sep 17 00:00:00 2001 From: Matthew Cech Date: Sat, 2 Nov 2019 19:13:26 -0800 Subject: [PATCH 3/6] = Configs updating --- src/core/Config.java | 1 + src/core/ConfigGlobals.java | 68 ++++++++++++++++++++++++ src/core/ConfigItem.java | 6 +-- src/core/LocCommands.java | 4 +- src/dataStructures/KittyStartupMode.java | 18 +++++++ 5 files changed, 92 insertions(+), 5 deletions(-) create mode 100644 src/core/ConfigGlobals.java create mode 100644 src/dataStructures/KittyStartupMode.java diff --git a/src/core/Config.java b/src/core/Config.java index c76c9c2..96b29bc 100644 --- a/src/core/Config.java +++ b/src/core/Config.java @@ -28,6 +28,7 @@ public class Config sections = new Vector(); // Add all sections + sections.add(new ConfigGlobals()); sections.add(new LocCommands()); sections.add(new LocStrings()); sections.add(new CommandEnabler()); diff --git a/src/core/ConfigGlobals.java b/src/core/ConfigGlobals.java new file mode 100644 index 0000000..f7b7ce7 --- /dev/null +++ b/src/core/ConfigGlobals.java @@ -0,0 +1,68 @@ +package core; + +import java.util.ArrayList; +import java.util.List; + +import dataStructures.KittyStartupMode; +import utils.GlobalLog; + +// Want to add a single item to the config file? This is where that lives. +public class ConfigGlobals implements IConfigSection +{ + // Defined const variables + public static final String header = "Globals"; + public static ConfigGlobals instance; + + + // A pile of variables being manually tracked/serialized to the config file + private static final String startupStyleKey = "mode"; + private KittyStartupMode startupStyleValue = KittyStartupMode.Development; + + // Constructor + public ConfigGlobals() + { + if(instance == null) + instance = this; + else + GlobalLog.error("Attempted to initialize a second config globals! Probably don't do this!"); + } + + @Override + public String getSectionTitle() + { + return header; + } + + public static KittyStartupMode getStartupMode() + { + return instance.startupStyleValue; + } + + @Override + public void consume(List pairs) + { + for(int i = 0; i < pairs.size(); ++i) + { + String key = pairs.get(i).key; + String value = pairs.get(i).value; + + // Parse startup style + if(key.equalsIgnoreCase(startupStyleKey)) + { + startupStyleValue = KittyStartupMode.Development; + + if(value.equalsIgnoreCase(KittyStartupMode.Release.getValue())) + startupStyleValue = KittyStartupMode.Release; + } + } + } + + @Override + public List produce() + { + List items = new ArrayList(); + items.add(new ConfigItem(getSectionTitle(), startupStyleKey, startupStyleValue.getValue())); + + return items; + } +} diff --git a/src/core/ConfigItem.java b/src/core/ConfigItem.java index 7f556d2..75e8bad 100644 --- a/src/core/ConfigItem.java +++ b/src/core/ConfigItem.java @@ -6,9 +6,9 @@ import utils.StringUtils; // perform any parsing past naming columns, and just holds the raw data. public class ConfigItem { - public String type; - public String key; - public String value; + public String type; // The section this specific key/value pair belongs to. This almost certainly will appear in multiple places. + public String key; // A unique key for a given lookup value for the specified section. Keys, within sections, are unique. + public String value; // The value assocaited with the key. public static final int items = 3; public static final String[] header = {"Type","Key","Value"}; diff --git a/src/core/LocCommands.java b/src/core/LocCommands.java index 30d071e..2d446e7 100644 --- a/src/core/LocCommands.java +++ b/src/core/LocCommands.java @@ -11,7 +11,7 @@ import dataStructures.Pair; public class LocCommands extends BaseLocFile implements IConfigSection { // Defined const variables - public static final String HeaderName = "Localized Commands"; + public static final String header = "Localized Commands"; public static final String function = "LocCommands.stub"; // Instance @@ -20,7 +20,7 @@ public class LocCommands extends BaseLocFile implements IConfigSection // Constructor public LocCommands() { - super(HeaderName, function); + super(header, function); GlobalLog.log(LogFilter.Core, "Initializing " + this.getClass().getSimpleName()); diff --git a/src/dataStructures/KittyStartupMode.java b/src/dataStructures/KittyStartupMode.java new file mode 100644 index 0000000..3d9e67d --- /dev/null +++ b/src/dataStructures/KittyStartupMode.java @@ -0,0 +1,18 @@ +package dataStructures; + +public enum KittyStartupMode +{ + Development("dev"), Release("release"); + + private final String value; + private KittyStartupMode(String value) + { + this.value = value; + } + + public String getValue() + { + return value; + } +} + From 74a57508247f992fc487d3d895c5d66c570af77e Mon Sep 17 00:00:00 2001 From: Matthew Cech Date: Sat, 2 Nov 2019 19:29:02 -0800 Subject: [PATCH 4/6] = Updated config --- assets/config.csv | 2 ++ src/core/ConfigGlobals.java | 8 ++++---- src/core/ObjectBuilderFactory.java | 11 +++++++++-- src/dataStructures/KittyStartupMode.java | 8 ++++---- 4 files changed, 19 insertions(+), 10 deletions(-) diff --git a/assets/config.csv b/assets/config.csv index 686c012..b515996 100644 --- a/assets/config.csv +++ b/assets/config.csv @@ -1,4 +1,5 @@ "Type","Key","Value" +"Globals","mode","dev" "Localized Commands","beans","" "Localized Commands","benchmark, bench","" "Localized Commands","bet","" @@ -61,6 +62,7 @@ "Localized Strings","BetBeansInfo","Allows you to bet your beans, set your amount after the command! Warning! House always wins!nSets of 3 will get 2x, 4 will get 10x, and 5 will get 1000x" "Localized Strings","BetBeansLose","Sorry, you didn't win, try again!" "Localized Strings","BetBeansLowBet","Please bet with at least 20 beans!" +"Localized Strings","BetBeansMinThreshold","" "Localized Strings","BetBeansNotEnough","You don't have enough beans!" "Localized Strings","BetBeansNotValid","That's not a valid bet!" "Localized Strings","BetBeansWin","You won %s beans!" diff --git a/src/core/ConfigGlobals.java b/src/core/ConfigGlobals.java index f7b7ce7..1828d70 100644 --- a/src/core/ConfigGlobals.java +++ b/src/core/ConfigGlobals.java @@ -16,7 +16,7 @@ public class ConfigGlobals implements IConfigSection // A pile of variables being manually tracked/serialized to the config file private static final String startupStyleKey = "mode"; - private KittyStartupMode startupStyleValue = KittyStartupMode.Development; + private KittyStartupMode startupStyleValue = KittyStartupMode.Dev; // Constructor public ConfigGlobals() @@ -49,9 +49,9 @@ public class ConfigGlobals implements IConfigSection // Parse startup style if(key.equalsIgnoreCase(startupStyleKey)) { - startupStyleValue = KittyStartupMode.Development; + startupStyleValue = KittyStartupMode.Dev; - if(value.equalsIgnoreCase(KittyStartupMode.Release.getValue())) + if(value.equalsIgnoreCase(KittyStartupMode.Release.name())) startupStyleValue = KittyStartupMode.Release; } } @@ -61,7 +61,7 @@ public class ConfigGlobals implements IConfigSection public List produce() { List items = new ArrayList(); - items.add(new ConfigItem(getSectionTitle(), startupStyleKey, startupStyleValue.getValue())); + items.add(new ConfigItem(getSectionTitle(), startupStyleKey, startupStyleValue.name().toLowerCase())); return items; } diff --git a/src/core/ObjectBuilderFactory.java b/src/core/ObjectBuilderFactory.java index fd5d592..a17d2ed 100644 --- a/src/core/ObjectBuilderFactory.java +++ b/src/core/ObjectBuilderFactory.java @@ -20,6 +20,7 @@ import dataStructures.KittyCore; import dataStructures.KittyGuild; import dataStructures.KittyRating; import dataStructures.KittyRole; +import dataStructures.KittyStartupMode; import dataStructures.KittyUser; import main.Main; import net.dv8tion.jda.core.AccountType; @@ -382,9 +383,15 @@ public class ObjectBuilderFactory { lazyInit(); + // Determine token based on config. Default to test token. + String tokenToUse = Ref.TestToken; + if(ConfigGlobals.getStartupMode() == KittyStartupMode.Release) + tokenToUse = Ref.Token; + + // Construct bot based on token kitty = new JDABuilder(AccountType.BOT) - .setToken(Ref.TestToken).buildBlocking(); - kitty.getPresence().setGame(Game.playing("with digital yarn")); + .setToken(tokenToUse).buildBlocking(); + kitty.getPresence().setGame(Game.playing("with a laser pointer")); kitty.addEventListener(new Main()); return new KittyCore(kitty); diff --git a/src/dataStructures/KittyStartupMode.java b/src/dataStructures/KittyStartupMode.java index 3d9e67d..3f9f8a7 100644 --- a/src/dataStructures/KittyStartupMode.java +++ b/src/dataStructures/KittyStartupMode.java @@ -2,15 +2,15 @@ package dataStructures; public enum KittyStartupMode { - Development("dev"), Release("release"); + Dev(1), Release(2); - private final String value; - private KittyStartupMode(String value) + private final int value; + private KittyStartupMode(int value) { this.value = value; } - public String getValue() + public int getValue() { return value; } From d6fd5ae436a07c29b302315557b8d8c7ff188a1e Mon Sep 17 00:00:00 2001 From: Matthew Cech Date: Sat, 2 Nov 2019 19:31:02 -0800 Subject: [PATCH 5/6] = clarified mode with note in key --- assets/config.csv | 2 +- src/core/ConfigGlobals.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/assets/config.csv b/assets/config.csv index b515996..437a63e 100644 --- a/assets/config.csv +++ b/assets/config.csv @@ -1,5 +1,5 @@ "Type","Key","Value" -"Globals","mode","dev" +"Globals","mode (dev or release)","dev" "Localized Commands","beans","" "Localized Commands","benchmark, bench","" "Localized Commands","bet","" diff --git a/src/core/ConfigGlobals.java b/src/core/ConfigGlobals.java index 1828d70..d6b5db9 100644 --- a/src/core/ConfigGlobals.java +++ b/src/core/ConfigGlobals.java @@ -15,7 +15,7 @@ public class ConfigGlobals implements IConfigSection // A pile of variables being manually tracked/serialized to the config file - private static final String startupStyleKey = "mode"; + private static final String startupStyleKey = "mode (dev or release)"; private KittyStartupMode startupStyleValue = KittyStartupMode.Dev; // Constructor From 595b1e3958d836e8dd78bd3116cf1971ecb78ee1 Mon Sep 17 00:00:00 2001 From: Matthew Cech Date: Sat, 2 Nov 2019 19:31:02 -0800 Subject: [PATCH 6/6] = clarified mode with note in key --- assets/config.csv | 2 +- src/core/ConfigGlobals.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/assets/config.csv b/assets/config.csv index b515996..437a63e 100644 --- a/assets/config.csv +++ b/assets/config.csv @@ -1,5 +1,5 @@ "Type","Key","Value" -"Globals","mode","dev" +"Globals","mode (dev or release)","dev" "Localized Commands","beans","" "Localized Commands","benchmark, bench","" "Localized Commands","bet","" diff --git a/src/core/ConfigGlobals.java b/src/core/ConfigGlobals.java index 1828d70..d6b5db9 100644 --- a/src/core/ConfigGlobals.java +++ b/src/core/ConfigGlobals.java @@ -15,7 +15,7 @@ public class ConfigGlobals implements IConfigSection // A pile of variables being manually tracked/serialized to the config file - private static final String startupStyleKey = "mode"; + private static final String startupStyleKey = "mode (dev or release)"; private KittyStartupMode startupStyleValue = KittyStartupMode.Dev; // Constructor