Skip to content

Commit 31544ab

Browse files
committed
Fixed Network Protocol Error & Rewrote GroupManager
1 parent 3b05132 commit 31544ab

File tree

41 files changed

+1547
-1232
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

41 files changed

+1547
-1232
lines changed

luckprefix-common/src/main/java/de/eztxm/luckprefix/common/config/AbstractConfig.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,19 +37,22 @@ public final Path path() {
3737
return filePath;
3838
}
3939

40+
4041
public final DebugLog getDebugLog() {
4142
return debugLog;
4243
}
4344

4445
public synchronized void load() {
4546
debugLog.info(getClass().getSimpleName() + ".load: begin - " + filePath);
47+
boolean existed = filePath.toFile().exists();
4648
ensureParentDirectoryExists();
4749
dataTree = loadYamlToMap(filePath.toFile(), debugLog);
4850

4951
if (!defaultsWereApplied) {
5052
debugLog.debug(getClass().getSimpleName() + ".load: applying defaults (first run)");
5153
defineDefaults();
5254
defaultsWereApplied = true;
55+
if(!existed) save();
5356
}
5457
try {
5558
afterLoad();

luckprefix-common/src/main/java/de/eztxm/luckprefix/common/config/GroupsConfig.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@ protected void defineDefaults() {
2626
addDefault("default.SortID", 999);
2727
addDefault("default.NameColor", "gray");
2828

29-
saveDefaults();
3029
getDebugLog().debug("GroupsConfig.defineDefaults: defaults saved to disk");
3130

3231
setComments("default", List.of("The name of the group"));
@@ -40,7 +39,6 @@ protected void defineDefaults() {
4039
));
4140
setComments("default.NameColor", List.of("Name color above the player"));
4241

43-
saveComments();
4442
getDebugLog().debug("GroupsConfig.defineDefaults: comments saved");
4543
}
4644

@@ -131,6 +129,10 @@ public void setNameColor(String rawGroupName, String colorName) {
131129
set(path, colorName);
132130
}
133131

132+
public void removeGroup(String group) {
133+
set(group, null);
134+
}
135+
134136
public void ensureGroupDefaults(String rawGroupName,
135137
boolean autoAdd,
136138
boolean warn,

luckprefix-common/src/main/java/de/eztxm/luckprefix/common/config/MainConfig.java

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,6 @@ protected void defineDefaults() {
4444
addDefault("Logging.Debug.Enabled", true);
4545
addDefault("Logging.Debug.File", "luckprefix-debug.log");
4646

47-
saveDefaults();
4847
getDebugLog().debug("MainConfig.defineDefaults: defaults saved");
4948

5049
setComments("Update-Channel", List.of(
@@ -72,7 +71,6 @@ protected void defineDefaults() {
7271
setComments("Logging.Debug.Enabled", List.of("Deprecated toggle; debug file logger is always active"));
7372
setComments("Logging.Debug.File", List.of("Debug log file path"));
7473

75-
saveComments();
7674
getDebugLog().debug("MainConfig.defineDefaults: comments saved");
7775
}
7876

@@ -88,6 +86,15 @@ public String getColoredPermission() {
8886
return value;
8987
}
9088

89+
public Long getUpdateTime() {
90+
Long value = Long.parseLong(getString("UpdateTime", "5"));
91+
getDebugLog().debug("MainConfig.UpdateTime -> " + value);
92+
if(value <= 0) {
93+
return 5L;
94+
}
95+
return value;
96+
}
97+
9198
public boolean isAutoReloadEnabled() {
9299
boolean value = getBoolean("AutoReloadConfig.Enabled", false);
93100
getDebugLog().debug("MainConfig.isAutoReloadEnabled -> " + value);

luckprefix-modern-paper/src/main/java/de/eztxm/luckprefix/LuckPrefix.java

Lines changed: 25 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,12 @@
66
import de.eztxm.luckprefix.common.logging.DebugLog;
77
import de.eztxm.luckprefix.common.util.UpdateChecker;
88
import de.eztxm.luckprefix.depend.LuckPrefixPlaceholderExtension;
9+
import de.eztxm.luckprefix.group.GroupManager;
910
import de.eztxm.luckprefix.listener.ChatListener;
1011
import de.eztxm.luckprefix.listener.GroupListener;
1112
import de.eztxm.luckprefix.listener.JoinListener;
1213
import de.eztxm.luckprefix.listener.QuitListener;
1314
import de.eztxm.luckprefix.util.DependUtil;
14-
import de.eztxm.luckprefix.util.GroupManager;
1515
import de.eztxm.luckprefix.util.PlayerManager;
1616
import de.eztxm.luckprefix.util.Text;
1717
import lombok.Getter;
@@ -20,6 +20,7 @@
2020
import org.bstats.bukkit.Metrics;
2121
import org.bstats.charts.SimplePie;
2222
import org.bukkit.Bukkit;
23+
import org.bukkit.entity.Player;
2324
import org.bukkit.plugin.java.JavaPlugin;
2425
import org.bukkit.scheduler.BukkitTask;
2526

@@ -29,7 +30,7 @@
2930
public final class LuckPrefix extends JavaPlugin {
3031

3132
@Getter
32-
private static final boolean development = false;
33+
private static final boolean development = true;
3334
@Getter
3435
private static LuckPrefix instance;
3536
@Getter
@@ -51,6 +52,8 @@ public final class LuckPrefix extends JavaPlugin {
5152
private BukkitTask autoReloadConfigTask;
5253
private Metrics metrics;
5354

55+
private BukkitTask tabUpdateTask;
56+
5457
@SuppressWarnings("UnstableApiUsage")
5558
@Override
5659
public void onEnable() {
@@ -82,6 +85,7 @@ public void onEnable() {
8285
groupListener.onUpdateGroup();
8386
groupListener.onUpdateUserGroup();
8487
groupManager.loadGroups();
88+
updateGroups();
8589
if (dependUtil.isPlaceholderAPIEnabled()) {
8690
new LuckPrefixPlaceholderExtension(this.getPluginMeta()).register();
8791
this.getServer().sendMessage(new Text("<#33ffff>PlaceholderAPI <gray>was detected successfully.").prefixMiniMessage());
@@ -121,6 +125,21 @@ private void setupConfigs() {
121125
startConfigWatcher(config);
122126
}
123127

128+
private void updateGroups() {
129+
long periodTicks = getConfigService().of(MainConfig.class).getUpdateTime();
130+
if(periodTicks < 5L) periodTicks = 5L;
131+
132+
this.tabUpdateTask = Bukkit.getScheduler().runTaskTimer(this, () -> {
133+
try {
134+
for(Player viewer : Bukkit.getOnlinePlayers()) {
135+
getGroupManager().setGroups(viewer, viewer.getScoreboard());
136+
}
137+
} catch (Exception exception) {
138+
getDebugLog().error("tabUpdateTask failed", exception);
139+
}
140+
}, 1L, periodTicks);
141+
}
142+
124143
public void startConfigWatcher(MainConfig config) {
125144
if (config.isAutoReloadEnabled()) {
126145
this.configWatcher = new ConfigWatcher(getDataPath().toFile(), path -> {
@@ -168,6 +187,10 @@ public void onDisable() {
168187
playerManager = null;
169188
groupManager = null;
170189
groupListener = null;
190+
if(tabUpdateTask != null) {
191+
tabUpdateTask.cancel();
192+
tabUpdateTask = null;
193+
}
171194
updateChecker = null;
172195
configService = null;
173196
if (configWatcher != null) {

luckprefix-modern-paper/src/main/java/de/eztxm/luckprefix/command/subcommand/ReloadConfigsSubCommand.java

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2,20 +2,11 @@
22

33
import de.eztxm.luckprefix.LuckPrefix;
44
import de.eztxm.luckprefix.common.config.ConfigService;
5-
import de.eztxm.luckprefix.common.config.DatabaseConfig;
6-
import de.eztxm.luckprefix.common.config.GroupsConfig;
75
import de.eztxm.luckprefix.common.config.MainConfig;
8-
import de.eztxm.luckprefix.util.GroupManager;
6+
import de.eztxm.luckprefix.group.GroupManager;
97
import de.eztxm.luckprefix.util.Text;
108
import lombok.SneakyThrows;
119
import net.kyori.adventure.audience.Audience;
12-
import org.bukkit.Bukkit;
13-
import org.bukkit.entity.Player;
14-
import org.bukkit.scoreboard.Team;
15-
16-
import java.io.File;
17-
import java.util.ArrayList;
18-
import java.util.List;
1910

2011
public class ReloadConfigsSubCommand {
2112

luckprefix-modern-paper/src/main/java/de/eztxm/luckprefix/depend/LuckPrefixPlaceholderExtension.java

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package de.eztxm.luckprefix.depend;
22

33
import de.eztxm.luckprefix.LuckPrefix;
4-
import de.eztxm.luckprefix.util.GroupManager;
4+
import de.eztxm.luckprefix.group.GroupManager;
55
import io.papermc.paper.plugin.configuration.PluginMeta;
66
import me.clip.placeholderapi.expansion.PlaceholderExpansion;
77
import net.luckperms.api.LuckPerms;
@@ -39,22 +39,22 @@ public LuckPrefixPlaceholderExtension(PluginMeta pluginMeta) {
3939
String playerGroup = luckPerms.getUserManager().getUser(player.getUniqueId()).getPrimaryGroup().toLowerCase();
4040
switch (params.toLowerCase()) {
4141
case "prefix" -> {
42-
return groupManager.getPrefixByGroup().get(playerGroup);
42+
return groupManager.getPrefixByGroup(playerGroup);
4343
}
4444
case "suffix" -> {
45-
return groupManager.getSuffixByGroup().get(playerGroup);
45+
return groupManager.getSuffixByGroup(playerGroup);
4646
}
4747
case "tabformat" -> {
48-
return groupManager.getTabFormatByGroup().get(playerGroup);
48+
return groupManager.getTabFormatByGroup(playerGroup);
4949
}
5050
case "chatformat" -> {
51-
return groupManager.getChatFormatByGroup().get(playerGroup);
51+
return groupManager.getChatFormatByGroup(playerGroup);
5252
}
5353
case "sortid" -> {
54-
return groupManager.getSortIdByGroup().get(playerGroup);
54+
return groupManager.getSortIdAsStringByGroup(playerGroup);
5555
}
5656
case "namecolor" -> {
57-
return groupManager.getNameColorByGroup().get(playerGroup).asHexString();
57+
return groupManager.getNameColorByGroup(playerGroup).asHexString();
5858
}
5959
}
6060
return null;

0 commit comments

Comments
 (0)