mirror of
				https://github.com/mcMMO-Dev/mcMMO.git
				synced 2025-11-03 18:43:43 +01:00 
			
		
		
		
	Remove Static Abuse - Database Tasks
This commit is contained in:
		@@ -5,7 +5,6 @@ import com.gmail.nossr50.datatypes.skills.SubSkillType;
 | 
				
			|||||||
import com.gmail.nossr50.datatypes.skills.subskills.AbstractSubSkill;
 | 
					import com.gmail.nossr50.datatypes.skills.subskills.AbstractSubSkill;
 | 
				
			||||||
import com.gmail.nossr50.listeners.InteractionManager;
 | 
					import com.gmail.nossr50.listeners.InteractionManager;
 | 
				
			||||||
import com.gmail.nossr50.mcMMO;
 | 
					import com.gmail.nossr50.mcMMO;
 | 
				
			||||||
import com.gmail.nossr50.util.TextComponentFactory;
 | 
					 | 
				
			||||||
import com.gmail.nossr50.util.random.RandomChanceSkill;
 | 
					import com.gmail.nossr50.util.random.RandomChanceSkill;
 | 
				
			||||||
import com.gmail.nossr50.util.random.RandomChanceUtil;
 | 
					import com.gmail.nossr50.util.random.RandomChanceUtil;
 | 
				
			||||||
import net.md_5.bungee.api.chat.TextComponent;
 | 
					import net.md_5.bungee.api.chat.TextComponent;
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -4,7 +4,6 @@ import com.gmail.nossr50.datatypes.skills.PrimarySkillType;
 | 
				
			|||||||
import com.gmail.nossr50.datatypes.skills.SubSkillType;
 | 
					import com.gmail.nossr50.datatypes.skills.SubSkillType;
 | 
				
			||||||
import com.gmail.nossr50.mcMMO;
 | 
					import com.gmail.nossr50.mcMMO;
 | 
				
			||||||
import com.gmail.nossr50.skills.archery.Archery;
 | 
					import com.gmail.nossr50.skills.archery.Archery;
 | 
				
			||||||
import com.gmail.nossr50.util.TextComponentFactory;
 | 
					 | 
				
			||||||
import com.gmail.nossr50.util.skills.CombatUtils;
 | 
					import com.gmail.nossr50.util.skills.CombatUtils;
 | 
				
			||||||
import net.md_5.bungee.api.chat.TextComponent;
 | 
					import net.md_5.bungee.api.chat.TextComponent;
 | 
				
			||||||
import org.bukkit.entity.Player;
 | 
					import org.bukkit.entity.Player;
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -5,7 +5,6 @@ import com.gmail.nossr50.datatypes.skills.SubSkillType;
 | 
				
			|||||||
import com.gmail.nossr50.mcMMO;
 | 
					import com.gmail.nossr50.mcMMO;
 | 
				
			||||||
import com.gmail.nossr50.skills.axes.Axes;
 | 
					import com.gmail.nossr50.skills.axes.Axes;
 | 
				
			||||||
import com.gmail.nossr50.util.Permissions;
 | 
					import com.gmail.nossr50.util.Permissions;
 | 
				
			||||||
import com.gmail.nossr50.util.TextComponentFactory;
 | 
					 | 
				
			||||||
import com.gmail.nossr50.util.skills.CombatUtils;
 | 
					import com.gmail.nossr50.util.skills.CombatUtils;
 | 
				
			||||||
import com.gmail.nossr50.util.skills.RankUtils;
 | 
					import com.gmail.nossr50.util.skills.RankUtils;
 | 
				
			||||||
import net.md_5.bungee.api.chat.TextComponent;
 | 
					import net.md_5.bungee.api.chat.TextComponent;
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -5,7 +5,6 @@ import com.gmail.nossr50.datatypes.skills.SubSkillType;
 | 
				
			|||||||
import com.gmail.nossr50.mcMMO;
 | 
					import com.gmail.nossr50.mcMMO;
 | 
				
			||||||
import com.gmail.nossr50.skills.excavation.ExcavationManager;
 | 
					import com.gmail.nossr50.skills.excavation.ExcavationManager;
 | 
				
			||||||
import com.gmail.nossr50.util.Permissions;
 | 
					import com.gmail.nossr50.util.Permissions;
 | 
				
			||||||
import com.gmail.nossr50.util.TextComponentFactory;
 | 
					 | 
				
			||||||
import com.gmail.nossr50.util.skills.RankUtils;
 | 
					import com.gmail.nossr50.util.skills.RankUtils;
 | 
				
			||||||
import net.md_5.bungee.api.chat.TextComponent;
 | 
					import net.md_5.bungee.api.chat.TextComponent;
 | 
				
			||||||
import org.bukkit.entity.Player;
 | 
					import org.bukkit.entity.Player;
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -9,7 +9,6 @@ import com.gmail.nossr50.mcMMO;
 | 
				
			|||||||
import com.gmail.nossr50.skills.fishing.Fishing;
 | 
					import com.gmail.nossr50.skills.fishing.Fishing;
 | 
				
			||||||
import com.gmail.nossr50.skills.fishing.FishingManager;
 | 
					import com.gmail.nossr50.skills.fishing.FishingManager;
 | 
				
			||||||
import com.gmail.nossr50.util.Permissions;
 | 
					import com.gmail.nossr50.util.Permissions;
 | 
				
			||||||
import com.gmail.nossr50.util.TextComponentFactory;
 | 
					 | 
				
			||||||
import com.gmail.nossr50.util.random.RandomChanceUtil;
 | 
					import com.gmail.nossr50.util.random.RandomChanceUtil;
 | 
				
			||||||
import com.gmail.nossr50.util.skills.RankUtils;
 | 
					import com.gmail.nossr50.util.skills.RankUtils;
 | 
				
			||||||
import net.md_5.bungee.api.chat.TextComponent;
 | 
					import net.md_5.bungee.api.chat.TextComponent;
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -4,7 +4,6 @@ import com.gmail.nossr50.datatypes.skills.PrimarySkillType;
 | 
				
			|||||||
import com.gmail.nossr50.datatypes.skills.SubSkillType;
 | 
					import com.gmail.nossr50.datatypes.skills.SubSkillType;
 | 
				
			||||||
import com.gmail.nossr50.mcMMO;
 | 
					import com.gmail.nossr50.mcMMO;
 | 
				
			||||||
import com.gmail.nossr50.util.Permissions;
 | 
					import com.gmail.nossr50.util.Permissions;
 | 
				
			||||||
import com.gmail.nossr50.util.TextComponentFactory;
 | 
					 | 
				
			||||||
import com.gmail.nossr50.util.skills.RankUtils;
 | 
					import com.gmail.nossr50.util.skills.RankUtils;
 | 
				
			||||||
import net.md_5.bungee.api.chat.TextComponent;
 | 
					import net.md_5.bungee.api.chat.TextComponent;
 | 
				
			||||||
import org.bukkit.Material;
 | 
					import org.bukkit.Material;
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -5,7 +5,6 @@ import com.gmail.nossr50.datatypes.skills.SubSkillType;
 | 
				
			|||||||
import com.gmail.nossr50.mcMMO;
 | 
					import com.gmail.nossr50.mcMMO;
 | 
				
			||||||
import com.gmail.nossr50.skills.mining.MiningManager;
 | 
					import com.gmail.nossr50.skills.mining.MiningManager;
 | 
				
			||||||
import com.gmail.nossr50.util.Permissions;
 | 
					import com.gmail.nossr50.util.Permissions;
 | 
				
			||||||
import com.gmail.nossr50.util.TextComponentFactory;
 | 
					 | 
				
			||||||
import com.gmail.nossr50.util.skills.RankUtils;
 | 
					import com.gmail.nossr50.util.skills.RankUtils;
 | 
				
			||||||
import net.md_5.bungee.api.chat.TextComponent;
 | 
					import net.md_5.bungee.api.chat.TextComponent;
 | 
				
			||||||
import org.bukkit.entity.Player;
 | 
					import org.bukkit.entity.Player;
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -6,7 +6,6 @@ import com.gmail.nossr50.datatypes.skills.subskills.AbstractSubSkill;
 | 
				
			|||||||
import com.gmail.nossr50.listeners.InteractionManager;
 | 
					import com.gmail.nossr50.listeners.InteractionManager;
 | 
				
			||||||
import com.gmail.nossr50.mcMMO;
 | 
					import com.gmail.nossr50.mcMMO;
 | 
				
			||||||
import com.gmail.nossr50.util.Permissions;
 | 
					import com.gmail.nossr50.util.Permissions;
 | 
				
			||||||
import com.gmail.nossr50.util.TextComponentFactory;
 | 
					 | 
				
			||||||
import com.google.common.collect.ImmutableList;
 | 
					import com.google.common.collect.ImmutableList;
 | 
				
			||||||
import org.bukkit.command.Command;
 | 
					import org.bukkit.command.Command;
 | 
				
			||||||
import org.bukkit.command.CommandSender;
 | 
					import org.bukkit.command.CommandSender;
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -6,7 +6,6 @@ import com.gmail.nossr50.mcMMO;
 | 
				
			|||||||
import com.gmail.nossr50.skills.repair.RepairManager;
 | 
					import com.gmail.nossr50.skills.repair.RepairManager;
 | 
				
			||||||
import com.gmail.nossr50.skills.repair.repairables.Repairable;
 | 
					import com.gmail.nossr50.skills.repair.repairables.Repairable;
 | 
				
			||||||
import com.gmail.nossr50.util.Permissions;
 | 
					import com.gmail.nossr50.util.Permissions;
 | 
				
			||||||
import com.gmail.nossr50.util.TextComponentFactory;
 | 
					 | 
				
			||||||
import com.gmail.nossr50.util.skills.RankUtils;
 | 
					import com.gmail.nossr50.util.skills.RankUtils;
 | 
				
			||||||
import net.md_5.bungee.api.chat.TextComponent;
 | 
					import net.md_5.bungee.api.chat.TextComponent;
 | 
				
			||||||
import org.bukkit.Material;
 | 
					import org.bukkit.Material;
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -5,7 +5,6 @@ import com.gmail.nossr50.datatypes.skills.SubSkillType;
 | 
				
			|||||||
import com.gmail.nossr50.mcMMO;
 | 
					import com.gmail.nossr50.mcMMO;
 | 
				
			||||||
import com.gmail.nossr50.skills.salvage.Salvage;
 | 
					import com.gmail.nossr50.skills.salvage.Salvage;
 | 
				
			||||||
import com.gmail.nossr50.skills.salvage.SalvageManager;
 | 
					import com.gmail.nossr50.skills.salvage.SalvageManager;
 | 
				
			||||||
import com.gmail.nossr50.util.TextComponentFactory;
 | 
					 | 
				
			||||||
import com.gmail.nossr50.util.skills.RankUtils;
 | 
					import com.gmail.nossr50.util.skills.RankUtils;
 | 
				
			||||||
import net.md_5.bungee.api.chat.TextComponent;
 | 
					import net.md_5.bungee.api.chat.TextComponent;
 | 
				
			||||||
import org.bukkit.entity.Player;
 | 
					import org.bukkit.entity.Player;
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -7,7 +7,6 @@ import com.gmail.nossr50.mcMMO;
 | 
				
			|||||||
import com.gmail.nossr50.skills.child.FamilyTree;
 | 
					import com.gmail.nossr50.skills.child.FamilyTree;
 | 
				
			||||||
import com.gmail.nossr50.util.Permissions;
 | 
					import com.gmail.nossr50.util.Permissions;
 | 
				
			||||||
import com.gmail.nossr50.util.StringUtils;
 | 
					import com.gmail.nossr50.util.StringUtils;
 | 
				
			||||||
import com.gmail.nossr50.util.TextComponentFactory;
 | 
					 | 
				
			||||||
import com.gmail.nossr50.util.random.RandomChanceUtil;
 | 
					import com.gmail.nossr50.util.random.RandomChanceUtil;
 | 
				
			||||||
import com.gmail.nossr50.util.skills.RankUtils;
 | 
					import com.gmail.nossr50.util.skills.RankUtils;
 | 
				
			||||||
import com.gmail.nossr50.util.skills.SkillActivationType;
 | 
					import com.gmail.nossr50.util.skills.SkillActivationType;
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -4,7 +4,6 @@ import com.gmail.nossr50.datatypes.skills.PrimarySkillType;
 | 
				
			|||||||
import com.gmail.nossr50.datatypes.skills.SubSkillType;
 | 
					import com.gmail.nossr50.datatypes.skills.SubSkillType;
 | 
				
			||||||
import com.gmail.nossr50.mcMMO;
 | 
					import com.gmail.nossr50.mcMMO;
 | 
				
			||||||
import com.gmail.nossr50.util.Permissions;
 | 
					import com.gmail.nossr50.util.Permissions;
 | 
				
			||||||
import com.gmail.nossr50.util.TextComponentFactory;
 | 
					 | 
				
			||||||
import com.gmail.nossr50.util.skills.RankUtils;
 | 
					import com.gmail.nossr50.util.skills.RankUtils;
 | 
				
			||||||
import net.md_5.bungee.api.chat.TextComponent;
 | 
					import net.md_5.bungee.api.chat.TextComponent;
 | 
				
			||||||
import org.bukkit.entity.Player;
 | 
					import org.bukkit.entity.Player;
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -4,7 +4,6 @@ import com.gmail.nossr50.datatypes.skills.PrimarySkillType;
 | 
				
			|||||||
import com.gmail.nossr50.datatypes.skills.SubSkillType;
 | 
					import com.gmail.nossr50.datatypes.skills.SubSkillType;
 | 
				
			||||||
import com.gmail.nossr50.mcMMO;
 | 
					import com.gmail.nossr50.mcMMO;
 | 
				
			||||||
import com.gmail.nossr50.util.Permissions;
 | 
					import com.gmail.nossr50.util.Permissions;
 | 
				
			||||||
import com.gmail.nossr50.util.TextComponentFactory;
 | 
					 | 
				
			||||||
import com.gmail.nossr50.util.skills.CombatUtils;
 | 
					import com.gmail.nossr50.util.skills.CombatUtils;
 | 
				
			||||||
import com.gmail.nossr50.util.skills.RankUtils;
 | 
					import com.gmail.nossr50.util.skills.RankUtils;
 | 
				
			||||||
import net.md_5.bungee.api.chat.TextComponent;
 | 
					import net.md_5.bungee.api.chat.TextComponent;
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -5,7 +5,6 @@ import com.gmail.nossr50.datatypes.skills.SubSkillType;
 | 
				
			|||||||
import com.gmail.nossr50.mcMMO;
 | 
					import com.gmail.nossr50.mcMMO;
 | 
				
			||||||
import com.gmail.nossr50.skills.taming.Taming;
 | 
					import com.gmail.nossr50.skills.taming.Taming;
 | 
				
			||||||
import com.gmail.nossr50.util.Permissions;
 | 
					import com.gmail.nossr50.util.Permissions;
 | 
				
			||||||
import com.gmail.nossr50.util.TextComponentFactory;
 | 
					 | 
				
			||||||
import net.md_5.bungee.api.chat.TextComponent;
 | 
					import net.md_5.bungee.api.chat.TextComponent;
 | 
				
			||||||
import org.bukkit.entity.EntityType;
 | 
					import org.bukkit.entity.EntityType;
 | 
				
			||||||
import org.bukkit.entity.Player;
 | 
					import org.bukkit.entity.Player;
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -4,7 +4,6 @@ import com.gmail.nossr50.datatypes.skills.PrimarySkillType;
 | 
				
			|||||||
import com.gmail.nossr50.datatypes.skills.SubSkillType;
 | 
					import com.gmail.nossr50.datatypes.skills.SubSkillType;
 | 
				
			||||||
import com.gmail.nossr50.mcMMO;
 | 
					import com.gmail.nossr50.mcMMO;
 | 
				
			||||||
import com.gmail.nossr50.util.Permissions;
 | 
					import com.gmail.nossr50.util.Permissions;
 | 
				
			||||||
import com.gmail.nossr50.util.TextComponentFactory;
 | 
					 | 
				
			||||||
import com.gmail.nossr50.util.skills.CombatUtils;
 | 
					import com.gmail.nossr50.util.skills.CombatUtils;
 | 
				
			||||||
import com.gmail.nossr50.util.skills.RankUtils;
 | 
					import com.gmail.nossr50.util.skills.RankUtils;
 | 
				
			||||||
import net.md_5.bungee.api.chat.TextComponent;
 | 
					import net.md_5.bungee.api.chat.TextComponent;
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -4,7 +4,6 @@ import com.gmail.nossr50.datatypes.skills.PrimarySkillType;
 | 
				
			|||||||
import com.gmail.nossr50.datatypes.skills.SubSkillType;
 | 
					import com.gmail.nossr50.datatypes.skills.SubSkillType;
 | 
				
			||||||
import com.gmail.nossr50.mcMMO;
 | 
					import com.gmail.nossr50.mcMMO;
 | 
				
			||||||
import com.gmail.nossr50.util.Permissions;
 | 
					import com.gmail.nossr50.util.Permissions;
 | 
				
			||||||
import com.gmail.nossr50.util.TextComponentFactory;
 | 
					 | 
				
			||||||
import com.gmail.nossr50.util.skills.RankUtils;
 | 
					import com.gmail.nossr50.util.skills.RankUtils;
 | 
				
			||||||
import net.md_5.bungee.api.chat.TextComponent;
 | 
					import net.md_5.bungee.api.chat.TextComponent;
 | 
				
			||||||
import org.bukkit.entity.Player;
 | 
					import org.bukkit.entity.Player;
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -8,6 +8,7 @@ import com.gmail.nossr50.datatypes.skills.PrimarySkillType;
 | 
				
			|||||||
import java.util.List;
 | 
					import java.util.List;
 | 
				
			||||||
import java.util.Map;
 | 
					import java.util.Map;
 | 
				
			||||||
import java.util.UUID;
 | 
					import java.util.UUID;
 | 
				
			||||||
 | 
					import java.util.logging.Logger;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
public interface DatabaseManager {
 | 
					public interface DatabaseManager {
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
@@ -29,6 +30,19 @@ public interface DatabaseManager {
 | 
				
			|||||||
     */
 | 
					     */
 | 
				
			||||||
    public boolean removeUser(String playerName, UUID uuid);
 | 
					    public boolean removeUser(String playerName, UUID uuid);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * Prints progress on long database operations
 | 
				
			||||||
 | 
					     * @param convertedUsers amount of users converted so far
 | 
				
			||||||
 | 
					     * @param startMillis the start time stamp in millis
 | 
				
			||||||
 | 
					     * @param logger logger
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    //TODO: Hacky fix, cleanup later
 | 
				
			||||||
 | 
					    default void printProgress(int convertedUsers, long startMillis, Logger logger) {
 | 
				
			||||||
 | 
					        if ((convertedUsers % getDatabaseProgressPrintInterval()) == 0) {
 | 
				
			||||||
 | 
					            logger.info(String.format("Conversion progress: %d users at %.2f users/second", convertedUsers, convertedUsers / (double) ((System.currentTimeMillis() - startMillis) / 1000)));
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
     * Removes any cache used for faster lookups
 | 
					     * Removes any cache used for faster lookups
 | 
				
			||||||
     * Currently only used for SQL
 | 
					     * Currently only used for SQL
 | 
				
			||||||
@@ -125,6 +139,12 @@ public interface DatabaseManager {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    boolean saveUserUUIDs(Map<String, UUID> fetchedUUIDs);
 | 
					    boolean saveUserUUIDs(Map<String, UUID> fetchedUUIDs);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * Gets the interval in which any task that does an operation over the whole database should print progress updates to console
 | 
				
			||||||
 | 
					     * @return the interval in which progress should be reported for database wide operations
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    int getDatabaseProgressPrintInterval();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
     * Retrieve the type of database in use. Custom databases should return CUSTOM.
 | 
					     * Retrieve the type of database in use. Custom databases should return CUSTOM.
 | 
				
			||||||
     *
 | 
					     *
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -85,6 +85,11 @@ public final class FlatFileDatabaseManager implements DatabaseManager {
 | 
				
			|||||||
        }*/
 | 
					        }*/
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
 | 
					    public int getDatabaseProgressPrintInterval() {
 | 
				
			||||||
 | 
					        return progressInterval;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public void purgePowerlessUsers() {
 | 
					    public void purgePowerlessUsers() {
 | 
				
			||||||
        int purgedUsers = 0;
 | 
					        int purgedUsers = 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -23,7 +23,7 @@ public final class SQLDatabaseManager implements DatabaseManager {
 | 
				
			|||||||
    private final String COM_MYSQL_JDBC_DRIVER = "com.mysql.jdbc.Driver";
 | 
					    private final String COM_MYSQL_JDBC_DRIVER = "com.mysql.jdbc.Driver";
 | 
				
			||||||
    private final String ALL_QUERY_VERSION = "total";
 | 
					    private final String ALL_QUERY_VERSION = "total";
 | 
				
			||||||
    private final Map<UUID, Integer> cachedUserIDs = new HashMap<>();
 | 
					    private final Map<UUID, Integer> cachedUserIDs = new HashMap<>();
 | 
				
			||||||
    private String tablePrefix = pluginRef.getMySQLConfigSettings().getConfigSectionDatabase().getTablePrefix();
 | 
					    private String tablePrefix;
 | 
				
			||||||
    private DataSource miscPool;
 | 
					    private DataSource miscPool;
 | 
				
			||||||
    private DataSource loadPool;
 | 
					    private DataSource loadPool;
 | 
				
			||||||
    private DataSource savePool;
 | 
					    private DataSource savePool;
 | 
				
			||||||
@@ -37,6 +37,8 @@ public final class SQLDatabaseManager implements DatabaseManager {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    protected SQLDatabaseManager(mcMMO pluginRef) {
 | 
					    protected SQLDatabaseManager(mcMMO pluginRef) {
 | 
				
			||||||
        this.pluginRef = pluginRef;
 | 
					        this.pluginRef = pluginRef;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        tablePrefix = pluginRef.getMySQLConfigSettings().getConfigSectionDatabase().getTablePrefix();
 | 
				
			||||||
        purgeTime = 2630000000L * pluginRef.getDatabaseCleaningSettings().getOldUserCutoffMonths();
 | 
					        purgeTime = 2630000000L * pluginRef.getDatabaseCleaningSettings().getOldUserCutoffMonths();
 | 
				
			||||||
        progressInterval = 200;
 | 
					        progressInterval = 200;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -113,6 +115,11 @@ public final class SQLDatabaseManager implements DatabaseManager {
 | 
				
			|||||||
        return poolProperties;
 | 
					        return poolProperties;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
 | 
					    public int getDatabaseProgressPrintInterval() {
 | 
				
			||||||
 | 
					        return progressInterval;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public void purgePowerlessUsers() {
 | 
					    public void purgePowerlessUsers() {
 | 
				
			||||||
        massUpdateLock.lock();
 | 
					        massUpdateLock.lock();
 | 
				
			||||||
        pluginRef.getLogger().info("Purging powerless users...");
 | 
					        pluginRef.getLogger().info("Purging powerless users...");
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -11,7 +11,6 @@ import com.gmail.nossr50.datatypes.skills.PrimarySkillType;
 | 
				
			|||||||
import com.gmail.nossr50.datatypes.skills.SubSkillType;
 | 
					import com.gmail.nossr50.datatypes.skills.SubSkillType;
 | 
				
			||||||
import com.gmail.nossr50.events.fake.FakePlayerAnimationEvent;
 | 
					import com.gmail.nossr50.events.fake.FakePlayerAnimationEvent;
 | 
				
			||||||
import com.gmail.nossr50.mcMMO;
 | 
					import com.gmail.nossr50.mcMMO;
 | 
				
			||||||
import com.gmail.nossr50.party.ShareHandler;
 | 
					 | 
				
			||||||
import com.gmail.nossr50.runnables.player.PlayerProfileLoadingTask;
 | 
					import com.gmail.nossr50.runnables.player.PlayerProfileLoadingTask;
 | 
				
			||||||
import com.gmail.nossr50.skills.fishing.FishingManager;
 | 
					import com.gmail.nossr50.skills.fishing.FishingManager;
 | 
				
			||||||
import com.gmail.nossr50.skills.herbalism.HerbalismManager;
 | 
					import com.gmail.nossr50.skills.herbalism.HerbalismManager;
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,18 +1,21 @@
 | 
				
			|||||||
package com.gmail.nossr50.runnables.database;
 | 
					package com.gmail.nossr50.runnables.database;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import com.gmail.nossr50.database.DatabaseManager;
 | 
					import com.gmail.nossr50.database.DatabaseManager;
 | 
				
			||||||
 | 
					import com.gmail.nossr50.mcMMO;
 | 
				
			||||||
import org.bukkit.command.CommandSender;
 | 
					import org.bukkit.command.CommandSender;
 | 
				
			||||||
import org.bukkit.scheduler.BukkitRunnable;
 | 
					import org.bukkit.scheduler.BukkitRunnable;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
public class DatabaseConversionTask extends BukkitRunnable {
 | 
					public class DatabaseConversionTask extends BukkitRunnable {
 | 
				
			||||||
 | 
					    private final mcMMO pluginRef;
 | 
				
			||||||
    private final DatabaseManager sourceDatabase;
 | 
					    private final DatabaseManager sourceDatabase;
 | 
				
			||||||
    private final CommandSender sender;
 | 
					    private final CommandSender sender;
 | 
				
			||||||
    private final String message;
 | 
					    private final String message;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public DatabaseConversionTask(DatabaseManager sourceDatabase, CommandSender sender, String oldType, String newType) {
 | 
					    public DatabaseConversionTask(mcMMO pluginRef, DatabaseManager sourceDatabase, CommandSender sender, String oldType, String newType) {
 | 
				
			||||||
 | 
					        this.pluginRef = pluginRef;
 | 
				
			||||||
        this.sourceDatabase = sourceDatabase;
 | 
					        this.sourceDatabase = sourceDatabase;
 | 
				
			||||||
        this.sender = sender;
 | 
					        this.sender = sender;
 | 
				
			||||||
        message = pluginRef.getLocaleManager().getString("Commands.mcconvert.Database.Finish", oldType, newType);
 | 
					        this.message = pluginRef.getLocaleManager().getString("Commands.mcconvert.Database.Finish", oldType, newType);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @Override
 | 
					    @Override
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,19 +1,28 @@
 | 
				
			|||||||
package com.gmail.nossr50.runnables.database;
 | 
					package com.gmail.nossr50.runnables.database;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import com.gmail.nossr50.database.DatabaseManager;
 | 
					 | 
				
			||||||
import com.gmail.nossr50.datatypes.experience.FormulaType;
 | 
					import com.gmail.nossr50.datatypes.experience.FormulaType;
 | 
				
			||||||
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
 | 
					import com.gmail.nossr50.datatypes.player.McMMOPlayer;
 | 
				
			||||||
import com.gmail.nossr50.datatypes.player.PlayerProfile;
 | 
					import com.gmail.nossr50.datatypes.player.PlayerProfile;
 | 
				
			||||||
import com.gmail.nossr50.datatypes.skills.PrimarySkillType;
 | 
					import com.gmail.nossr50.datatypes.skills.PrimarySkillType;
 | 
				
			||||||
import com.gmail.nossr50.util.Misc;
 | 
					import com.gmail.nossr50.mcMMO;
 | 
				
			||||||
import org.bukkit.command.CommandSender;
 | 
					import org.bukkit.command.CommandSender;
 | 
				
			||||||
import org.bukkit.scheduler.BukkitRunnable;
 | 
					import org.bukkit.scheduler.BukkitRunnable;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					//TODO: PUUUUUUUUUUURGE
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * This whole design of this thing is Jank
 | 
				
			||||||
 | 
					 * The name is Jank
 | 
				
			||||||
 | 
					 * Everything about this is Jank
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Fix this at some point in the future
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
public class FormulaConversionTask extends BukkitRunnable {
 | 
					public class FormulaConversionTask extends BukkitRunnable {
 | 
				
			||||||
    private CommandSender sender;
 | 
					    private CommandSender sender;
 | 
				
			||||||
    private FormulaType previousFormula;
 | 
					    private FormulaType previousFormula;
 | 
				
			||||||
 | 
					    private mcMMO pluginRef;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public FormulaConversionTask(CommandSender sender, FormulaType previousFormula) {
 | 
					    public FormulaConversionTask(mcMMO pluginRef, CommandSender sender, FormulaType previousFormula) {
 | 
				
			||||||
 | 
					        this.pluginRef = pluginRef;
 | 
				
			||||||
        this.sender = sender;
 | 
					        this.sender = sender;
 | 
				
			||||||
        this.previousFormula = previousFormula;
 | 
					        this.previousFormula = previousFormula;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
@@ -43,7 +52,7 @@ public class FormulaConversionTask extends BukkitRunnable {
 | 
				
			|||||||
                editValues(profile);
 | 
					                editValues(profile);
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            convertedUsers++;
 | 
					            convertedUsers++;
 | 
				
			||||||
            Misc.printProgress(convertedUsers, DatabaseManager.progressInterval, startMillis);
 | 
					            pluginRef.getDatabaseManager().printProgress(convertedUsers, startMillis, pluginRef.getLogger());
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        sender.sendMessage(pluginRef.getLocaleManager().getString("Commands.mcconvert.Experience.Finish", pluginRef.getConfigManager().getConfigLeveling().getConfigExperienceFormula().toString()));
 | 
					        sender.sendMessage(pluginRef.getLocaleManager().getString("Commands.mcconvert.Experience.Finish", pluginRef.getConfigManager().getConfigLeveling().getConfigExperienceFormula().toString()));
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,8 +1,6 @@
 | 
				
			|||||||
package com.gmail.nossr50.runnables.database;
 | 
					package com.gmail.nossr50.runnables.database;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import com.gmail.nossr50.database.DatabaseManager;
 | 
					 | 
				
			||||||
import com.gmail.nossr50.mcMMO;
 | 
					import com.gmail.nossr50.mcMMO;
 | 
				
			||||||
import com.gmail.nossr50.util.Misc;
 | 
					 | 
				
			||||||
import com.gmail.nossr50.util.uuid.UUIDFetcher;
 | 
					import com.gmail.nossr50.util.uuid.UUIDFetcher;
 | 
				
			||||||
import org.bukkit.scheduler.BukkitRunnable;
 | 
					import org.bukkit.scheduler.BukkitRunnable;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -13,19 +11,19 @@ import java.util.UUID;
 | 
				
			|||||||
import java.util.logging.Level;
 | 
					import java.util.logging.Level;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
public class UUIDUpdateAsyncTask extends BukkitRunnable {
 | 
					public class UUIDUpdateAsyncTask extends BukkitRunnable {
 | 
				
			||||||
    private mcMMO plugin;
 | 
					    private mcMMO pluginRef;
 | 
				
			||||||
    private static final int MAX_LOOKUP = 100;
 | 
					    private final int MAX_LOOKUP = 100;
 | 
				
			||||||
    private static final int RATE_LIMIT = 300;
 | 
					    private final int RATE_LIMIT = 300;
 | 
				
			||||||
    private static final long LIMIT_PERIOD = 6000;
 | 
					    private final long LIMIT_PERIOD = 6000;
 | 
				
			||||||
    private static final int BATCH_SIZE = MAX_LOOKUP * 3;
 | 
					    private final int BATCH_SIZE = MAX_LOOKUP * 3;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    private List<String> userNames;
 | 
					    private List<String> userNames;
 | 
				
			||||||
    private int size;
 | 
					    private int size;
 | 
				
			||||||
    private int checkedUsers;
 | 
					    private int checkedUsers;
 | 
				
			||||||
    private long startMillis;
 | 
					    private long startMillis;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public UUIDUpdateAsyncTask(mcMMO plugin, List<String> userNames) {
 | 
					    public UUIDUpdateAsyncTask(mcMMO pluginRef, List<String> userNames) {
 | 
				
			||||||
        this.plugin = plugin;
 | 
					        this.pluginRef = pluginRef;
 | 
				
			||||||
        this.userNames = userNames;
 | 
					        this.userNames = userNames;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        this.checkedUsers = 0;
 | 
					        this.checkedUsers = 0;
 | 
				
			||||||
@@ -36,7 +34,7 @@ public class UUIDUpdateAsyncTask extends BukkitRunnable {
 | 
				
			|||||||
    public void run() {
 | 
					    public void run() {
 | 
				
			||||||
        size = userNames.size();
 | 
					        size = userNames.size();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        plugin.getLogger().info("Starting to check and update UUIDs, total amount of users: " + size);
 | 
					        pluginRef.getLogger().info("Starting to check and update UUIDs, total amount of users: " + size);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        List<String> userNamesSection;
 | 
					        List<String> userNamesSection;
 | 
				
			||||||
        Map<String, UUID> fetchedUUIDs = new HashMap<String, UUID>();
 | 
					        Map<String, UUID> fetchedUUIDs = new HashMap<String, UUID>();
 | 
				
			||||||
@@ -77,7 +75,7 @@ public class UUIDUpdateAsyncTask extends BukkitRunnable {
 | 
				
			|||||||
                    }
 | 
					                    }
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                plugin.getLogger().log(Level.SEVERE, "Unable to fetch UUIDs!", e);
 | 
					                pluginRef.getLogger().log(Level.SEVERE, "Unable to fetch UUIDs!", e);
 | 
				
			||||||
                return;
 | 
					                return;
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -85,7 +83,8 @@ public class UUIDUpdateAsyncTask extends BukkitRunnable {
 | 
				
			|||||||
            userNamesSection.clear();
 | 
					            userNamesSection.clear();
 | 
				
			||||||
            size = userNames.size();
 | 
					            size = userNames.size();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            Misc.printProgress(checkedUsers, DatabaseManager.progressInterval, startMillis);
 | 
					            pluginRef.getDatabaseManager().printProgress(checkedUsers, startMillis, pluginRef.getLogger());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            if (fetchedUUIDs.size() >= BATCH_SIZE) {
 | 
					            if (fetchedUUIDs.size() >= BATCH_SIZE) {
 | 
				
			||||||
                pluginRef.getDatabaseManager().saveUserUUIDs(fetchedUUIDs);
 | 
					                pluginRef.getDatabaseManager().saveUserUUIDs(fetchedUUIDs);
 | 
				
			||||||
                fetchedUUIDs = new HashMap<String, UUID>();
 | 
					                fetchedUUIDs = new HashMap<String, UUID>();
 | 
				
			||||||
@@ -94,7 +93,7 @@ public class UUIDUpdateAsyncTask extends BukkitRunnable {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
        if (fetchedUUIDs.size() == 0 || pluginRef.getDatabaseManager().saveUserUUIDs(fetchedUUIDs)) {
 | 
					        if (fetchedUUIDs.size() == 0 || pluginRef.getDatabaseManager().saveUserUUIDs(fetchedUUIDs)) {
 | 
				
			||||||
            //mcMMO.getUpgradeManager().setUpgradeCompleted(UpgradeType.ADD_UUIDS);
 | 
					            //mcMMO.getUpgradeManager().setUpgradeCompleted(UpgradeType.ADD_UUIDS);
 | 
				
			||||||
            plugin.getLogger().info("UUID upgrade completed!");
 | 
					            pluginRef.getLogger().info("UUID upgrade completed!");
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@@ -1,11 +1,18 @@
 | 
				
			|||||||
package com.gmail.nossr50.runnables.database;
 | 
					package com.gmail.nossr50.runnables.database;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import com.gmail.nossr50.mcMMO;
 | 
				
			||||||
import org.bukkit.scheduler.BukkitRunnable;
 | 
					import org.bukkit.scheduler.BukkitRunnable;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import java.util.concurrent.locks.ReentrantLock;
 | 
					import java.util.concurrent.locks.ReentrantLock;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
public class UserPurgeTask extends BukkitRunnable {
 | 
					public class UserPurgeTask extends BukkitRunnable {
 | 
				
			||||||
    private ReentrantLock lock = new ReentrantLock();
 | 
					    private final mcMMO pluginRef;
 | 
				
			||||||
 | 
					    private ReentrantLock lock;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public UserPurgeTask(mcMMO pluginRef) {
 | 
				
			||||||
 | 
					        this.pluginRef = pluginRef;
 | 
				
			||||||
 | 
					        lock = new ReentrantLock();
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @Override
 | 
					    @Override
 | 
				
			||||||
    public void run() {
 | 
					    public void run() {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -180,12 +180,6 @@ public final class Misc {
 | 
				
			|||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public static void printProgress(int convertedUsers, int progressInterval, long startMillis) {
 | 
					 | 
				
			||||||
        if ((convertedUsers % progressInterval) == 0) {
 | 
					 | 
				
			||||||
            pluginRef.getLogger().info(String.format("Conversion progress: %d users at %.2f users/second", convertedUsers, convertedUsers / (double) ((System.currentTimeMillis() - startMillis) / TIME_CONVERSION_FACTOR)));
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public static String getModName(String materialName) {
 | 
					    public static String getModName(String materialName) {
 | 
				
			||||||
        for (String mod : modNames) {
 | 
					        for (String mod : modNames) {
 | 
				
			||||||
            if (materialName.contains(mod)) {
 | 
					            if (materialName.contains(mod)) {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -9,7 +9,6 @@ import com.gmail.nossr50.datatypes.skills.SubSkillType;
 | 
				
			|||||||
import com.gmail.nossr50.events.skills.McMMOPlayerNotificationEvent;
 | 
					import com.gmail.nossr50.events.skills.McMMOPlayerNotificationEvent;
 | 
				
			||||||
import com.gmail.nossr50.mcMMO;
 | 
					import com.gmail.nossr50.mcMMO;
 | 
				
			||||||
import com.gmail.nossr50.util.Permissions;
 | 
					import com.gmail.nossr50.util.Permissions;
 | 
				
			||||||
import com.gmail.nossr50.util.TextComponentFactory;
 | 
					 | 
				
			||||||
import com.gmail.nossr50.util.sounds.SoundManager;
 | 
					import com.gmail.nossr50.util.sounds.SoundManager;
 | 
				
			||||||
import com.gmail.nossr50.util.sounds.SoundType;
 | 
					import com.gmail.nossr50.util.sounds.SoundType;
 | 
				
			||||||
import net.md_5.bungee.api.ChatMessageType;
 | 
					import net.md_5.bungee.api.ChatMessageType;
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user