Skip to content

Commit

Permalink
fix(interval): fix a bug that created an incorrect path and did not a…
Browse files Browse the repository at this point in the history
…llow scoreboard updating

feat: implement new java plugin main class
  • Loading branch information
jonakls committed Apr 9, 2023
1 parent 7df236e commit 76f4939
Showing 1 changed file with 29 additions and 27 deletions.
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
package com.xism4.sternalboard.managers;

import com.xism4.sternalboard.Scoreboards;
import com.xism4.sternalboard.SternalBoard;
import com.xism4.sternalboard.SternalBoardHandler;
import com.xism4.sternalboard.SternalBoardPlugin;
import org.bukkit.Bukkit;
import org.bukkit.configuration.ConfigurationSection;
import org.bukkit.configuration.file.FileConfiguration;
Expand All @@ -17,38 +17,38 @@

public class ScoreboardManager {

private final SternalBoard core;
private final SternalBoardPlugin plugin;
private static final ConcurrentMap<UUID, SternalBoardHandler> BOARDS_HANDLER = new ConcurrentHashMap<>();
private Integer updateTask;

public ScoreboardManager(SternalBoard core) {
this.core = core;
public ScoreboardManager(SternalBoardPlugin plugin) {
this.plugin = plugin;
}

public ConcurrentMap<UUID, SternalBoardHandler> getBoardsHandler() {
return BOARDS_HANDLER;
}

public void init() {
FileConfiguration config = core.getConfig();
FileConfiguration config = plugin.getConfig();
String scoreboardMode = config.getString("settings.mode", "NORMAL")
.toUpperCase(Locale.ROOT);
String intervalUpdatePath = "scoreboard-interval-update";
String intervalUpdatePath = "settings.scoreboard-interval-update";
int updateTime;

if (config.getInt(intervalUpdatePath) <= 0) {
config.set(intervalUpdatePath, 20);
core.saveConfig();
plugin.saveConfig();
}

updateTime = config.getInt(intervalUpdatePath);

if (core.isAnimationEnabled()) {
if (plugin.isAnimationEnabled()) {
return;
}

ConfigurationSection defaultSection = core.getConfig().getConfigurationSection("settings.scoreboard");
updateTask = core.getServer().getScheduler().runTaskTimerAsynchronously(core, () -> {
ConfigurationSection defaultSection = plugin.getConfig().getConfigurationSection("settings.scoreboard");
updateTask = plugin.getServer().getScheduler().runTaskTimerAsynchronously(plugin, () -> {
for (SternalBoardHandler board : BOARDS_HANDLER.values()) {
switch (scoreboardMode) {
case "WORLD":
Expand All @@ -59,7 +59,7 @@ public void init() {
return;
case "NORMAL":
default:
Scoreboards.updateFromSection(board, defaultSection);
Scoreboards.updateFromSection(plugin, board, defaultSection);
return;
}
}
Expand All @@ -68,13 +68,13 @@ public void init() {

public void setScoreboard(Player player) {
SternalBoardHandler handler = new SternalBoardHandler(player);
FileConfiguration config = core.getConfig();
ConfigurationSection defaultSection = core.getConfig().getConfigurationSection("settings.scoreboard");
FileConfiguration config = plugin.getConfig();
ConfigurationSection defaultSection = plugin.getConfig().getConfigurationSection("settings.scoreboard");

if (core.isAnimationEnabled() && config.getInt("settings.scoreboard.update") != 0)
if (plugin.isAnimationEnabled() && config.getInt("settings.scoreboard.update") != 0)
return;

Scoreboards.updateFromSection(handler, defaultSection);
Scoreboards.updateFromSection(plugin, handler, defaultSection);
BOARDS_HANDLER.put(player.getUniqueId(), handler);
}

Expand All @@ -91,7 +91,7 @@ public void reload() {
}

// TODO: 30/11/2022 view this condition, is it necessary?
if (core.isAnimationEnabled() && updateTask != null) {
if (plugin.isAnimationEnabled() && updateTask != null) {
for (SternalBoardHandler board : this.BOARDS_HANDLER.values()) {
board.updateLines("");
}
Expand All @@ -110,37 +110,37 @@ public void toggle(Player player) {

private void processWorldScoreboard(SternalBoardHandler handler) {
String worldName = handler.getPlayer().getWorld().getName();
ConfigurationSection worldSection = core.getConfig().getConfigurationSection("scoreboard-world." + worldName);
ConfigurationSection worldSection = plugin.getConfig().getConfigurationSection("scoreboard-world." + worldName);

if (worldSection == null) {
Scoreboards.updateFromSection(handler, core.getConfig().getConfigurationSection("settings.scoreboard"));
Scoreboards.updateFromSection(plugin, handler, plugin.getConfig().getConfigurationSection("settings.scoreboard"));
return;
}

Scoreboards.updateFromSection(handler, worldSection);
Scoreboards.updateFromSection(plugin, handler, worldSection);
}

private void processPermissionScoreboard(SternalBoardHandler handler) {
Set<String> permissions = Objects.requireNonNull(core.getConfig().getConfigurationSection("scoreboard-permission"))
Set<String> permissions = Objects.requireNonNull(plugin.getConfig().getConfigurationSection("scoreboard-permission"))
.getKeys(true);

String nodeSection;
String permissionNode;
ConfigurationSection permissionSection = null;
for (String key : permissions) {
nodeSection = core.getConfig().getString("scoreboard-permission." + key + ".node");
if (nodeSection == null) continue;
if (handler.getPlayer().hasPermission(nodeSection)) {
permissionSection = core.getConfig().getConfigurationSection("scoreboard-permission." + key);
permissionNode = plugin.getConfig().getString("scoreboard-permission." + key + ".node");
if (permissionNode == null) continue;
if (handler.getPlayer().hasPermission(permissionNode)) {
permissionSection = plugin.getConfig().getConfigurationSection("scoreboard-permission." + key);
break;
}
}

if (permissionSection == null) {
Scoreboards.updateFromSection(handler, core.getConfig().getConfigurationSection("settings.scoreboard"));
Scoreboards.updateFromSection(plugin, handler, plugin.getConfig().getConfigurationSection("settings.scoreboard"));
return;
}

Scoreboards.updateFromSection(handler, permissionSection);
Scoreboards.updateFromSection(plugin, handler, permissionSection);
}

public static SternalBoardHandler fromUUID(String id) {
Expand All @@ -153,4 +153,6 @@ public static void updateHandler(SternalBoardHandler handler) {
}
BOARDS_HANDLER.put(handler.getPlayer().getUniqueId(), handler);
}


}

0 comments on commit 76f4939

Please sign in to comment.