Skip to content

Commit

Permalink
Lots of performance improvements
Browse files Browse the repository at this point in the history
  • Loading branch information
Despical committed Sep 4, 2023
1 parent 22ac652 commit 6c255b3
Show file tree
Hide file tree
Showing 24 changed files with 132 additions and 176 deletions.
27 changes: 14 additions & 13 deletions src/main/java/me/despical/kotl/Main.java
Original file line number Diff line number Diff line change
Expand Up @@ -26,26 +26,23 @@
import me.despical.commons.util.Collections;
import me.despical.commons.util.UpdateChecker;
import me.despical.kotl.api.StatsStorage;
import me.despical.kotl.arena.Arena;
import me.despical.kotl.arena.ArenaRegistry;
import me.despical.kotl.command.AbstractCommand;
import me.despical.kotl.event.ListenerAdapter;
import me.despical.kotl.handler.ChatManager;
import me.despical.kotl.handler.PlaceholderManager;
import me.despical.kotl.handler.language.LanguageManager;
import me.despical.kotl.handler.rewards.RewardsFactory;
import me.despical.kotl.commands.AbstractCommand;
import me.despical.kotl.events.ListenerAdapter;
import me.despical.kotl.handlers.ChatManager;
import me.despical.kotl.handlers.PlaceholderManager;
import me.despical.kotl.handlers.language.LanguageManager;
import me.despical.kotl.handlers.rewards.RewardsFactory;
import me.despical.kotl.user.User;
import me.despical.kotl.user.UserManager;
import me.despical.kotl.user.data.MysqlManager;
import me.despical.kotl.util.CuboidSelector;
import org.bstats.bukkit.Metrics;
import org.bstats.charts.SimplePie;
import org.bukkit.entity.Player;
import org.bukkit.plugin.java.JavaPlugin;
import org.jetbrains.annotations.NotNull;

import java.io.File;
import java.util.logging.Logger;

/**
* @author Despical
Expand Down Expand Up @@ -80,9 +77,9 @@ public void onDisable() {
database.shutdownConnPool();
}

for (Arena arena : arenaRegistry.getArenas()) {
for (Player player : arena.getPlayers()) {
if (getConfigPreferences().getOption(ConfigPreferences.Option.INVENTORY_MANAGER_ENABLED)) {
for (final var arena : arenaRegistry.getArenas()) {
for (final var player : arena.getPlayers()) {
if (getOption(ConfigPreferences.Option.INVENTORY_MANAGER_ENABLED)) {
InventorySerializer.loadInventory(this, player);
} else {
player.getInventory().clear();
Expand Down Expand Up @@ -132,7 +129,7 @@ private void checkUpdate() {

UpdateChecker.init(this, 80686).requestUpdateCheck().whenComplete((result, exception) -> {
if (result.requiresUpdate()) {
final Logger logger = getLogger();
final var logger = getLogger();

logger.info("Found a new version available: v" + result.getNewestVersion());
logger.info("Download it on SpigotMC:");
Expand Down Expand Up @@ -184,6 +181,10 @@ public ArenaRegistry getArenaRegistry() {
return arenaRegistry;
}

public boolean getOption(ConfigPreferences.Option option) {
return configPreferences.getOption(option);
}

private void saveAllUserStatistics() {
for (final var player : getServer().getOnlinePlayers()) {
final var user = userManager.getUser(player);
Expand Down
28 changes: 13 additions & 15 deletions src/main/java/me/despical/kotl/arena/Arena.java
Original file line number Diff line number Diff line change
Expand Up @@ -26,8 +26,8 @@
import me.despical.kotl.Main;
import me.despical.kotl.arena.managers.BossBarManager;
import me.despical.kotl.arena.managers.ScoreboardManager;
import me.despical.kotl.handler.ChatManager;
import me.despical.kotl.handler.rewards.Reward;
import me.despical.kotl.handlers.ChatManager;
import me.despical.kotl.handlers.rewards.Reward;
import org.apache.commons.lang.math.IntRange;
import org.bukkit.GameMode;
import org.bukkit.Location;
Expand Down Expand Up @@ -74,7 +74,7 @@ public Arena(String id) {
this.scoreboardManager = new ScoreboardManager(plugin, this);
this.arenaPlate = XMaterial.OAK_PRESSURE_PLATE;

if (plugin.getConfigPreferences().getOption(ConfigPreferences.Option.BOSS_BAR_ENABLED)) {
if (plugin.getOption(ConfigPreferences.Option.BOSS_BAR_ENABLED)) {
if (!ReflectionUtils.supports(9)) return;

this.bossBarManager = new BossBarManager(plugin);
Expand Down Expand Up @@ -264,28 +264,27 @@ public void addPlayer(Player player) {

AttributeUtils.setAttackCooldown(player, plugin.getConfig().getDouble("Hit-Cooldown-Delay", 4));

final var preferences = plugin.getConfigPreferences();
final var user = plugin.getUserManager().getUser(player);

if (preferences.getOption(ConfigPreferences.Option.INVENTORY_MANAGER_ENABLED)) {
if (plugin.getOption(ConfigPreferences.Option.INVENTORY_MANAGER_ENABLED)) {
InventorySerializer.saveInventoryToFile(plugin, player);
}

if (preferences.getOption(ConfigPreferences.Option.HEAL_PLAYER)) {
if (plugin.getOption(ConfigPreferences.Option.HEAL_PLAYER)) {
AttributeUtils.healPlayer(player);
}

if (preferences.getOption(ConfigPreferences.Option.SCOREBOARD_ENABLED)) {
if (plugin.getOption(ConfigPreferences.Option.SCOREBOARD_ENABLED)) {
user.cacheScoreboard();

scoreboardManager.createScoreboard(player);
}

if (preferences.getOption(ConfigPreferences.Option.CLEAR_INVENTORY)) {
if (plugin.getOption(ConfigPreferences.Option.CLEAR_INVENTORY)) {
player.getInventory().clear();
}

if (preferences.getOption(ConfigPreferences.Option.CLEAR_EFFECTS)) {
if (plugin.getOption(ConfigPreferences.Option.CLEAR_EFFECTS)) {
player.getActivePotionEffects().forEach(effect -> player.removePotionEffect(effect.getType()));
}

Expand All @@ -294,7 +293,7 @@ public void addPlayer(Player player) {

doBarAction(player, 1);

if (preferences.getOption(ConfigPreferences.Option.JOIN_NOTIFY)) {
if (plugin.getOption(ConfigPreferences.Option.JOIN_NOTIFY)) {
plugin.getChatManager().broadcastAction(this, player, ChatManager.ActionType.JOIN);
}

Expand All @@ -304,27 +303,26 @@ public void addPlayer(Player player) {
public void removePlayer(Player player) {
if (player == null) return;

final var preferences = plugin.getConfigPreferences();
final var user = plugin.getUserManager().getUser(player);
user.performReward(Reward.RewardType.LEAVE);

players.remove(player);

if (preferences.getOption(ConfigPreferences.Option.CLEAR_INVENTORY)) {
if (plugin.getOption(ConfigPreferences.Option.CLEAR_INVENTORY)) {
player.getInventory().clear();
}

if (preferences.getOption(ConfigPreferences.Option.INVENTORY_MANAGER_ENABLED)) {
if (plugin.getOption(ConfigPreferences.Option.INVENTORY_MANAGER_ENABLED)) {
InventorySerializer.loadInventory(plugin, player);
}

if (preferences.getOption(ConfigPreferences.Option.SCOREBOARD_ENABLED)) {
if (plugin.getOption(ConfigPreferences.Option.SCOREBOARD_ENABLED)) {
scoreboardManager.removeScoreboard(player);

user.removeScoreboard();
}

if (preferences.getOption(ConfigPreferences.Option.LEAVE_NOTIFY)) {
if (plugin.getOption(ConfigPreferences.Option.LEAVE_NOTIFY)) {
plugin.getChatManager().broadcastAction(this, player, ChatManager.ActionType.LEAVE);
}

Expand Down
14 changes: 7 additions & 7 deletions src/main/java/me/despical/kotl/arena/ArenaEvents.java
Original file line number Diff line number Diff line change
Expand Up @@ -22,9 +22,9 @@
import me.despical.kotl.ConfigPreferences;
import me.despical.kotl.Main;
import me.despical.kotl.api.StatsStorage;
import me.despical.kotl.event.ListenerAdapter;
import me.despical.kotl.handler.ChatManager.ActionType;
import me.despical.kotl.handler.rewards.Reward;
import me.despical.kotl.events.ListenerAdapter;
import me.despical.kotl.handlers.ChatManager.ActionType;
import me.despical.kotl.handlers.rewards.Reward;
import org.bukkit.Material;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
Expand Down Expand Up @@ -70,7 +70,7 @@ public void onInteractWithPlate(PlayerInteractEvent event) {

if (event.getAction() == Action.PHYSICAL) {
if (event.getClickedBlock().getType() == arena.getArenaPlate().parseMaterial()) {
if (arena.getKing() != null && arena.getKing().equals(player.getName()) && (arena.getPlayers().size() == 1 || !plugin.getConfigPreferences().getOption(ConfigPreferences.Option.BECOME_KING_IN_A_ROW))) return;
if (arena.getKing() != null && arena.getKing().equals(player.getName()) && (arena.getPlayers().size() == 1 || !plugin.getOption(ConfigPreferences.Option.BECOME_KING_IN_A_ROW))) return;
arena.setKing(player.getName());

chatManager.broadcastAction(arena, player, ActionType.NEW_KING);
Expand Down Expand Up @@ -100,7 +100,7 @@ public void onInteractWithPlate(PlayerInteractEvent event) {
public void onInteractWithDeathBlocks(PlayerInteractEvent event) {
var player = event.getPlayer();

if (!plugin.getConfigPreferences().getOption(ConfigPreferences.Option.DEATH_BLOCKS_ENABLED)) {
if (!plugin.getOption(ConfigPreferences.Option.DEATH_BLOCKS_ENABLED)) {
return;
}

Expand All @@ -110,7 +110,7 @@ public void onInteractWithDeathBlocks(PlayerInteractEvent event) {
if (arena == null) return;

if (event.getAction() == Action.RIGHT_CLICK_BLOCK || event.getAction() == Action.LEFT_CLICK_BLOCK) {
for (String material : plugin.getConfig().getStringList("Death-Blocks.Blacklisted-Blocks")) {
for (final var material : plugin.getConfig().getStringList("Death-Blocks.Blacklisted-Blocks")) {
if (event.getClickedBlock().getType() == Material.valueOf(material.toUpperCase())) {
arena.doBarAction(player, 0);
arena.broadcastMessage(chatManager.prefixedMessage("in_game.clicked_death_block").replace("%player%", player.getName()));
Expand Down Expand Up @@ -147,7 +147,7 @@ private Arena isInArea(final Player player) {
}

private void spawnFireworks(Arena arena, Player player) {
if (!plugin.getConfigPreferences().getOption(ConfigPreferences.Option.FIREWORKS_ON_NEW_KING)) return;
if (!plugin.getOption(ConfigPreferences.Option.FIREWORKS_ON_NEW_KING)) return;

new BukkitRunnable() {

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@
import me.despical.kotl.Main;
import me.despical.kotl.api.StatsStorage;
import me.despical.kotl.arena.Arena;
import me.despical.kotl.handler.ChatManager;
import me.despical.kotl.handlers.ChatManager;
import org.bukkit.entity.Player;

import java.util.HashSet;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
package me.despical.kotl.command;
package me.despical.kotl.commands;

import me.despical.commons.configuration.ConfigUtils;
import me.despical.kotl.Main;
import me.despical.kotl.handler.ChatManager;
import me.despical.kotl.handlers.ChatManager;
import org.bukkit.configuration.file.FileConfiguration;

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/

package me.despical.kotl.command;
package me.despical.kotl.commands;

import me.despical.commandframework.Command;
import me.despical.commandframework.CommandArguments;
Expand All @@ -28,7 +28,7 @@
import me.despical.kotl.ConfigPreferences;
import me.despical.kotl.Main;
import me.despical.kotl.arena.Arena;
import me.despical.kotl.handler.setup.SetupInventory;
import me.despical.kotl.handlers.setup.SetupInventory;
import net.md_5.bungee.api.ChatColor;
import net.md_5.bungee.api.chat.ClickEvent;
import net.md_5.bungee.api.chat.ComponentBuilder;
Expand All @@ -44,7 +44,7 @@
import java.util.stream.Collectors;

import static me.despical.commandframework.Command.SenderType.PLAYER;
import static me.despical.kotl.handler.setup.SetupInventory.TUTORIAL_VIDEO;
import static me.despical.kotl.handlers.setup.SetupInventory.TUTORIAL_VIDEO;

/**
* @author Despical
Expand Down Expand Up @@ -73,8 +73,8 @@ public void createCommand(CommandArguments arguments) {
return;
}

String arg = arguments.getArgument(0);
Player player = arguments.getSender();
final var arg = arguments.getArgument(0);
final Player player = arguments.getSender();

if (arg.equals("default")) {
player.sendMessage(chatManager.prefixedRawMessage("&cYou can not create an arena named default!"));
Expand Down Expand Up @@ -128,8 +128,8 @@ private void setupDefaultConfiguration(String id) {
min = 1
)
public void deleteCommand(CommandArguments arguments) {
CommandSender sender = arguments.getSender();
Arena arena = plugin.getArenaRegistry().getArena(arguments.getArgument(0));
final var sender = arguments.getSender();
final var arena = plugin.getArenaRegistry().getArena(arguments.getArgument(0));

if (arena == null) {
sender.sendMessage(chatManager.prefixedMessage("commands.no_arena_like_that"));
Expand All @@ -148,10 +148,10 @@ public void deleteCommand(CommandArguments arguments) {
if (!arena.getPlayers().isEmpty()) {
arena.getScoreboardManager().stopAllScoreboards();

for (Player player : arena.getPlayers()) {
for (final var player : arena.getPlayers()) {
player.setWalkSpeed(.2F);

if (plugin.getConfigPreferences().getOption(ConfigPreferences.Option.INVENTORY_MANAGER_ENABLED)) {
if (plugin.getOption(ConfigPreferences.Option.INVENTORY_MANAGER_ENABLED)) {
InventorySerializer.loadInventory(plugin, player);
} else {
player.getInventory().clear();
Expand Down Expand Up @@ -184,15 +184,14 @@ public void deleteCommand(CommandArguments arguments) {
senderType = PLAYER
)
public void editCommand(CommandArguments arguments) {
Player player = arguments.getSender();
Arena arena = plugin.getArenaRegistry().getArena(arguments.getArgument(0));
final var arena = plugin.getArenaRegistry().getArena(arguments.getArgument(0));

if (arena == null) {
player.sendMessage(chatManager.prefixedMessage("commands.no_arena_like_that"));
arguments.sendMessage(chatManager.prefixedMessage("commands.no_arena_like_that"));
return;
}

new SetupInventory(arena, player).openInventory();
new SetupInventory(arena, arguments.getSender()).openInventory();
}

@Command(
Expand All @@ -204,11 +203,11 @@ public void editCommand(CommandArguments arguments) {
public void reloadCommand(CommandArguments arguments) {
chatManager.reload();

for (Arena arena : plugin.getArenaRegistry().getArenas()) {
for (Player player : arena.getPlayers()) {
for (final var arena : plugin.getArenaRegistry().getArenas()) {
for (final var player : arena.getPlayers()) {
player.setWalkSpeed(.2F);

if (plugin.getConfigPreferences().getOption(ConfigPreferences.Option.INVENTORY_MANAGER_ENABLED)) {
if (plugin.getOption(ConfigPreferences.Option.INVENTORY_MANAGER_ENABLED)) {
InventorySerializer.loadInventory(plugin, player);
} else {
player.getInventory().clear();
Expand Down Expand Up @@ -284,14 +283,14 @@ public void helpCommand(CommandArguments arguments) {
desc = "Shows all of the existing arenas"
)
public void listCommand(CommandArguments arguments) {
final Set<Arena> arenas = plugin.getArenaRegistry().getArenas();
final var arenas = plugin.getArenaRegistry().getArenas();

if (arenas.isEmpty()) {
arguments.sendMessage(chatManager.prefixedMessage("commands.list_command.no_arenas_created"));
return;
}

String list = arenas.stream().map(Arena::getId).collect(Collectors.joining(", "));
var list = arenas.stream().map(Arena::getId).collect(Collectors.joining(", "));
arguments.sendMessage(chatManager.prefixedMessage("commands.list_command.format").replace("%list%", list));
}

Expand All @@ -303,15 +302,15 @@ public void listCommand(CommandArguments arguments) {
min = 1
)
public void kickCommand(CommandArguments arguments) {
final String target = arguments.getArgument(0);
final Player player = plugin.getServer().getPlayer(target);
final var target = arguments.getArgument(0);
final var player = plugin.getServer().getPlayer(target);

if (player == null) {
arguments.sendMessage(chatManager.prefixedMessage("commands.player_not_found"));
return;
}

final Arena arena = plugin.getArenaRegistry().getArena(player);
final var arena = plugin.getArenaRegistry().getArena(player);

if (arena == null) {
arguments.sendMessage(chatManager.prefixedMessage("commands.not_playing"));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/

package me.despical.kotl.command;
package me.despical.kotl.commands;

import me.despical.commandframework.Command;
import me.despical.commandframework.CommandArguments;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/

package me.despical.kotl.command;
package me.despical.kotl.commands;

import me.despical.commandframework.CommandArguments;
import me.despical.commandframework.Completer;
Expand Down
Loading

0 comments on commit 6c255b3

Please sign in to comment.