Clean up PlotPlatform a bit and make the placeholder registry injectible

This commit is contained in:
Alexander Söderberg
2020-12-05 18:41:25 +01:00
parent 60b5f5fe48
commit c8ad936d26
64 changed files with 266 additions and 261 deletions

View File

@ -197,7 +197,7 @@ public final class BukkitPlatform extends JavaPlugin implements Listener, PlotPl
@Inject private PlatformWorldManager<World> worldManager;
private Locale serverLocale;
@Override public int[] getServerVersion() {
@Override @Nonnull public int[] serverVersion() {
if (this.version == null) {
try {
this.version = new int[3];
@ -215,7 +215,7 @@ public final class BukkitPlatform extends JavaPlugin implements Listener, PlotPl
return this.version;
}
@Override public String getServerImplementation() {
@Override @Nonnull public String serverImplementation() {
return Bukkit.getVersion();
}
@ -235,7 +235,7 @@ public final class BukkitPlatform extends JavaPlugin implements Listener, PlotPl
final PlotSquared plotSquared = new PlotSquared(this, "Bukkit");
if (PlotSquared.platform().getServerVersion()[1] < 13) {
if (PlotSquared.platform().serverVersion()[1] < 13) {
logger.error("You can't use this version of PlotSquared on a server less than Minecraft 1.13.2.");
logger.error("Please check the download page for the link to the legacy versions.");
logger.error("The server will now be shutdown to prevent any corruption.");
@ -298,8 +298,8 @@ public final class BukkitPlatform extends JavaPlugin implements Listener, PlotPl
// WorldEdit
if (Settings.Enabled_Components.WORLDEDIT_RESTRICTIONS) {
try {
logger.info("{} hooked into WorldEdit", this.getPluginName());
WorldEdit.getInstance().getEventBus().register(this.getInjector().getInstance(WESubscriber.class));
logger.info("{} hooked into WorldEdit", this.pluginName());
WorldEdit.getInstance().getEventBus().register(this.injector().getInstance(WESubscriber.class));
if (Settings.Enabled_Components.COMMANDS) {
new WE_Anywhere();
}
@ -309,26 +309,26 @@ public final class BukkitPlatform extends JavaPlugin implements Listener, PlotPl
}
if (Settings.Enabled_Components.EVENTS) {
getServer().getPluginManager().registerEvents(getInjector().getInstance(PlayerEventListener.class), this);
getServer().getPluginManager().registerEvents(getInjector().getInstance(BlockEventListener.class), this);
getServer().getPluginManager().registerEvents(getInjector().getInstance(EntityEventListener.class), this);
getServer().getPluginManager().registerEvents(getInjector().getInstance(ProjectileEventListener.class), this);
getServer().getPluginManager().registerEvents(getInjector().getInstance(ServerListener.class), this);
getServer().getPluginManager().registerEvents(getInjector().getInstance(EntitySpawnListener.class), this);
getServer().getPluginManager().registerEvents(injector().getInstance(PlayerEventListener.class), this);
getServer().getPluginManager().registerEvents(injector().getInstance(BlockEventListener.class), this);
getServer().getPluginManager().registerEvents(injector().getInstance(EntityEventListener.class), this);
getServer().getPluginManager().registerEvents(injector().getInstance(ProjectileEventListener.class), this);
getServer().getPluginManager().registerEvents(injector().getInstance(ServerListener.class), this);
getServer().getPluginManager().registerEvents(injector().getInstance(EntitySpawnListener.class), this);
if (PaperLib.isPaper() && Settings.Paper_Components.PAPER_LISTENERS) {
if (getServerVersion()[1] == 13) {
getServer().getPluginManager().registerEvents(getInjector().getInstance(PaperListener113.class), this);
if (serverVersion()[1] == 13) {
getServer().getPluginManager().registerEvents(injector().getInstance(PaperListener113.class), this);
} else {
getServer().getPluginManager().registerEvents(getInjector().getInstance(PaperListener.class), this);
getServer().getPluginManager().registerEvents(injector().getInstance(PaperListener.class), this);
}
}
this.plotListener.startRunnable();
}
// Required
getServer().getPluginManager().registerEvents(getInjector().getInstance(WorldEvents.class), this);
getServer().getPluginManager().registerEvents(injector().getInstance(WorldEvents.class), this);
if (Settings.Enabled_Components.CHUNK_PROCESSOR) {
getServer().getPluginManager().registerEvents(getInjector().getInstance(ChunkListener.class), this);
getServer().getPluginManager().registerEvents(injector().getInstance(ChunkListener.class), this);
}
// Commands
@ -339,15 +339,15 @@ public final class BukkitPlatform extends JavaPlugin implements Listener, PlotPl
// Economy
if (Settings.Enabled_Components.ECONOMY) {
TaskManager.runTask(() -> {
this.getPermissionHandler().initialize();
final EconHandler econHandler = getInjector().getInstance(EconHandler.class);
this.permissionHandler().initialize();
final EconHandler econHandler = injector().getInstance(EconHandler.class);
econHandler.init();
});
}
if (Settings.Enabled_Components.COMPONENT_PRESETS) {
try {
getInjector().getInstance(ComponentPresetManager.class);
injector().getInstance(ComponentPresetManager.class);
} catch (final Exception e) {
logger.error("Failed to initialize the preset system", e);
}
@ -355,7 +355,7 @@ public final class BukkitPlatform extends JavaPlugin implements Listener, PlotPl
// World generators:
final ConfigurationSection section = this.worldConfiguration.getConfigurationSection("worlds");
final WorldUtil worldUtil = getInjector().getInstance(WorldUtil.class);
final WorldUtil worldUtil = injector().getInstance(WorldUtil.class);
if (section != null) {
for (String world : section.getKeys(false)) {
@ -372,7 +372,7 @@ public final class BukkitPlatform extends JavaPlugin implements Listener, PlotPl
continue;
}
if (!worldUtil.isWorld(world) && !world.equals("*")) {
logger.warn("`{}` was not properly loaded - {} will now try to load it properly", world, this.getPluginName());
logger.warn("`{}` was not properly loaded - {} will now try to load it properly", world, this.pluginName());
logger.warn(
" - Are you trying to delete this world? Remember to remove it from the worlds.yml, bukkit.yml and multiverse worlds.yml");
logger.warn(" - Your world management plugin may be faulty (or non existent)");
@ -484,7 +484,7 @@ public final class BukkitPlatform extends JavaPlugin implements Listener, PlotPl
if (Bukkit.getPluginManager().getPlugin("PlaceholderAPI") != null) {
injector.getInstance(PAPIPlaceholders.class).register();
if (Settings.Enabled_Components.EXTERNAL_PLACEHOLDERS) {
ChatFormatter.formatters.add(getInjector().getInstance(PlaceholderFormatter.class));
ChatFormatter.formatters.add(injector().getInstance(PlaceholderFormatter.class));
}
logger.info("PlotSquared hooked into PlaceholderAPI");
}
@ -494,7 +494,7 @@ public final class BukkitPlatform extends JavaPlugin implements Listener, PlotPl
if (Settings.Enabled_Components.WORLDS) {
TaskManager.getPlatformImplementation().taskRepeat(this::unload, TaskTime.seconds(1L));
try {
singleWorldListener = getInjector().getInstance(SingleWorldListener.class);
singleWorldListener = injector().getInstance(SingleWorldListener.class);
} catch (Exception e) {
e.printStackTrace();
}
@ -503,9 +503,9 @@ public final class BukkitPlatform extends JavaPlugin implements Listener, PlotPl
// Clean up potential memory leak
Bukkit.getScheduler().runTaskTimer(this, () -> {
try {
for (final PlotPlayer<? extends Player> player : this.getPlayerManager().getPlayers()) {
for (final PlotPlayer<? extends Player> player : this.playerManager().getPlayers()) {
if (player.getPlatformPlayer() == null || !player.getPlatformPlayer().isOnline()) {
this.getPlayerManager().removePlayer(player);
this.playerManager().removePlayer(player);
}
}
} catch (final Exception e) {
@ -553,7 +553,7 @@ public final class BukkitPlatform extends JavaPlugin implements Listener, PlotPl
}
final Plot plot = area.getOwnedPlot(id);
if (plot != null) {
if (!plot.getFlag(ServerPlotFlag.class) || PlotSquared.platform().getPlayerManager().getPlayerIfExists(plot.getOwner()) == null) {
if (!plot.getFlag(ServerPlotFlag.class) || PlotSquared.platform().playerManager().getPlayerIfExists(plot.getOwner()) == null) {
if (world.getKeepSpawnInMemory()) {
world.setKeepSpawnInMemory(false);
return;
@ -679,11 +679,11 @@ public final class BukkitPlatform extends JavaPlugin implements Listener, PlotPl
}
}
@Override public File getDirectory() {
@Override @Nonnull public File getDirectory() {
return getDataFolder();
}
@Override public File getWorldContainer() {
@Override @Nonnull public File worldContainer() {
return Bukkit.getWorldContainer();
}
@ -934,9 +934,9 @@ public final class BukkitPlatform extends JavaPlugin implements Listener, PlotPl
@Override @Nullable public final ChunkGenerator getDefaultWorldGenerator(@Nonnull final String worldName, final String id) {
final IndependentPlotGenerator result;
if (id != null && id.equalsIgnoreCase("single")) {
result = getInjector().getInstance(SingleWorldGenerator.class);
result = injector().getInstance(SingleWorldGenerator.class);
} else {
result = getInjector().getInstance(Key.get(IndependentPlotGenerator.class, DefaultGenerator.class));
result = injector().getInstance(Key.get(IndependentPlotGenerator.class, DefaultGenerator.class));
if (!PlotSquared.get().setupPlotWorld(worldName, id, result)) {
return null;
}
@ -956,7 +956,7 @@ public final class BukkitPlatform extends JavaPlugin implements Listener, PlotPl
}
return new BukkitPlotGenerator(world, gen, this.plotAreaManager);
} else {
return new BukkitPlotGenerator(world, getInjector().getInstance(Key.get(IndependentPlotGenerator.class, DefaultGenerator.class)),
return new BukkitPlotGenerator(world, injector().getInstance(Key.get(IndependentPlotGenerator.class, DefaultGenerator.class)),
this.plotAreaManager);
}
}
@ -988,7 +988,7 @@ public final class BukkitPlatform extends JavaPlugin implements Listener, PlotPl
}
@Override public void unregister(@Nonnull final PlotPlayer<?> player) {
PlotSquared.platform().getPlayerManager().removePlayer(player.getUUID());
PlotSquared.platform().playerManager().removePlayer(player.getUUID());
}
@Override public void setGenerator(@Nonnull final String worldName) {
@ -996,12 +996,12 @@ public final class BukkitPlatform extends JavaPlugin implements Listener, PlotPl
if (world == null) {
// create world
ConfigurationSection worldConfig = this.worldConfiguration.getConfigurationSection("worlds." + worldName);
String manager = worldConfig.getString("generator.plugin", getPluginName());
String manager = worldConfig.getString("generator.plugin", pluginName());
PlotAreaBuilder builder =
PlotAreaBuilder.newBuilder().plotManager(manager).generatorName(worldConfig.getString("generator.init", manager))
.plotAreaType(ConfigurationUtil.getType(worldConfig)).terrainType(ConfigurationUtil.getTerrain(worldConfig))
.settingsNodesWrapper(new SettingsNodesWrapper(new ConfigurationNode[0], null)).worldName(worldName);
getInjector().getInstance(SetupUtils.class).setupWorld(builder);
injector().getInstance(SetupUtils.class).setupWorld(builder);
world = Bukkit.getWorld(worldName);
} else {
try {
@ -1025,16 +1025,16 @@ public final class BukkitPlatform extends JavaPlugin implements Listener, PlotPl
}
}
@Override public String getNMSPackage() {
@Override @Nonnull public String serverNativePackage() {
final String name = Bukkit.getServer().getClass().getPackage().getName();
return name.substring(name.lastIndexOf('.') + 1);
}
@Override public GeneratorWrapper<?> wrapPlotGenerator(@Nullable final String world, @Nonnull final IndependentPlotGenerator generator) {
@Override @Nonnull public GeneratorWrapper<?> wrapPlotGenerator(@Nullable final String world, @Nonnull final IndependentPlotGenerator generator) {
return new BukkitPlotGenerator(world, generator, this.plotAreaManager);
}
@Override public String getPluginList() {
@Override @Nonnull public String pluginsFormatted() {
StringBuilder msg = new StringBuilder();
Plugin[] plugins = Bukkit.getServer().getPluginManager().getPlugins();
msg.append("Plugins (").append(plugins.length).append("): \n");
@ -1055,11 +1055,11 @@ public final class BukkitPlatform extends JavaPlugin implements Listener, PlotPl
return BukkitWorld.of(worldName);
}
@Override @Nonnull public Audience getConsoleAudience() {
@Override @Nonnull public Audience consoleAudience() {
return BukkitUtil.BUKKIT_AUDIENCES.console();
}
@Override public String getPluginName() {
@Override @Nonnull public String pluginName() {
return this.pluginName;
}
@ -1067,7 +1067,7 @@ public final class BukkitPlatform extends JavaPlugin implements Listener, PlotPl
return this.singleWorldListener;
}
@Override public Injector getInjector() {
@Override @Nonnull public Injector injector() {
return this.injector;
}
@ -1079,13 +1079,13 @@ public final class BukkitPlatform extends JavaPlugin implements Listener, PlotPl
throw new UnsupportedOperationException("Cannot replace server locale");
}
@Override @Nonnull public PlatformWorldManager<?> getWorldManager() {
return getInjector().getInstance(Key.get(new TypeLiteral<PlatformWorldManager<World>>() {
@Override @Nonnull public PlatformWorldManager<?> worldManager() {
return injector().getInstance(Key.get(new TypeLiteral<PlatformWorldManager<World>>() {
}));
}
@Override @Nonnull @SuppressWarnings("ALL") public PlayerManager<? extends PlotPlayer<Player>, ? extends Player> getPlayerManager() {
return (PlayerManager<BukkitPlayer, Player>) getInjector().getInstance(PlayerManager.class);
@Override @Nonnull @SuppressWarnings("ALL") public PlayerManager<? extends PlotPlayer<Player>, ? extends Player> playerManager() {
return (PlayerManager<BukkitPlayer, Player>) injector().getInstance(PlayerManager.class);
}
@Override public void copyCaptionMaps() {

View File

@ -54,7 +54,7 @@ final class BlockStatePopulator extends BlockPopulator {
@Override public void populate(@Nonnull final World world, @Nonnull final Random random, @Nonnull final Chunk source) {
if (this.queue == null) {
this.queue = PlotSquared.platform().getGlobalBlockQueue().getNewQueue(new BukkitWorld(world));
this.queue = PlotSquared.platform().globalBlockQueue().getNewQueue(new BukkitWorld(world));
}
final PlotArea area = this.plotAreaManager.getPlotArea(world.getName(), null);
if (area == null) {

View File

@ -60,7 +60,7 @@ final class DelegatePlotGenerator extends IndependentPlotGenerator {
}
@Override public PlotArea getNewPlotArea(String world, String id, PlotId min, PlotId max) {
return PlotSquared.platform().getDefaultGenerator().getNewPlotArea(world, id, min, max);
return PlotSquared.platform().defaultGenerator().getNewPlotArea(world, id, min, max);
}
@Override public void generateChunk(final ScopedQueueCoordinator result, PlotArea settings) {

View File

@ -58,7 +58,6 @@ import com.plotsquared.core.plot.flag.implementations.SoilDryFlag;
import com.plotsquared.core.plot.flag.implementations.VineGrowFlag;
import com.plotsquared.core.plot.flag.types.BlockTypeWrapper;
import com.plotsquared.core.plot.world.PlotAreaManager;
import com.plotsquared.core.util.MainUtil;
import com.plotsquared.core.util.Permissions;
import com.plotsquared.core.util.task.TaskManager;
import com.plotsquared.core.util.task.TaskTime;
@ -126,7 +125,7 @@ public class BlockEventListener implements Listener {
int z = bloc.getBlockZ();
int distance = Bukkit.getViewDistance() * 16;
for (final PlotPlayer<?> player : PlotSquared.platform().getPlayerManager().getPlayers()) {
for (final PlotPlayer<?> player : PlotSquared.platform().playerManager().getPlayers()) {
Location location = player.getLocation();
if (location.getWorldName().equals(world)) {
if (16 * Math.abs(location.getX() - x) / 16 > distance || 16 * Math.abs(location.getZ() - z) / 16 > distance) {
@ -163,18 +162,18 @@ public class BlockEventListener implements Listener {
if (plot.isMerged()) {
disable = true;
for (UUID owner : plot.getOwners()) {
if (PlotSquared.platform().getPlayerManager().getPlayerIfExists(owner) != null) {
if (PlotSquared.platform().playerManager().getPlayerIfExists(owner) != null) {
disable = false;
break;
}
}
} else {
disable = PlotSquared.platform().getPlayerManager().getPlayerIfExists(plot.getOwnerAbs()) == null;
disable = PlotSquared.platform().playerManager().getPlayerIfExists(plot.getOwnerAbs()) == null;
}
}
if (disable) {
for (UUID trusted : plot.getTrusted()) {
if (PlotSquared.platform().getPlayerManager().getPlayerIfExists(trusted) != null) {
if (PlotSquared.platform().playerManager().getPlayerIfExists(trusted) != null) {
disable = false;
break;
}
@ -187,7 +186,7 @@ public class BlockEventListener implements Listener {
}
}
if (Settings.Redstone.DISABLE_UNOCCUPIED) {
for (final PlotPlayer<?> player : PlotSquared.platform().getPlayerManager().getPlayers()) {
for (final PlotPlayer<?> player : PlotSquared.platform().playerManager().getPlayers()) {
if (plot.equals(player.getCurrentPlot())) {
return;
}

View File

@ -70,7 +70,6 @@ import com.plotsquared.core.plot.flag.implementations.VillagerInteractFlag;
import com.plotsquared.core.plot.flag.types.BlockTypeWrapper;
import com.plotsquared.core.plot.world.PlotAreaManager;
import com.plotsquared.core.util.EventDispatcher;
import com.plotsquared.core.util.MainUtil;
import com.plotsquared.core.util.MathMan;
import com.plotsquared.core.util.Permissions;
import com.plotsquared.core.util.PremiumVerification;
@ -83,7 +82,6 @@ import com.sk89q.worldedit.bukkit.BukkitAdapter;
import com.sk89q.worldedit.world.block.BlockType;
import io.papermc.lib.PaperLib;
import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.TextComponent;
import net.kyori.adventure.text.minimessage.Template;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
@ -324,7 +322,7 @@ public class PlayerEventListener extends PlotListener implements Listener {
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
public void onConnect(PlayerJoinEvent event) {
final Player player = event.getPlayer();
PlotSquared.platform().getPlayerManager().removePlayer(player.getUniqueId());
PlotSquared.platform().playerManager().removePlayer(player.getUniqueId());
final PlotPlayer<Player> pp = BukkitUtil.adapt(player);
Location location = pp.getLocation();
@ -660,7 +658,7 @@ public class PlayerEventListener extends PlotListener implements Listener {
recipients.clear();
Set<PlotPlayer<?>> spies = new HashSet<>();
Set<PlotPlayer<?>> plotRecipients = new HashSet<>();
for (final PlotPlayer<?> pp : PlotSquared.platform().getPlayerManager().getPlayers()) {
for (final PlotPlayer<?> pp : PlotSquared.platform().playerManager().getPlayers()) {
if (pp.getAttribute("chatspy")) {
spies.add(pp);
} else {

View File

@ -28,10 +28,9 @@ package com.plotsquared.bukkit.listener;
import com.google.inject.Inject;
import com.plotsquared.bukkit.BukkitPlatform;
import com.plotsquared.bukkit.placeholder.MVdWPlaceholders;
import com.plotsquared.core.PlotSquared;
import com.plotsquared.core.configuration.Settings;
import com.plotsquared.core.configuration.caption.TranslatableCaption;
import com.plotsquared.core.player.ConsolePlayer;
import com.plotsquared.core.configuration.Settings;
import org.bukkit.Bukkit;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
@ -49,7 +48,7 @@ public class ServerListener implements Listener {
@EventHandler public void onServerLoad(ServerLoadEvent event) {
if (Bukkit.getPluginManager().getPlugin("MVdWPlaceholderAPI") != null && Settings.Enabled_Components.USE_MVDWAPI) {
new MVdWPlaceholders(this.plugin, PlotSquared.get().getPlaceholderRegistry());
new MVdWPlaceholders(this.plugin, this.plugin.placeholderRegistry());
ConsolePlayer.getConsole().sendMessage(TranslatableCaption.of("placeholder.hooked"));
}
}

View File

@ -57,7 +57,7 @@ public class PAPIPlaceholders extends PlaceholderExpansion {
}
@Override public String onPlaceholderRequest(Player p, String identifier) {
final PlotPlayer<?> pl = PlotSquared.platform().getPlayerManager().getPlayerIfExists(p.getUniqueId());
final PlotPlayer<?> pl = PlotSquared.platform().playerManager().getPlayerIfExists(p.getUniqueId());
if (pl == null) {
return "";
@ -83,7 +83,7 @@ public class PAPIPlaceholders extends PlaceholderExpansion {
}
// PlotSquared placeholders
return PlotSquared.get().getPlaceholderRegistry().getPlaceholderValue(identifier, pl);
return PlotSquared.platform().placeholderRegistry().getPlaceholderValue(identifier, pl);
}
}

View File

@ -140,7 +140,7 @@ public class BukkitPlayer extends PlotPlayer<Player> {
private void callEvent(@Nonnull final Event event) {
final RegisteredListener[] listeners = event.getHandlers().getRegisteredListeners();
for (final RegisteredListener listener : listeners) {
if (listener.getPlugin().getName().equals(PlotSquared.platform().getPluginName())) {
if (listener.getPlugin().getName().equals(PlotSquared.platform().pluginName())) {
continue;
}
try {

View File

@ -220,7 +220,7 @@ import java.util.Objects;
e.printStackTrace();
}
Objects.requireNonNull(PlotSquared.platform()).getWorldManager()
Objects.requireNonNull(PlotSquared.platform()).worldManager()
.handleWorldCreation(builder.worldName(), builder.generatorName());
if (Bukkit.getWorld(world) != null) {

View File

@ -128,7 +128,7 @@ public class BukkitUtil extends WorldUtil {
* @return PlotSquared player
*/
@Nonnull public static BukkitPlayer adapt(@Nonnull final Player player) {
final PlayerManager<?, ?> playerManager = PlotSquared.platform().getPlayerManager();
final PlayerManager<?, ?> playerManager = PlotSquared.platform().playerManager();
return ((BukkitPlayerManager) playerManager).getPlayer(player);
}
@ -317,7 +317,7 @@ public class BukkitUtil extends WorldUtil {
} else if (world.getBlockAt(location.getX(), location.getY(), location.getZ() - 1).getType().isSolid()) {
facing = BlockFace.SOUTH;
}
if (PlotSquared.platform().getServerVersion()[1] == 13) {
if (PlotSquared.platform().serverVersion()[1] == 13) {
block.setType(Material.valueOf("WALL_SIGN"), false);
} else {
block.setType(Material.valueOf("OAK_WALL_SIGN"), false);

View File

@ -38,7 +38,7 @@ import java.util.ArrayList;
public class SetGenCB {
public static void setGenerator(World world) throws Exception {
PlotSquared.platform().getSetupUtils().updateGenerators();
PlotSquared.platform().setupUtils().updateGenerators();
PlotSquared.get().removePlotAreas(world.getName());
ChunkGenerator gen = world.getGenerator();
if (gen == null) {