Skip to content

Commit 92d7eef

Browse files
committed
bruh momento
1 parent 9cd0be5 commit 92d7eef

33 files changed

Lines changed: 737 additions & 548 deletions

‎build.gradle.kts‎

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
plugins {
22
java
3+
checkstyle
34
`maven-publish`
45
id("com.gradleup.shadow") version "9.6.1"
56
}
@@ -40,6 +41,11 @@ java {
4041
toolchain.languageVersion.set(JavaLanguageVersion.of(25))
4142
}
4243

44+
checkstyle {
45+
toolVersion = "14.1.0"
46+
configFile = rootProject.file("config/checkstyle/checkstyle.xml")
47+
}
48+
4349
publishing {
4450
publications {
4551
create<MavenPublication>("maven") {

‎config/checkstyle/checkstyle.xml‎

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
<?xml version="1.0"?>
2+
<!DOCTYPE module PUBLIC
3+
"-//Checkstyle//DTD Checkstyle Configuration 1.3//EN"
4+
"https://checkstyle.org/dtds/configuration_1_3.dtd">
5+
6+
<module name="Checker">
7+
<module name="SuppressWarningsFilter"/>
8+
<module name="TreeWalker">
9+
<module name="SuppressWarningsHolder"/>
10+
<module name="CyclomaticComplexity">
11+
<property name="max" value="15"/>
12+
<property name="switchBlockAsSingleDecisionPoint" value="true"/>
13+
</module>
14+
</module>
15+
</module>

‎src/main/java/dev/plex/Guilds.java‎

Lines changed: 22 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import dev.plex.api.config.ModuleConfiguration;
55
import dev.plex.guild.Guild;
66
import dev.plex.guild.GuildHolder;
7+
import dev.plex.guild.GuildMutationService;
78
import dev.plex.handler.ChatHandlerImpl;
89
import dev.plex.handler.GuildMenuListener;
910
import dev.plex.handler.GuildWorldProtectionListener;
@@ -19,6 +20,9 @@
1920
import org.bukkit.entity.Player;
2021

2122
import java.sql.SQLException;
23+
import java.time.ZoneId;
24+
import java.util.Set;
25+
import java.util.stream.Collectors;
2226

2327
@Getter
2428
public class Guilds extends PlexModule
@@ -27,28 +31,29 @@ public class Guilds extends PlexModule
2731
private static final String ASP_LOADER_CLASS = "com.infernalsuite.asp.api.loaders.SlimeLoader";
2832
private static final String ASP_WORLD_SERVICE_CLASS = "dev.plex.world.AspGuildWorldService";
2933

30-
private static Guilds module;
3134
private final GuildHolder guildHolder = new GuildHolder();
32-
private final GuildMenuListener guildMenuListener = new GuildMenuListener();
33-
private final GuildWorldProtectionListener guildWorldProtectionListener = new GuildWorldProtectionListener();
34-
private final RankPermissionMenuListener rankPermissionMenuListener = new RankPermissionMenuListener();
35+
private final GuildMutationService guildMutationService = new GuildMutationService(this);
36+
private final GuildMenuListener guildMenuListener = new GuildMenuListener(this, guildMutationService);
37+
private final GuildWorldProtectionListener guildWorldProtectionListener = new GuildWorldProtectionListener(this);
38+
private final RankPermissionMenuListener rankPermissionMenuListener = new RankPermissionMenuListener(this);
3539

3640
private GuildWorldService guildWorldService;
3741

3842
private GuildRepository guildRepository;
3943

4044
private ModuleConfiguration config;
45+
private ZoneId zoneId;
4146
private volatile boolean ready;
4247
private volatile boolean loadFailed;
4348

4449
@Override
4550
public void load()
4651
{
47-
module = this;
4852
config = api().moduleConfigs().create(this, "config.yml");
4953
config.load();
54+
zoneId = ZoneId.of(api().configuration().mainConfig().getString("server.timezone", "Etc/UTC"));
5055
loadMessages("messages.yml");
51-
this.registerCommand(new GuildCommand());
56+
this.registerCommand(new GuildCommand(this));
5257
}
5358

5459
@Override
@@ -66,7 +71,7 @@ public void enable()
6671
{
6772
throw new IllegalStateException("Failed to run Guilds migrations", e);
6873
}
69-
guildRepository = new JdbiGuildRepository(storage);
74+
guildRepository = new JdbiGuildRepository(storage, scheduler().asyncExecutor(), zoneId);
7075
guildRepository.loadGuilds().whenComplete((guilds, throwable) ->
7176
{
7277
if (throwable != null)
@@ -79,7 +84,7 @@ public void enable()
7984
guildHolder.replaceAll(guilds);
8085
ready = true;
8186
});
82-
registerListener(new ChatHandlerImpl());
87+
registerListener(new ChatHandlerImpl(this));
8388
registerListener(guildMenuListener);
8489
registerListener(guildWorldProtectionListener);
8590
registerListener(rankPermissionMenuListener);
@@ -111,7 +116,7 @@ private void enableGuildWorlds()
111116

112117
Class<? extends GuildWorldService> serviceClass = Class.forName(ASP_WORLD_SERVICE_CLASS, true, classLoader)
113118
.asSubclass(GuildWorldService.class);
114-
GuildWorldService service = serviceClass.getConstructor().newInstance();
119+
GuildWorldService service = serviceClass.getConstructor(Guilds.class).newInstance(this);
115120
service.enable();
116121
guildWorldService = service;
117122
}
@@ -121,20 +126,19 @@ private void enableGuildWorlds()
121126
}
122127
}
123128

124-
public void broadcastToGuild(Guild guild, Component message)
129+
public java.util.concurrent.CompletableFuture<Void> broadcastToGuild(Guild guild, Component message)
125130
{
126-
guild.getMembers().forEach(member ->
131+
java.util.concurrent.CompletableFuture<Void> completion = new java.util.concurrent.CompletableFuture<>();
132+
Set<java.util.UUID> recipients = guild.getMembers().stream().map(member -> member.getUuid()).collect(Collectors.toSet());
133+
scheduler().runGlobal(() ->
127134
{
128-
Player player = Bukkit.getPlayer(member.getUuid());
129-
if (player != null)
135+
for (Player player : java.util.List.copyOf(Bukkit.getOnlinePlayers()))
130136
{
131-
player.sendMessage(message);
137+
if (recipients.contains(player.getUniqueId())) player.sendMessage(message);
132138
}
139+
completion.complete(null);
133140
});
141+
return completion;
134142
}
135143

136-
public static Guilds get()
137-
{
138-
return module;
139-
}
140144
}

0 commit comments

Comments
 (0)