Fix TFMExtras not working if SWM isn't enabled

This commit is contained in:
Telesphoreo 2024-01-10 19:14:35 -06:00
parent fb724fb104
commit a4c0c1c003
No known key found for this signature in database
GPG Key ID: 9D1991811E093C02
5 changed files with 33 additions and 13 deletions

View File

@ -23,10 +23,10 @@ repositories {
dependencies {
compileOnly("org.projectlombok:lombok:1.18.30")
annotationProcessor("org.projectlombok:lombok:1.18.30")
compileOnly("io.papermc.paper:paper-api:1.20.2-R0.1-SNAPSHOT")
compileOnly("io.papermc.paper:paper-api:1.20.4-R0.1-SNAPSHOT")
implementation("org.apache.commons:commons-lang3:3.12.0")
compileOnly("dev.plex:server:1.4-SNAPSHOT")
compileOnly("com.infernalsuite.aswm:api:1.20-R0.1-SNAPSHOT") {
compileOnly("com.infernalsuite.aswm:api:1.20.4-R0.1-SNAPSHOT") {
exclude(group = "com.flowpowered")
}
}

View File

@ -1,6 +1,6 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.4-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-8.5-bin.zip
networkTimeout=10000
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME

14
gradlew vendored
View File

@ -145,7 +145,7 @@ if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then
case $MAX_FD in #(
max*)
# In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked.
# shellcheck disable=SC3045
# shellcheck disable=SC2039,SC3045
MAX_FD=$( ulimit -H -n ) ||
warn "Could not query maximum file descriptor limit"
esac
@ -153,7 +153,7 @@ if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then
'' | soft) :;; #(
*)
# In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked.
# shellcheck disable=SC3045
# shellcheck disable=SC2039,SC3045
ulimit -n "$MAX_FD" ||
warn "Could not set maximum file descriptor limit to $MAX_FD"
esac
@ -202,11 +202,11 @@ fi
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
# Collect all arguments for the java command;
# * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of
# shell script including quotes and variable substitutions, so put them in
# double quotes to make sure that they get re-expanded; and
# * put everything else in single quotes, so that it's not re-expanded.
# Collect all arguments for the java command:
# * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments,
# and any embedded shellness will be escaped.
# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be
# treated as '${Hostname}' itself on the command line.
set -- \
"-Dorg.gradle.appname=$APP_BASE_NAME" \

View File

@ -34,7 +34,7 @@ public class TFMExtras extends PlexModule
private ModuleConfig config;
@Getter
private final SlimeWorldHook slimeWorldHook = new SlimeWorldHook();
private SlimeWorldHook slimeWorldHook;
@Override
public void load()
@ -43,6 +43,10 @@ public class TFMExtras extends PlexModule
config = new ModuleConfig(this, "tfmextras/config.yml", "config.yml");
config.load();
jumpPads = new JumpPads();
if (swmEnabled())
{
slimeWorldHook = new SlimeWorldHook();
}
// PlexLog.debug(String.valueOf(config.getInt("server.jumppad_strength")));
// PlexLog.log("Test map: {0}", StringUtils.join(SQLUtil.createTable(Lists.newArrayList(), PlayerWorld.class), "\n"));
}
@ -50,14 +54,13 @@ public class TFMExtras extends PlexModule
@Override
public void enable()
{
if (slimeWorldHook.plugin() != null)
if (swmEnabled())
{
slimeWorldHook.onEnable(this);
registerCommand(new SlimeManagerCommand());
registerCommand(new MyWorldCommand());
}
getClassesFrom("dev.plex.extras.command").forEach(aClass ->
{
if (PlexCommand.class.isAssignableFrom(aClass) && aClass.isAnnotationPresent(CommandParameters.class) && aClass.isAnnotationPresent(CommandPermissions.class))
@ -152,4 +155,17 @@ public class TFMExtras extends PlexModule
return Collections.unmodifiableSet(classes);
}
private boolean swmEnabled()
{
try
{
Class.forName("com.infernalsuite.aswm.api.exceptions.UnknownWorldException");
}
catch (Exception ignored)
{
return false;
}
return true;
}
}

View File

@ -183,6 +183,10 @@ public class SlimeWorldHook implements IHook<SlimePlugin>
{
PlexLog.error(STORAGE_FAILURE);
}
catch (WorldLockedException | UnknownWorldException e)
{
throw new RuntimeException(e);
}
final World world = Bukkit.getWorld(uuid.toString());
if (world == null)