mirror of
https://github.com/Auxilor/EcoSkills.git
synced 2026-01-02 05:46:57 +00:00
Improved handlers
This commit is contained in:
@@ -5,11 +5,11 @@ import com.willfp.eco.core.command.impl.PluginCommand;
|
||||
import com.willfp.eco.core.integrations.IntegrationLoader;
|
||||
import com.willfp.ecoskills.commands.CommandEcoskills;
|
||||
import com.willfp.ecoskills.commands.CommandSkills;
|
||||
import com.willfp.ecoskills.data.DataRunnable;
|
||||
import com.willfp.ecoskills.data.SaveHandler;
|
||||
import com.willfp.ecoskills.data.DataListener;
|
||||
import com.willfp.ecoskills.config.DataYml;
|
||||
import com.willfp.ecoskills.config.EffectsYml;
|
||||
import com.willfp.ecoskills.data.LeaderboardRunnable;
|
||||
import com.willfp.ecoskills.data.LeaderboardHandler;
|
||||
import com.willfp.ecoskills.effects.Effect;
|
||||
import com.willfp.ecoskills.effects.Effects;
|
||||
import com.willfp.ecoskills.skills.Skill;
|
||||
@@ -66,9 +66,10 @@ public class EcoSkillsPlugin extends EcoPlugin {
|
||||
this.getEventManager().unregisterListener(skill);
|
||||
this.getEventManager().registerListener(skill);
|
||||
}
|
||||
SaveHandler.Companion.save(this);
|
||||
|
||||
this.getScheduler().runTimer(new DataRunnable(this), 20000, 20000);
|
||||
this.getScheduler().runTimer(new LeaderboardRunnable(this), 50, 2400);
|
||||
this.getScheduler().runTimer(new SaveHandler.Runnable(this), 20000, 20000);
|
||||
this.getScheduler().runTimer(new LeaderboardHandler.Runnable(), 50, 2400);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -4,17 +4,12 @@ import com.willfp.eco.core.EcoPlugin
|
||||
import com.willfp.eco.core.command.CommandHandler
|
||||
import com.willfp.eco.core.command.impl.Subcommand
|
||||
import com.willfp.eco.util.StringUtils
|
||||
import com.willfp.ecoskills.EcoSkillsPlugin
|
||||
import com.willfp.ecoskills.data.LeaderboardRunnable
|
||||
import com.willfp.ecoskills.data.LeaderboardHandler
|
||||
import com.willfp.ecoskills.getTotalSkillLevel
|
||||
import org.bukkit.Bukkit
|
||||
import org.bukkit.OfflinePlayer
|
||||
import org.bukkit.command.CommandSender
|
||||
import org.bukkit.entity.Player
|
||||
import java.util.*
|
||||
import kotlin.collections.ArrayList
|
||||
import kotlin.collections.HashMap
|
||||
import kotlin.collections.set
|
||||
import kotlin.math.ceil
|
||||
|
||||
|
||||
@@ -33,7 +28,7 @@ class CommandTop(plugin: EcoPlugin) :
|
||||
page = args[0].toIntOrNull() ?: 1
|
||||
}
|
||||
|
||||
val top = LeaderboardRunnable.sortedLeaderboard
|
||||
val top = LeaderboardHandler.sortedLeaderboard
|
||||
|
||||
val maxPage = ceil(top.size / 10.0).toInt()
|
||||
if (maxPage < page) {
|
||||
|
||||
@@ -1,24 +0,0 @@
|
||||
package com.willfp.ecoskills.data
|
||||
|
||||
import com.willfp.eco.core.EcoPlugin
|
||||
import com.willfp.ecoskills.EcoSkillsPlugin
|
||||
import com.willfp.ecoskills.PlayerHelper
|
||||
import org.bukkit.Bukkit
|
||||
|
||||
class DataRunnable (
|
||||
private val plugin: EcoSkillsPlugin
|
||||
) : Runnable {
|
||||
override fun run() {
|
||||
if (Bukkit.getOnlinePlayers().isEmpty()) {
|
||||
return
|
||||
}
|
||||
if (plugin.configYml.getBool("log-autosaves")) {
|
||||
plugin.logger.info("Auto-Saving player data!")
|
||||
}
|
||||
plugin.dataYml.save()
|
||||
PlayerHelper.expMultiplierCache.clear()
|
||||
if (plugin.configYml.getBool("log-autosaves")) {
|
||||
plugin.logger.info("Saved data!")
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,39 @@
|
||||
package com.willfp.ecoskills.data
|
||||
|
||||
import com.willfp.eco.core.EcoPlugin
|
||||
import com.willfp.ecoskills.EcoSkillsPlugin
|
||||
import com.willfp.ecoskills.PlayerHelper
|
||||
import com.willfp.ecoskills.getTotalSkillLevel
|
||||
import org.bukkit.Bukkit
|
||||
import org.bukkit.OfflinePlayer
|
||||
import java.util.*
|
||||
import kotlin.collections.ArrayList
|
||||
import kotlin.collections.HashMap
|
||||
|
||||
class LeaderboardHandler (
|
||||
private val plugin: EcoSkillsPlugin
|
||||
) {
|
||||
companion object {
|
||||
val sortedLeaderboard = ArrayList<OfflinePlayer>()
|
||||
}
|
||||
|
||||
class Runnable : java.lang.Runnable {
|
||||
override fun run() {
|
||||
val temp = HashMap<OfflinePlayer, Int>()
|
||||
val top = ArrayList<OfflinePlayer>()
|
||||
|
||||
for (player in Bukkit.getOfflinePlayers()) {
|
||||
temp[player] = 10000 - player.getTotalSkillLevel()
|
||||
}
|
||||
|
||||
val temp2 = temp.toList().sortedBy { (_, value) -> value }.toMap()
|
||||
|
||||
for (entry in temp2) {
|
||||
top.add(entry.key)
|
||||
}
|
||||
|
||||
sortedLeaderboard.clear()
|
||||
sortedLeaderboard.addAll(top)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,37 +0,0 @@
|
||||
package com.willfp.ecoskills.data
|
||||
|
||||
import com.willfp.eco.core.EcoPlugin
|
||||
import com.willfp.ecoskills.EcoSkillsPlugin
|
||||
import com.willfp.ecoskills.PlayerHelper
|
||||
import com.willfp.ecoskills.getTotalSkillLevel
|
||||
import org.bukkit.Bukkit
|
||||
import org.bukkit.OfflinePlayer
|
||||
import java.util.*
|
||||
import kotlin.collections.ArrayList
|
||||
import kotlin.collections.HashMap
|
||||
|
||||
class LeaderboardRunnable (
|
||||
private val plugin: EcoSkillsPlugin
|
||||
) : Runnable {
|
||||
override fun run() {
|
||||
val temp = HashMap<OfflinePlayer, Int>()
|
||||
val top = ArrayList<OfflinePlayer>()
|
||||
|
||||
for (player in Bukkit.getOfflinePlayers()) {
|
||||
temp[player] = 10000 - player.getTotalSkillLevel()
|
||||
}
|
||||
|
||||
val temp2 = temp.toList().sortedBy { (_, value) -> value }.toMap()
|
||||
|
||||
for (entry in temp2) {
|
||||
top.add(entry.key)
|
||||
}
|
||||
|
||||
sortedLeaderboard.clear()
|
||||
sortedLeaderboard.addAll(top)
|
||||
}
|
||||
|
||||
companion object {
|
||||
val sortedLeaderboard = ArrayList<OfflinePlayer>()
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,34 @@
|
||||
package com.willfp.ecoskills.data
|
||||
|
||||
import com.willfp.eco.core.EcoPlugin
|
||||
import com.willfp.ecoskills.EcoSkillsPlugin
|
||||
import com.willfp.ecoskills.PlayerHelper
|
||||
import com.willfp.ecoskills.getTotalSkillLevel
|
||||
import org.bukkit.Bukkit
|
||||
import org.bukkit.OfflinePlayer
|
||||
|
||||
class SaveHandler {
|
||||
companion object {
|
||||
fun save(plugin: EcoSkillsPlugin) {
|
||||
if (Bukkit.getOnlinePlayers().isEmpty()) {
|
||||
return
|
||||
}
|
||||
if (plugin.configYml.getBool("log-autosaves")) {
|
||||
plugin.logger.info("Auto-Saving player data!")
|
||||
}
|
||||
plugin.dataYml.save()
|
||||
PlayerHelper.expMultiplierCache.clear()
|
||||
if (plugin.configYml.getBool("log-autosaves")) {
|
||||
plugin.logger.info("Saved data!")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
class Runnable(
|
||||
private val plugin: EcoSkillsPlugin
|
||||
) : java.lang.Runnable {
|
||||
override fun run() {
|
||||
save(plugin)
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user