Skip to content
This repository has been archived by the owner on Jan 20, 2024. It is now read-only.

Commit

Permalink
Plugin: refactor FileManager and create FYamlConfiguration
Browse files Browse the repository at this point in the history
  • Loading branch information
TheFaser committed Aug 12, 2023
1 parent e05d87e commit 3d5c0e4
Show file tree
Hide file tree
Showing 50 changed files with 492 additions and 384 deletions.
24 changes: 2 additions & 22 deletions src/main/java/net/flectone/Main.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
package net.flectone;

import net.flectone.misc.commands.FTabCompleter;
import net.flectone.integrations.discordsrv.FDiscordSRV;
import net.flectone.integrations.expansions.FExpansion;
import net.flectone.integrations.luckperms.FLuckPerms;
Expand All @@ -12,6 +11,7 @@
import net.flectone.managers.FPlayerManager;
import net.flectone.managers.FileManager;
import net.flectone.managers.TickerManager;
import net.flectone.misc.commands.FTabCompleter;
import net.flectone.sqlite.Database;
import net.flectone.sqlite.SQLite;
import net.flectone.tickers.PlayerPingTicker;
Expand All @@ -23,18 +23,13 @@
import org.bukkit.event.Listener;
import org.bukkit.plugin.java.JavaPlugin;

import java.io.File;
import java.util.List;

public final class Main extends JavaPlugin {

public static boolean isHavePAPI = false;

public static boolean isHavePlasmoVoice = false;

public static boolean isHaveInteractiveChat = false;
public static FileManager config;
public static FileManager locale;
private static Main instance;
private Database database;

Expand All @@ -60,9 +55,7 @@ public void onEnable() {

instance = this;

config = new FileManager("config.yml");
locale = new FileManager("language/" + config.getString("language") + ".yml");
loadIcons();
FileManager.initialize();
FPlayerManager.setScoreBoard();

this.database = new SQLite(this);
Expand Down Expand Up @@ -98,19 +91,6 @@ private void registerClasses() {
});
}

private void loadIcons() {
String path = Main.getInstance().getDataFolder() + File.separator + "icons" + File.separator;

List<String> iconNames = Main.config.getStringList("server.icon.names");
iconNames.add("maintenance");

for (String iconName : iconNames) {
if (new File(path + iconName + ".png").exists()) continue;

Main.getInstance().saveResource("icons" + File.separator + iconName + ".png", false);
}
}

private void hookPlugins() {
if (Bukkit.getPluginManager().getPlugin("Vault") != null) {
FVault.register();
Expand Down
9 changes: 5 additions & 4 deletions src/main/java/net/flectone/commands/CommandAfk.java
Original file line number Diff line number Diff line change
@@ -1,10 +1,9 @@
package net.flectone.commands;

import net.flectone.Main;
import net.flectone.managers.FPlayerManager;
import net.flectone.misc.commands.FCommand;
import net.flectone.misc.entity.FPlayer;
import net.flectone.misc.commands.FTabCompleter;
import net.flectone.managers.FPlayerManager;
import net.flectone.misc.entity.FPlayer;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
Expand All @@ -13,6 +12,8 @@

import java.util.List;

import static net.flectone.managers.FileManager.locale;

public class CommandAfk implements FTabCompleter {

public static void setAfkFalse(@NotNull Player player) {
Expand All @@ -35,7 +36,7 @@ private static void setAfkAndSendMessage(@NotNull FCommand fCommand, boolean isA
fPlayer.setAfk(isAfk);

String afkSuffix = isAfk
? Main.locale.getFormatString("command.afk.suffix", fPlayer.getPlayer())
? locale.getFormatString("command.afk.suffix", fPlayer.getPlayer())
: "";

fPlayer.setAfkSuffix(afkSuffix);
Expand Down
7 changes: 4 additions & 3 deletions src/main/java/net/flectone/commands/CommandBall.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
package net.flectone.commands;

import net.flectone.Main;
import net.flectone.misc.commands.FCommand;
import net.flectone.misc.commands.FTabCompleter;
import net.flectone.utils.ObjectUtil;
Expand All @@ -13,6 +12,8 @@
import java.util.List;
import java.util.Random;

import static net.flectone.managers.FileManager.locale;

public class CommandBall implements FTabCompleter {

@Override
Expand All @@ -24,12 +25,12 @@ public boolean onCommand(@NotNull CommandSender commandSender, @NotNull Command
|| fCommand.isHaveCD()
|| fCommand.isMuted()) return true;

List<String> answers = Main.locale.getStringList("command.ball.format");
List<String> answers = locale.getStringList("command.ball.format");

Random random = new Random();
int randomPer = random.nextInt(0, answers.size());

String formatString = Main.locale.getString("command.ball.message")
String formatString = locale.getString("command.ball.message")
.replace("<player>", fCommand.getSenderName())
.replace("<answer>", answers.get(randomPer));

Expand Down
26 changes: 14 additions & 12 deletions src/main/java/net/flectone/commands/CommandBanlist.java
Original file line number Diff line number Diff line change
@@ -1,10 +1,9 @@
package net.flectone.commands;

import net.flectone.Main;
import net.flectone.managers.FPlayerManager;
import net.flectone.misc.commands.FCommand;
import net.flectone.misc.entity.FPlayer;
import net.flectone.misc.commands.FTabCompleter;
import net.flectone.managers.FPlayerManager;
import net.flectone.misc.entity.FPlayer;
import net.flectone.utils.ObjectUtil;
import net.md_5.bungee.api.chat.ClickEvent;
import net.md_5.bungee.api.chat.ComponentBuilder;
Expand All @@ -22,6 +21,9 @@
import java.util.List;
import java.util.Set;

import static net.flectone.managers.FileManager.locale;
import static net.flectone.managers.FileManager.config;

public class CommandBanlist implements FTabCompleter {

@Override
Expand All @@ -31,7 +33,7 @@ public boolean onCommand(@NotNull CommandSender commandSender, @NotNull Command

Set<FPlayer> bannedPlayers = FPlayerManager.getBannedPlayers();

int perPage = Main.config.getInt("command.banlist.per-page");
int perPage = config.getInt("command.banlist.per-page");

int lastPage = (int) Math.ceil((double) bannedPlayers.size() / perPage);

Expand All @@ -51,12 +53,12 @@ public boolean onCommand(@NotNull CommandSender commandSender, @NotNull Command

ComponentBuilder componentBuilder = new ComponentBuilder();

String title = Main.locale.getFormatString("command.banlist.title", commandSender)
String title = locale.getFormatString("command.banlist.title", commandSender)
.replace("<count>", String.valueOf(bannedPlayers.size()));

componentBuilder.append(TextComponent.fromLegacyText(title)).append("\n\n");

String unbanButton = Main.locale.getFormatString("command.banlist.unban-button", commandSender);
String unbanButton = locale.getFormatString("command.banlist.unban-button", commandSender);

int page = strings.length > 0 ? Math.max(1, Integer.parseInt(strings[0])) : 1;
page = Math.min(lastPage, page);
Expand All @@ -65,13 +67,13 @@ public boolean onCommand(@NotNull CommandSender commandSender, @NotNull Command
String playerBanFormat = "command.banlist.player-ban";
if (fPlayer.isPermanentlyBanned()) playerBanFormat += "-permanently";

playerBanFormat = Main.locale.getFormatString(playerBanFormat, commandSender)
playerBanFormat = locale.getFormatString(playerBanFormat, commandSender)
.replace("<unban>", unbanButton)
.replace("<player>", fPlayer.getRealName())
.replace("<reason>", fPlayer.getBanReason())
.replace("<time>", ObjectUtil.convertTimeToString(fPlayer.getTempBanTime()));

String unbanHover = Main.locale.getFormatString("command.banlist.unban-hover", commandSender)
String unbanHover = locale.getFormatString("command.banlist.unban-hover", commandSender)
.replace("<player>", fPlayer.getRealName());

TextComponent textComponent = new TextComponent(TextComponent.fromLegacyText(playerBanFormat));
Expand All @@ -81,7 +83,7 @@ public boolean onCommand(@NotNull CommandSender commandSender, @NotNull Command
componentBuilder.append(textComponent).append("\n\n");
});

String pageLine = Main.locale.getFormatString("command.banlist.page-line", commandSender)
String pageLine = locale.getFormatString("command.banlist.page-line", commandSender)
.replace("<page>", String.valueOf(page))
.replace("<last-page>", String.valueOf(lastPage));

Expand All @@ -95,11 +97,11 @@ public boolean onCommand(@NotNull CommandSender commandSender, @NotNull Command
switch (part) {
case "<prev-page>" -> {
pageNumber--;
button = Main.locale.getFormatString("command.banlist.prev-page", commandSender);
button = locale.getFormatString("command.banlist.prev-page", commandSender);
}
case "<next-page>" -> {
pageNumber++;
button = Main.locale.getFormatString("command.banlist.next-page", commandSender);
button = locale.getFormatString("command.banlist.next-page", commandSender);
}
}

Expand All @@ -125,7 +127,7 @@ public List<String> onTabComplete(@NotNull CommandSender commandSender, @NotNull
wordsList.clear();

if (strings.length == 1) {
int perPage = Main.config.getInt("command.banlist.per-page");
int perPage = config.getInt("command.banlist.per-page");

int lastPage = (int) Math.ceil((double) FPlayerManager.getBannedPlayers().size() / perPage);

Expand Down
5 changes: 3 additions & 2 deletions src/main/java/net/flectone/commands/CommandBroadcast.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
package net.flectone.commands;

import net.flectone.Main;
import net.flectone.misc.commands.FCommand;
import net.flectone.misc.commands.FTabCompleter;
import net.flectone.utils.ObjectUtil;
Expand All @@ -14,6 +13,8 @@
import java.util.HashSet;
import java.util.List;

import static net.flectone.managers.FileManager.locale;

public class CommandBroadcast implements FTabCompleter {

@Override
Expand All @@ -25,7 +26,7 @@ public boolean onCommand(@NotNull CommandSender commandSender, @NotNull Command
|| fCommand.isHaveCD()
|| fCommand.isMuted()) return true;

String formatString = Main.locale.getString("command.broadcast.message")
String formatString = locale.getString("command.broadcast.message")
.replace("<player>", fCommand.getSenderName());

fCommand.sendGlobalMessage(new HashSet<>(Bukkit.getOnlinePlayers()), formatString, ObjectUtil.toString(strings), null, false);
Expand Down
20 changes: 12 additions & 8 deletions src/main/java/net/flectone/commands/CommandChat.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
package net.flectone.commands;

import net.flectone.Main;
import net.flectone.misc.commands.FCommand;
import net.flectone.misc.commands.FTabCompleter;
import org.bukkit.command.Command;
Expand All @@ -10,6 +9,8 @@

import java.util.List;

import static net.flectone.managers.FileManager.config;

public class CommandChat implements FTabCompleter {

@Override
Expand All @@ -32,7 +33,7 @@ public boolean onCommand(@NotNull CommandSender commandSender, @NotNull Command

boolean isSwitch = chatParam.equals("switch");

if (isSwitch && !Main.config.getBoolean("chat.global.enable")) {
if (isSwitch && !config.getBoolean("chat.global.enable")) {
fCommand.sendMeMessage("command.disabled");
return true;
}
Expand All @@ -55,12 +56,15 @@ public boolean onCommand(@NotNull CommandSender commandSender, @NotNull Command
public List<String> onTabComplete(@NotNull CommandSender commandSender, @NotNull Command command, @NotNull String s, @NotNull String[] strings) {
wordsList.clear();

if (strings.length == 1) {
isStartsWith(strings[0], "switch");
isStartsWith(strings[0], "hide");
} else if (strings.length == 2) {
isStartsWith(strings[1], "local");
isStartsWith(strings[1], "global");
switch (strings.length) {
case 1 -> {
isStartsWith(strings[0], "switch");
isStartsWith(strings[0], "hide");
}
case 2 -> {
isStartsWith(strings[1], "local");
isStartsWith(strings[1], "global");
}
}

return wordsList;
Expand Down
15 changes: 10 additions & 5 deletions src/main/java/net/flectone/commands/CommandChatcolor.java
Original file line number Diff line number Diff line change
@@ -1,10 +1,9 @@
package net.flectone.commands;

import net.flectone.Main;
import net.flectone.managers.FPlayerManager;
import net.flectone.misc.commands.FCommand;
import net.flectone.misc.entity.FPlayer;
import net.flectone.misc.commands.FTabCompleter;
import net.flectone.managers.FPlayerManager;
import net.flectone.misc.entity.FPlayer;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.jetbrains.annotations.NotNull;
Expand All @@ -13,11 +12,17 @@
import java.util.Collections;
import java.util.List;

import static net.flectone.managers.FileManager.config;
import static net.flectone.managers.FileManager.locale;

public class CommandChatcolor implements FTabCompleter {

@NotNull
public static String[] getDefaultColors() {
return new String[]{Main.config.getString("color.first"), Main.config.getString("color.second")};
return new String[]{
config.getString("color.first"),
config.getString("color.second")
};
}

@Override
Expand Down Expand Up @@ -60,7 +65,7 @@ private void setColors(@NotNull FPlayer fPlayer, @NotNull String[] strings) {

if (fPlayer.isOnline() && fPlayer.getPlayer() != null) {
fPlayer.setDisplayName();
fPlayer.getPlayer().sendMessage(Main.locale.getFormatString("command.chatcolor.message", fPlayer.getPlayer()));
fPlayer.getPlayer().sendMessage(locale.getFormatString("command.chatcolor.message", fPlayer.getPlayer()));
}
}

Expand Down

0 comments on commit 3d5c0e4

Please sign in to comment.