Fixed #4438 and also normalized some stuff (#4439)

This commit is contained in:
TheBusyBiscuit 2021-02-23 21:28:45 +01:00 committed by GitHub
parent b8932802b7
commit db2c0e89e7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -52,7 +52,6 @@ import com.gmail.nossr50.util.skills.RankUtils;
import com.gmail.nossr50.util.skills.SmeltingTracker; import com.gmail.nossr50.util.skills.SmeltingTracker;
import com.gmail.nossr50.util.upgrade.UpgradeManager; import com.gmail.nossr50.util.upgrade.UpgradeManager;
import com.gmail.nossr50.worldguard.WorldGuardManager; import com.gmail.nossr50.worldguard.WorldGuardManager;
import com.google.common.base.Charsets;
import net.kyori.adventure.platform.bukkit.BukkitAudiences; import net.kyori.adventure.platform.bukkit.BukkitAudiences;
import net.shatteredlands.shatt.backup.ZipLibrary; import net.shatteredlands.shatt.backup.ZipLibrary;
import org.bstats.bukkit.Metrics; import org.bstats.bukkit.Metrics;
@ -62,11 +61,14 @@ import org.bukkit.event.HandlerList;
import org.bukkit.metadata.FixedMetadataValue; import org.bukkit.metadata.FixedMetadataValue;
import org.bukkit.plugin.PluginManager; import org.bukkit.plugin.PluginManager;
import org.bukkit.plugin.java.JavaPlugin; import org.bukkit.plugin.java.JavaPlugin;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import java.io.File; import java.io.File;
import java.io.IOException; import java.io.IOException;
import java.io.InputStream; import java.io.InputStream;
import java.io.InputStreamReader; import java.io.InputStreamReader;
import java.nio.charset.StandardCharsets;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
@ -124,24 +126,24 @@ public class mcMMO extends JavaPlugin {
private static boolean isRetroModeEnabled; private static boolean isRetroModeEnabled;
/* Metadata Values */ /* Metadata Values */
public final static String REPLANT_META_KEY = "mcMMO: Recently Replanted"; public static final String REPLANT_META_KEY = "mcMMO: Recently Replanted";
public static final String FISH_HOOK_REF_METAKEY = "mcMMO: Fish Hook Tracker"; public static final String FISH_HOOK_REF_METAKEY = "mcMMO: Fish Hook Tracker";
public static final String DODGE_TRACKER = "mcMMO: Dodge Tracker"; public static final String DODGE_TRACKER = "mcMMO: Dodge Tracker";
public static final String CUSTOM_DAMAGE_METAKEY = "mcMMO: Custom Damage"; public static final String CUSTOM_DAMAGE_METAKEY = "mcMMO: Custom Damage";
public final static String travelingBlock = "mcMMO: Traveling Block"; public static final String travelingBlock = "mcMMO: Traveling Block";
public final static String blockMetadataKey = "mcMMO: Piston Tracking"; public static final String blockMetadataKey = "mcMMO: Piston Tracking";
public final static String tntMetadataKey = "mcMMO: Tracked TNT"; public static final String tntMetadataKey = "mcMMO: Tracked TNT";
public final static String customNameKey = "mcMMO: Custom Name"; public static final String customNameKey = "mcMMO: Custom Name";
public final static String customVisibleKey = "mcMMO: Name Visibility"; public static final String customVisibleKey = "mcMMO: Name Visibility";
public final static String droppedItemKey = "mcMMO: Tracked Item"; public static final String droppedItemKey = "mcMMO: Tracked Item";
public final static String infiniteArrowKey = "mcMMO: Infinite Arrow"; public static final String infiniteArrowKey = "mcMMO: Infinite Arrow";
public final static String trackedArrow = "mcMMO: Tracked Arrow"; public static final String trackedArrow = "mcMMO: Tracked Arrow";
public final static String bowForceKey = "mcMMO: Bow Force"; public static final String bowForceKey = "mcMMO: Bow Force";
public final static String arrowDistanceKey = "mcMMO: Arrow Distance"; public static final String arrowDistanceKey = "mcMMO: Arrow Distance";
public final static String BONUS_DROPS_METAKEY = "mcMMO: Double Drops"; public static final String BONUS_DROPS_METAKEY = "mcMMO: Double Drops";
public final static String disarmedItemKey = "mcMMO: Disarmed Item"; public static final String disarmedItemKey = "mcMMO: Disarmed Item";
public final static String playerDataKey = "mcMMO: Player Data"; public static final String playerDataKey = "mcMMO: Player Data";
public final static String databaseCommandKey = "mcMMO: Processing Database Command"; public static final String databaseCommandKey = "mcMMO: Processing Database Command";
public static FixedMetadataValue metadataValue; public static FixedMetadataValue metadataValue;
@ -158,7 +160,9 @@ public class mcMMO extends JavaPlugin {
//Platform Manager //Platform Manager
platformManager = new PlatformManager(); platformManager = new PlatformManager();
//Filter out any debug messages (if debug/verbose logging is not enabled)
getLogger().setFilter(new LogFilter(this)); getLogger().setFilter(new LogFilter(this));
metadataValue = new FixedMetadataValue(this, true); metadataValue = new FixedMetadataValue(this, true);
PluginManager pluginManager = getServer().getPluginManager(); PluginManager pluginManager = getServer().getPluginManager();
@ -273,6 +277,9 @@ public class mcMMO extends JavaPlugin {
} }
getServer().getPluginManager().disablePlugin(this); getServer().getPluginManager().disablePlugin(this);
//Fixes #4438 - Don't initialize things if we are going to disable mcMMO anyway
return;
} }
//Init player level values //Init player level values
@ -284,6 +291,7 @@ public class mcMMO extends JavaPlugin {
//Init smelting tracker //Init smelting tracker
smeltingTracker = new SmeltingTracker(); smeltingTracker = new SmeltingTracker();
//Set up Adventure's audiences
audiences = BukkitAudiences.create(this); audiences = BukkitAudiences.create(this);
transientMetadataTools = new TransientMetadataTools(this); transientMetadataTools = new TransientMetadataTools(this);
@ -347,8 +355,9 @@ public class mcMMO extends JavaPlugin {
holidayManager.saveAnniversaryFiles(); holidayManager.saveAnniversaryFiles();
placeStore.closeAll(); placeStore.closeAll();
} }
catch (Exception e) {
catch (Exception e) { e.printStackTrace(); } e.printStackTrace();
}
if (Config.getInstance().getBackupsEnabled()) { if (Config.getInstance().getBackupsEnabled()) {
// Remove other tasks BEFORE starting the Backup, or we just cancel it straight away. // Remove other tasks BEFORE starting the Backup, or we just cancel it straight away.
@ -358,14 +367,12 @@ public class mcMMO extends JavaPlugin {
catch (IOException e) { catch (IOException e) {
getLogger().severe(e.toString()); getLogger().severe(e.toString());
} }
catch(NoClassDefFoundError e) {
getLogger().severe("Backup class not found!");
getLogger().info("Please do not replace the mcMMO jar while the server is running.");
}
catch (Throwable e) { catch (Throwable e) {
if (e instanceof NoClassDefFoundError) { getLogger().severe(e.toString());
getLogger().severe("Backup class not found!");
getLogger().info("Please do not replace the mcMMO jar while the server is running.");
}
else {
getLogger().severe(e.toString());
}
} }
} }
@ -682,9 +689,9 @@ public class mcMMO extends JavaPlugin {
} }
} }
public InputStreamReader getResourceAsReader(String fileName) { public @Nullable InputStreamReader getResourceAsReader(@NotNull String fileName) {
InputStream in = getResource(fileName); InputStream in = getResource(fileName);
return in == null ? null : new InputStreamReader(in, Charsets.UTF_8); return in == null ? null : new InputStreamReader(in, StandardCharsets.UTF_8);
} }
/** /**