From bde66ee4e1718d91e813d7b37e6416f18b41ed05 Mon Sep 17 00:00:00 2001 From: nossr50 Date: Tue, 24 Sep 2019 14:30:33 -0700 Subject: [PATCH] Remove static abuse - Chunklet stuff --- src/main/java/com/gmail/nossr50/mcMMO.java | 5 ++++- .../blockmeta/chunkmeta/ChunkManagerFactory.java | 12 ++++++++++-- .../util/blockmeta/chunkmeta/HashChunkManager.java | 8 +++++++- .../conversion/BlockStoreConversionMain.java | 5 ++++- .../conversion/BlockStoreConversionXDirectory.java | 7 +++++-- .../conversion/BlockStoreConversionZDirectory.java | 5 ++++- 6 files changed, 34 insertions(+), 8 deletions(-) diff --git a/src/main/java/com/gmail/nossr50/mcMMO.java b/src/main/java/com/gmail/nossr50/mcMMO.java index 070a93e55..b1af4e849 100644 --- a/src/main/java/com/gmail/nossr50/mcMMO.java +++ b/src/main/java/com/gmail/nossr50/mcMMO.java @@ -87,6 +87,7 @@ public class mcMMO extends JavaPlugin { /* Not-Managers but my naming scheme sucks */ private DatabaseManagerFactory databaseManagerFactory; + private ChunkManagerFactory chunkManagerFactory; private CommandTools commandTools; private SkillTools skillTools; //TODO: Remove once a new skill system is in place private BlockTools blockTools; @@ -200,7 +201,9 @@ public class mcMMO extends JavaPlugin { nbtManager = new NBTManager(this); - placeStore = ChunkManagerFactory.getChunkManager(); // Get our ChunkletManager + //Init Chunk Manager Factory + chunkManagerFactory = new ChunkManagerFactory(this); + placeStore = chunkManagerFactory.getChunkManager(); // Get our ChunkletManager if (getConfigManager().getConfigParty().getPTP().isPtpWorldBasedPermissions()) { getPermissionTools().generateWorldTeleportPermissions(); diff --git a/src/main/java/com/gmail/nossr50/util/blockmeta/chunkmeta/ChunkManagerFactory.java b/src/main/java/com/gmail/nossr50/util/blockmeta/chunkmeta/ChunkManagerFactory.java index 703ca7646..a6d6859fe 100755 --- a/src/main/java/com/gmail/nossr50/util/blockmeta/chunkmeta/ChunkManagerFactory.java +++ b/src/main/java/com/gmail/nossr50/util/blockmeta/chunkmeta/ChunkManagerFactory.java @@ -1,7 +1,15 @@ package com.gmail.nossr50.util.blockmeta.chunkmeta; +import com.gmail.nossr50.mcMMO; + public class ChunkManagerFactory { - public static ChunkManager getChunkManager() { - return new HashChunkManager(); + private final mcMMO pluginRef; + + public ChunkManagerFactory(mcMMO pluginRef) { + this.pluginRef = pluginRef; + } + + public ChunkManager getChunkManager() { + return new HashChunkManager(pluginRef); } } diff --git a/src/main/java/com/gmail/nossr50/util/blockmeta/chunkmeta/HashChunkManager.java b/src/main/java/com/gmail/nossr50/util/blockmeta/chunkmeta/HashChunkManager.java index f414c75a3..7e79bb080 100755 --- a/src/main/java/com/gmail/nossr50/util/blockmeta/chunkmeta/HashChunkManager.java +++ b/src/main/java/com/gmail/nossr50/util/blockmeta/chunkmeta/HashChunkManager.java @@ -1,5 +1,6 @@ package com.gmail.nossr50.util.blockmeta.chunkmeta; +import com.gmail.nossr50.mcMMO; import com.gmail.nossr50.util.blockmeta.conversion.BlockStoreConversionZDirectory; import org.bukkit.World; import org.bukkit.block.Block; @@ -14,6 +15,11 @@ public class HashChunkManager implements ChunkManager { public ArrayList converters = new ArrayList<>(); private HashMap> regionFiles = new HashMap<>(); private HashMap oldData = new HashMap<>(); + private final mcMMO pluginRef; + + public HashChunkManager(mcMMO pluginRef) { + this.pluginRef = pluginRef; + } @Override public synchronized void closeAll() { @@ -438,7 +444,7 @@ public class HashChunkManager implements ChunkManager { } if (!conversionSet) { - BlockStoreConversionZDirectory converter = new BlockStoreConversionZDirectory(); + BlockStoreConversionZDirectory converter = new BlockStoreConversionZDirectory(pluginRef); converter.start(world, cxDir, czDir); converters.add(converter); } diff --git a/src/main/java/com/gmail/nossr50/util/blockmeta/conversion/BlockStoreConversionMain.java b/src/main/java/com/gmail/nossr50/util/blockmeta/conversion/BlockStoreConversionMain.java index 7e10ec247..cd9af7e04 100755 --- a/src/main/java/com/gmail/nossr50/util/blockmeta/conversion/BlockStoreConversionMain.java +++ b/src/main/java/com/gmail/nossr50/util/blockmeta/conversion/BlockStoreConversionMain.java @@ -1,6 +1,7 @@ package com.gmail.nossr50.util.blockmeta.conversion; import com.gmail.nossr50.core.ChunkConversionOptions; +import com.gmail.nossr50.mcMMO; import org.bukkit.scheduler.BukkitScheduler; import java.io.File; @@ -12,8 +13,10 @@ public class BlockStoreConversionMain implements Runnable { BlockStoreConversionXDirectory[] converters; private int taskID; private org.bukkit.World world; + private final mcMMO pluginRef; - public BlockStoreConversionMain(org.bukkit.World world) { + public BlockStoreConversionMain(mcMMO pluginRef, org.bukkit.World world) { + this.pluginRef = pluginRef; this.taskID = -1; this.world = world; this.scheduler = pluginRef.getServer().getScheduler(); diff --git a/src/main/java/com/gmail/nossr50/util/blockmeta/conversion/BlockStoreConversionXDirectory.java b/src/main/java/com/gmail/nossr50/util/blockmeta/conversion/BlockStoreConversionXDirectory.java index 011ad7ea3..4416ac199 100755 --- a/src/main/java/com/gmail/nossr50/util/blockmeta/conversion/BlockStoreConversionXDirectory.java +++ b/src/main/java/com/gmail/nossr50/util/blockmeta/conversion/BlockStoreConversionXDirectory.java @@ -1,6 +1,7 @@ package com.gmail.nossr50.util.blockmeta.conversion; import com.gmail.nossr50.core.ChunkConversionOptions; +import com.gmail.nossr50.mcMMO; import org.bukkit.scheduler.BukkitScheduler; import java.io.File; @@ -12,8 +13,10 @@ public class BlockStoreConversionXDirectory implements Runnable { BlockStoreConversionZDirectory[] converters; private int taskID; private org.bukkit.World world; + private final mcMMO pluginRef; - public BlockStoreConversionXDirectory() { + public BlockStoreConversionXDirectory(mcMMO pluginRef) { + this.pluginRef = pluginRef; this.taskID = -1; } @@ -53,7 +56,7 @@ public class BlockStoreConversionXDirectory implements Runnable { for (int i = 0; (i < ChunkConversionOptions.getConversionRate()) && (i < this.zDirs.length); i++) { if (this.converters[i] == null) { - this.converters[i] = new BlockStoreConversionZDirectory(); + this.converters[i] = new BlockStoreConversionZDirectory(pluginRef); } this.converters[i].start(this.world, this.dataDir, this.zDirs[i]); diff --git a/src/main/java/com/gmail/nossr50/util/blockmeta/conversion/BlockStoreConversionZDirectory.java b/src/main/java/com/gmail/nossr50/util/blockmeta/conversion/BlockStoreConversionZDirectory.java index 9d1421150..96b0a5593 100755 --- a/src/main/java/com/gmail/nossr50/util/blockmeta/conversion/BlockStoreConversionZDirectory.java +++ b/src/main/java/com/gmail/nossr50/util/blockmeta/conversion/BlockStoreConversionZDirectory.java @@ -1,5 +1,6 @@ package com.gmail.nossr50.util.blockmeta.conversion; +import com.gmail.nossr50.mcMMO; import com.gmail.nossr50.util.blockmeta.ChunkletStore; import com.gmail.nossr50.util.blockmeta.HashChunkletManager; import com.gmail.nossr50.util.blockmeta.PrimitiveChunkletStore; @@ -22,8 +23,10 @@ public class BlockStoreConversionZDirectory implements Runnable { private PrimitiveChunkletStore primitiveChunklet = null; private PrimitiveExChunkletStore primitiveExChunklet = null; private PrimitiveChunkStore currentChunk; + private final mcMMO pluginRef; - public BlockStoreConversionZDirectory() { + public BlockStoreConversionZDirectory(mcMMO pluginRef) { + this.pluginRef = pluginRef; this.taskID = -1; }