[Debt] Fixed Plugin Enable Sequence

Removed PlanPlugin.getInstance()
Temporarily disabled Plugin Bridge hooking
This commit is contained in:
Rsl1122 2018-09-29 14:19:29 +03:00
parent e60e1abe9a
commit bd636892d6
9 changed files with 21 additions and 75 deletions

View File

@ -34,7 +34,6 @@ import com.djrapitops.plan.system.locale.lang.PluginLang;
import com.djrapitops.plan.system.settings.theme.PlanColorScheme; import com.djrapitops.plan.system.settings.theme.PlanColorScheme;
import com.djrapitops.plan.utilities.metrics.BStatsBukkit; import com.djrapitops.plan.utilities.metrics.BStatsBukkit;
import com.djrapitops.plugin.BukkitPlugin; import com.djrapitops.plugin.BukkitPlugin;
import com.djrapitops.plugin.StaticHolder;
import com.djrapitops.plugin.benchmarking.Benchmark; import com.djrapitops.plugin.benchmarking.Benchmark;
import com.djrapitops.plugin.command.ColorScheme; import com.djrapitops.plugin.command.ColorScheme;
import com.djrapitops.plugin.command.CommandNode; import com.djrapitops.plugin.command.CommandNode;
@ -105,18 +104,8 @@ public class Plan extends BukkitPlugin implements PlanPlugin {
private PlanSystem system; private PlanSystem system;
private Locale locale; private Locale locale;
/**
* Used to get the plugin-instance singleton.
*
* @return this object.
*/
public static Plan getInstance() {
return (Plan) StaticHolder.getInstance(Plan.class);
}
@Override @Override
public void onEnable() { public void onEnable() {
super.onEnable();
PlanComponent component = DaggerPlanComponent.builder().plan(this).build(); PlanComponent component = DaggerPlanComponent.builder().plan(this).build();
try { try {
timings.start("Enable"); timings.start("Enable");

View File

@ -18,7 +18,6 @@ import com.djrapitops.plan.system.locale.lang.PluginLang;
import com.djrapitops.plan.system.settings.theme.PlanColorScheme; import com.djrapitops.plan.system.settings.theme.PlanColorScheme;
import com.djrapitops.plan.utilities.metrics.BStatsBungee; import com.djrapitops.plan.utilities.metrics.BStatsBungee;
import com.djrapitops.plugin.BungeePlugin; import com.djrapitops.plugin.BungeePlugin;
import com.djrapitops.plugin.StaticHolder;
import com.djrapitops.plugin.command.ColorScheme; import com.djrapitops.plugin.command.ColorScheme;
import com.djrapitops.plugin.command.CommandNode; import com.djrapitops.plugin.command.CommandNode;
import com.djrapitops.plugin.logging.L; import com.djrapitops.plugin.logging.L;
@ -85,13 +84,8 @@ public class PlanBungee extends BungeePlugin implements PlanPlugin {
private PlanSystem system; private PlanSystem system;
private Locale locale; private Locale locale;
public static PlanBungee getInstance() {
return (PlanBungee) StaticHolder.getInstance(PlanBungee.class);
}
@Override @Override
public void onEnable() { public void onEnable() {
super.onEnable();
PlanBungeeComponent component = DaggerPlanBungeeComponent.builder().plan(this).build(); PlanBungeeComponent component = DaggerPlanBungeeComponent.builder().plan(this).build();
try { try {
system = component.system(); system = component.system();

View File

@ -6,7 +6,6 @@ package com.djrapitops.plan;
import com.djrapitops.plan.system.PlanSystem; import com.djrapitops.plan.system.PlanSystem;
import com.djrapitops.plugin.IPlugin; import com.djrapitops.plugin.IPlugin;
import com.djrapitops.plugin.api.Check;
import com.djrapitops.plugin.command.ColorScheme; import com.djrapitops.plugin.command.ColorScheme;
import java.io.File; import java.io.File;
@ -18,40 +17,6 @@ import java.io.InputStream;
* @author Rsl1122 * @author Rsl1122
*/ */
public interface PlanPlugin extends IPlugin { public interface PlanPlugin extends IPlugin {
@Deprecated
static PlanPlugin getInstance() {
boolean bukkitAvailable = Check.isBukkitAvailable();
boolean bungeeAvailable = Check.isBungeeAvailable();
boolean spongeAvailable = Check.isSpongeAvailable();
if (bukkitAvailable) {
try {
Plan instance = Plan.getInstance();
if (instance != null) {
return instance;
}
} catch (IllegalStateException ignored) {
}
}
if (bungeeAvailable) {
try {
PlanBungee instance = PlanBungee.getInstance();
if (instance != null) {
return instance;
}
} catch (IllegalStateException ignored) {
}
}
if (spongeAvailable) {
try {
PlanSponge instance = PlanSponge.getInstance();
if (instance != null) {
return instance;
}
} catch (IllegalStateException ignored) {
}
}
throw new IllegalAccessError("Plugin instance not available");
}
@Override @Override
File getDataFolder(); File getDataFolder();

View File

@ -15,7 +15,6 @@ import com.djrapitops.plan.system.locale.lang.PluginLang;
import com.djrapitops.plan.system.settings.theme.PlanColorScheme; import com.djrapitops.plan.system.settings.theme.PlanColorScheme;
import com.djrapitops.plan.utilities.metrics.BStatsSponge; import com.djrapitops.plan.utilities.metrics.BStatsSponge;
import com.djrapitops.plugin.SpongePlugin; import com.djrapitops.plugin.SpongePlugin;
import com.djrapitops.plugin.StaticHolder;
import com.djrapitops.plugin.command.ColorScheme; import com.djrapitops.plugin.command.ColorScheme;
import com.djrapitops.plugin.command.CommandNode; import com.djrapitops.plugin.command.CommandNode;
import com.djrapitops.plugin.logging.L; import com.djrapitops.plugin.logging.L;
@ -107,13 +106,8 @@ public class PlanSponge extends SpongePlugin implements PlanPlugin {
onDisable(); onDisable();
} }
public static PlanSponge getInstance() {
return (PlanSponge) StaticHolder.getInstance(PlanSponge.class);
}
@Override @Override
public void onEnable() { public void onEnable() {
super.onEnable();
PlanSpongeComponent component = DaggerPlanSpongeComponent.builder().plan(this).build(); PlanSpongeComponent component = DaggerPlanSpongeComponent.builder().plan(this).build();
try { try {
system = component.system(); system = component.system();

View File

@ -5,7 +5,6 @@ import com.djrapitops.plan.system.SubSystem;
import com.djrapitops.plugin.logging.L; import com.djrapitops.plugin.logging.L;
import com.djrapitops.plugin.logging.console.PluginLogger; import com.djrapitops.plugin.logging.console.PluginLogger;
import com.djrapitops.plugin.logging.error.ErrorHandler; import com.djrapitops.plugin.logging.error.ErrorHandler;
import com.djrapitops.pluginbridge.plan.Bridge;
import javax.inject.Inject; import javax.inject.Inject;
import javax.inject.Singleton; import javax.inject.Singleton;
@ -39,7 +38,7 @@ public class HookHandler implements SubSystem {
@Override @Override
public void enable() { public void enable() {
try { try {
Bridge.hook(this); // Bridge.hook(this);
} catch (Exception e) { } catch (Exception e) {
errorHandler.log(L.ERROR, this.getClass(), e); errorHandler.log(L.ERROR, this.getClass(), e);
logger.error("Plan Plugin Bridge not included in the plugin jar."); logger.error("Plan Plugin Bridge not included in the plugin jar.");

View File

@ -28,6 +28,7 @@ import java.util.*;
import java.util.concurrent.ExecutorService; import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors; import java.util.concurrent.Executors;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
import java.util.function.Supplier;
import java.util.stream.Collectors; import java.util.stream.Collectors;
/** /**
@ -38,7 +39,7 @@ public abstract class Importer {
private final GeolocationCache geolocationCache; private final GeolocationCache geolocationCache;
private final Database database; private final Database database;
protected final UUID serverUUID; protected final Supplier<UUID> serverUUID;
private final String name; private final String name;
private final Plan plugin; private final Plan plugin;
@ -52,7 +53,7 @@ public abstract class Importer {
) { ) {
this.geolocationCache = geolocationCache; this.geolocationCache = geolocationCache;
this.database = database; this.database = database;
this.serverUUID = serverInfo.getServerUUID(); this.serverUUID = serverInfo::getServerUUID;
this.name = name; this.name = name;
this.plugin = plugin; this.plugin = plugin;
@ -97,8 +98,8 @@ public abstract class Importer {
ExecutorService service = Executors.newCachedThreadPool(); ExecutorService service = Executors.newCachedThreadPool();
SaveOperations save = database.save(); SaveOperations save = database.save();
submitTo(service, () -> save.insertTPS(ImmutableMap.of(serverUUID, serverImportData.getTpsData()))); submitTo(service, () -> save.insertTPS(ImmutableMap.of(serverUUID.get(), serverImportData.getTpsData())));
submitTo(service, () -> save.insertCommandUsage(ImmutableMap.of(serverUUID, serverImportData.getCommandUsages()))); submitTo(service, () -> save.insertCommandUsage(ImmutableMap.of(serverUUID.get(), serverImportData.getCommandUsages())));
service.shutdown(); service.shutdown();
try { try {
@ -120,7 +121,7 @@ public abstract class Importer {
userImportData = userImportRefiner.refineData(); userImportData = userImportRefiner.refineData();
Set<UUID> existingUUIDs = database.fetch().getSavedUUIDs(); Set<UUID> existingUUIDs = database.fetch().getSavedUUIDs();
Set<UUID> existingUserInfoTableUUIDs = database.fetch().getSavedUUIDs(serverUUID); Set<UUID> existingUserInfoTableUUIDs = database.fetch().getSavedUUIDs(serverUUID.get());
Map<UUID, UserInfo> users = new HashMap<>(); Map<UUID, UserInfo> users = new HashMap<>();
List<UserInfo> userInfo = new ArrayList<>(); List<UserInfo> userInfo = new ArrayList<>();
@ -152,10 +153,10 @@ public abstract class Importer {
SaveOperations save = database.save(); SaveOperations save = database.save();
save.insertUsers(users); save.insertUsers(users);
submitTo(service, () -> save.insertSessions(ImmutableMap.of(serverUUID, sessions), true)); submitTo(service, () -> save.insertSessions(ImmutableMap.of(serverUUID.get(), sessions), true));
submitTo(service, () -> save.kickAmount(timesKicked)); submitTo(service, () -> save.kickAmount(timesKicked));
submitTo(service, () -> save.insertUserInfo(ImmutableMap.of(serverUUID, userInfo))); submitTo(service, () -> save.insertUserInfo(ImmutableMap.of(serverUUID.get(), userInfo)));
submitTo(service, () -> save.insertNicknames(ImmutableMap.of(serverUUID, nickNames))); submitTo(service, () -> save.insertNicknames(ImmutableMap.of(serverUUID.get(), nickNames)));
submitTo(service, () -> save.insertAllGeoInfo(geoInfo)); submitTo(service, () -> save.insertAllGeoInfo(geoInfo));
service.shutdown(); service.shutdown();
@ -185,7 +186,7 @@ public abstract class Importer {
int mobKills = userImportData.getMobKills(); int mobKills = userImportData.getMobKills();
int deaths = userImportData.getDeaths(); int deaths = userImportData.getDeaths();
Session session = new Session(0, userImportData.getUuid(), serverUUID, 0L, 0L, mobKills, deaths, 0); Session session = new Session(0, userImportData.getUuid(), serverUUID.get(), 0L, 0L, mobKills, deaths, 0);
session.setPlayerKills(userImportData.getKills()); session.setPlayerKills(userImportData.getKills());
session.setWorldTimes(new WorldTimes(userImportData.getWorldTimes())); session.setWorldTimes(new WorldTimes(userImportData.getWorldTimes()));

View File

@ -50,7 +50,7 @@ public class OfflinePlayerImporter extends Importer {
Set<OfflinePlayer> banned = Bukkit.getBannedPlayers(); Set<OfflinePlayer> banned = Bukkit.getBannedPlayers();
Arrays.stream(Bukkit.getOfflinePlayers()).parallel().forEach(player -> { Arrays.stream(Bukkit.getOfflinePlayers()).parallel().forEach(player -> {
UserImportData.UserImportDataBuilder builder = UserImportData.builder(serverUUID); UserImportData.UserImportDataBuilder builder = UserImportData.builder(serverUUID.get());
builder.name(player.getName()) builder.name(player.getName())
.uuid(player.getUniqueId()) .uuid(player.getUniqueId())
.registered(player.getFirstPlayed()); .registered(player.getFirstPlayed());

View File

@ -18,12 +18,12 @@ import java.util.stream.Collectors;
*/ */
public class Locale extends HashMap<Lang, Message> { public class Locale extends HashMap<Lang, Message> {
public static Locale forLangCodeString(String code) throws IOException { public static Locale forLangCodeString(PlanPlugin plugin, String code) throws IOException {
return forLangCode(LangCode.fromString(code)); return forLangCode(LangCode.fromString(code), plugin);
} }
public static Locale forLangCode(LangCode code) throws IOException { public static Locale forLangCode(LangCode code, PlanPlugin plugin) throws IOException {
return new LocaleFileReader(PlanPlugin.getInstance(), code.getFileName()).load(); return new LocaleFileReader(plugin, code.getFileName()).load();
} }
public static Locale fromFile(File file) throws IOException { public static Locale fromFile(File file) throws IOException {

View File

@ -1,5 +1,6 @@
package com.djrapitops.plan.system.locale; package com.djrapitops.plan.system.locale;
import com.djrapitops.plan.PlanPlugin;
import com.djrapitops.plan.system.SubSystem; import com.djrapitops.plan.system.SubSystem;
import com.djrapitops.plan.system.file.PlanFiles; import com.djrapitops.plan.system.file.PlanFiles;
import com.djrapitops.plan.system.locale.lang.*; import com.djrapitops.plan.system.locale.lang.*;
@ -28,6 +29,7 @@ import java.util.stream.Collectors;
@Singleton @Singleton
public class LocaleSystem implements SubSystem { public class LocaleSystem implements SubSystem {
private final PlanPlugin plugin;
private final PlanFiles files; private final PlanFiles files;
private final PlanConfig config; private final PlanConfig config;
private final PluginLogger logger; private final PluginLogger logger;
@ -37,11 +39,13 @@ public class LocaleSystem implements SubSystem {
@Inject @Inject
public LocaleSystem( public LocaleSystem(
PlanPlugin plugin,
PlanFiles files, PlanFiles files,
PlanConfig config, PlanConfig config,
PluginLogger logger, PluginLogger logger,
ErrorHandler errorHandler ErrorHandler errorHandler
) { ) {
this.plugin = plugin;
this.files = files; this.files = files;
this.config = config; this.config = config;
this.logger = logger; this.logger = logger;
@ -111,7 +115,7 @@ public class LocaleSystem implements SubSystem {
try { try {
String setting = config.getString(Settings.LOCALE); String setting = config.getString(Settings.LOCALE);
if (!setting.equalsIgnoreCase("default")) { if (!setting.equalsIgnoreCase("default")) {
return Optional.of(Locale.forLangCodeString(setting)); return Optional.of(Locale.forLangCodeString(plugin, setting));
} }
} catch (IOException e) { } catch (IOException e) {
logger.warn("Failed to read locale from jar: " + config.getString(Settings.LOCALE) + ", " + e.toString()); logger.warn("Failed to read locale from jar: " + config.getString(Settings.LOCALE) + ", " + e.toString());