Skip to content

Commit bba6d28

Browse files
committed
Improve lobby selection logic
1 parent 2916588 commit bba6d28

File tree

6 files changed

+19
-27
lines changed

6 files changed

+19
-27
lines changed

Diff for: src/main/java/net/clementraynaud/skoice/bot/BotVoiceChannel.java

+15
Original file line numberDiff line numberDiff line change
@@ -20,10 +20,13 @@
2020
package net.clementraynaud.skoice.bot;
2121

2222
import net.clementraynaud.skoice.Skoice;
23+
import net.clementraynaud.skoice.storage.config.ConfigField;
24+
import net.clementraynaud.skoice.tasks.InterruptSystemTask;
2325
import net.dv8tion.jda.api.Permission;
2426
import net.dv8tion.jda.api.entities.Member;
2527
import net.dv8tion.jda.api.entities.PermissionOverride;
2628
import net.dv8tion.jda.api.entities.Role;
29+
import net.dv8tion.jda.api.entities.User;
2730
import net.dv8tion.jda.api.entities.channel.concrete.VoiceChannel;
2831

2932
import java.util.EnumSet;
@@ -36,6 +39,18 @@ public BotVoiceChannel(Skoice plugin) {
3639
this.plugin = plugin;
3740
}
3841

42+
public void setup(VoiceChannel channel, User user) {
43+
VoiceChannel oldVoiceChannel = this.plugin.getConfigYamlFile().getVoiceChannel();
44+
if (oldVoiceChannel != null) {
45+
oldVoiceChannel.modifyStatus("").queue();
46+
new InterruptSystemTask(this.plugin).run();
47+
}
48+
this.plugin.getConfigYamlFile().set(ConfigField.VOICE_CHANNEL_ID.toString(), channel.getId());
49+
this.plugin.getListenerManager().update(user);
50+
this.plugin.getBot().getVoiceChannel().updatePermissions();
51+
this.plugin.getBot().getVoiceChannel().setStatus();
52+
}
53+
3954
public VoiceChannel getVoiceChannel() {
4055
return this.plugin.getConfigYamlFile().getVoiceChannel();
4156
}

Diff for: src/main/java/net/clementraynaud/skoice/listeners/interaction/ModalInteractionListener.java

+1-12
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,7 @@
2323
import net.clementraynaud.skoice.menus.ConfigurationMenus;
2424
import net.clementraynaud.skoice.menus.EmbeddedMenu;
2525
import net.clementraynaud.skoice.storage.config.ConfigField;
26-
import net.clementraynaud.skoice.tasks.InterruptSystemTask;
2726
import net.dv8tion.jda.api.entities.Guild;
28-
import net.dv8tion.jda.api.entities.channel.concrete.VoiceChannel;
2927
import net.dv8tion.jda.api.events.interaction.ModalInteractionEvent;
3028
import net.dv8tion.jda.api.hooks.ListenerAdapter;
3129
import net.dv8tion.jda.api.interactions.modals.ModalMapping;
@@ -59,16 +57,7 @@ public void onModalInteraction(ModalInteractionEvent event) {
5957
String voiceChannelName = voiceChannelValue.getAsString();
6058
guild.createCategory(categoryName).queue(category ->
6159
guild.createVoiceChannel(voiceChannelName, category).queue(channel -> {
62-
VoiceChannel oldVoiceChannel = this.plugin.getConfigYamlFile().getVoiceChannel();
63-
if (oldVoiceChannel != null) {
64-
oldVoiceChannel.modifyStatus("").queue();
65-
}
66-
this.plugin.getConfigYamlFile().set(ConfigField.VOICE_CHANNEL_ID.toString(), channel.getId());
67-
new InterruptSystemTask(this.plugin).run();
68-
this.plugin.getListenerManager().update(event.getUser());
69-
this.plugin.getBot().getVoiceChannel().updatePermissions();
70-
this.plugin.getBot().getVoiceChannel().setStatus();
71-
this.plugin.getLinksYamlFile().refreshOnlineLinkedPlayers();
60+
this.plugin.getBot().getVoiceChannel().setup(channel, event.getUser());
7261
ConfigurationMenus.getFromMessageId(event.getMessage().getId()).ifPresent(menu -> menu.refreshId().edit(event));
7362
}));
7463

Diff for: src/main/java/net/clementraynaud/skoice/listeners/interaction/component/StringSelectInteractionListener.java

+1-13
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@
2525
import net.clementraynaud.skoice.menus.ConfigurationMenus;
2626
import net.clementraynaud.skoice.menus.EmbeddedMenu;
2727
import net.clementraynaud.skoice.storage.config.ConfigField;
28-
import net.clementraynaud.skoice.tasks.InterruptSystemTask;
2928
import net.dv8tion.jda.api.Permission;
3029
import net.dv8tion.jda.api.entities.Guild;
3130
import net.dv8tion.jda.api.entities.Member;
@@ -118,18 +117,7 @@ public void onStringSelectInteraction(StringSelectInteractionEvent event) {
118117
} else {
119118
VoiceChannel voiceChannel = guild.getVoiceChannelById(event.getSelectedOptions().get(0).getValue());
120119
if (voiceChannel != null && voiceChannel.getParentCategory() != null) {
121-
VoiceChannel oldVoiceChannel = this.plugin.getConfigYamlFile().getVoiceChannel();
122-
if (oldVoiceChannel != null) {
123-
oldVoiceChannel.modifyStatus("").queue();
124-
}
125-
this.plugin.getConfigYamlFile().set(ConfigField.VOICE_CHANNEL_ID.toString(),
126-
event.getSelectedOptions().get(0).getValue());
127-
this.plugin.getBot().updateVoiceState();
128-
new InterruptSystemTask(this.plugin).run();
129-
this.plugin.getListenerManager().update(event.getUser());
130-
this.plugin.getBot().getVoiceChannel().updatePermissions();
131-
this.plugin.getBot().getVoiceChannel().setStatus();
132-
this.plugin.getLinksYamlFile().refreshOnlineLinkedPlayers();
120+
this.plugin.getBot().getVoiceChannel().setup(voiceChannel, event.getUser());
133121
}
134122
ConfigurationMenus.getFromMessageId(event.getMessage().getId()).ifPresent(menu -> menu.refreshId().edit(event));
135123
}

Diff for: src/main/java/net/clementraynaud/skoice/listeners/session/ReadyListener.java

-1
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,6 @@ private void setup(Player tokenManager) {
109109
);
110110

111111
this.plugin.getConfigYamlFile().removeInvalidVoiceChannelId();
112-
this.plugin.getLinksYamlFile().refreshOnlineLinkedPlayers();
113112

114113
this.plugin.getBot().setDefaultAvatar();
115114
this.plugin.getBot().updateGuild();

Diff for: src/main/java/net/clementraynaud/skoice/system/LinkedPlayer.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,7 @@ public Set<LinkedPlayer> getPlayersWithinRange() {
103103
}
104104
} catch (NullPointerException ignored) {
105105
}
106-
return LinkedPlayer.getOnlineLinkedPlayers().stream()
106+
return LinkedPlayer.onlineLinkedPlayers.stream()
107107
.filter(p -> p.isInMainVoiceChannel() || p.isInAnyProximityChannel())
108108
.filter(p -> !p.equals(this))
109109
.filter(LinkedPlayer::isStateEligible)

Diff for: src/main/java/net/clementraynaud/skoice/system/ListenerManager.java

+1
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,7 @@ public void update(User user) {
7373
if (oldStatus != BotStatus.READY && newStatus == BotStatus.READY) {
7474
this.registerMinecraftListeners();
7575
this.registerBotListeners();
76+
this.plugin.getLinksYamlFile().refreshOnlineLinkedPlayers();
7677
this.plugin.getBot().getVoiceChannel().notifyUnlinkedUsers();
7778
this.plugin.getLogger().info(this.plugin.getLang().getMessage("logger.info.configuration-complete"));
7879
if (user != null) {

0 commit comments

Comments
 (0)