Skip to content

Commit

Permalink
Fix issue #20
Browse files Browse the repository at this point in the history
NoSuchMethodException was thrown on bukkit servers
  • Loading branch information
cavallium committed Apr 21, 2023
1 parent d28c86d commit 732a133
Show file tree
Hide file tree
Showing 6 changed files with 55 additions and 8 deletions.
2 changes: 1 addition & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>org.warp</groupId>
<artifactId>CoordinatesObfuscator</artifactId>
<version>1.4.9</version>
<version>1.4.10</version>
<name>CoordinatesObfuscator</name>
<build>
<resources>
Expand Down
10 changes: 10 additions & 0 deletions src/main/java/org/warp/coordinatesobfuscator/Bukkit.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
package org.warp.coordinatesobfuscator;

import org.bukkit.entity.Player;
import org.bukkit.plugin.Plugin;

public interface Bukkit {
void run(Plugin plugin, Player player, Runnable runnable, Runnable fallback);

void runLater(Plugin plugin, Runnable runnable, long delay);
}
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
package org.warp.coordinatesobfuscator;

public class FoliaUtils {
public class BukkitUtils {

private static final boolean IS_FOLIA;
private static final Bukkit BUKKIT;

static {
boolean isFolia;
Expand All @@ -13,9 +14,15 @@ public class FoliaUtils {
isFolia = false;
}
IS_FOLIA = isFolia;

BUKKIT = isFolia ? new Folia() : new Craftbukkit();
}

public static boolean isFolia() {
return IS_FOLIA;
}

public static Bukkit getBukkit() {
return BUKKIT;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -29,8 +29,6 @@
import java.util.List;
import java.util.logging.Logger;

import org.joml.GeometryUtils;

public class CoordinatesObfuscator extends JavaPlugin implements Listener {

public static final boolean DEBUG_ENABLED = "debug".equals(System.getProperty("coordinates_obfuscator.env"));
Expand Down Expand Up @@ -220,10 +218,10 @@ public void onPlayerTeleport(final PlayerRespawnEvent event){
}

private void setMaxWorldBorder(final Player player) {
if (FoliaUtils.isFolia()) {
player.getScheduler().run(this, scheduledTask -> setMaxWorldBorderSync(player), null);
if (BukkitUtils.isFolia()) {
BukkitUtils.getBukkit().run(this, player, () -> setMaxWorldBorder(player), null);
} else {
Bukkit.getScheduler().runTaskLater(this, () -> setMaxWorldBorderSync(player), 5);
BukkitUtils.getBukkit().runLater(this, () -> setMaxWorldBorder(player), 5);
}
}

Expand Down
16 changes: 16 additions & 0 deletions src/main/java/org/warp/coordinatesobfuscator/Craftbukkit.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
package org.warp.coordinatesobfuscator;

import org.bukkit.entity.Player;
import org.bukkit.plugin.Plugin;

public class Craftbukkit implements Bukkit {
@Override
public void run(Plugin plugin, Player player, Runnable runnable, Runnable fallback) {
org.bukkit.Bukkit.getScheduler().runTask(plugin, runnable);
}

@Override
public void runLater(Plugin plugin, Runnable runnable, long delay) {
org.bukkit.Bukkit.getScheduler().runTaskLater(plugin, runnable, delay);
}
}
16 changes: 16 additions & 0 deletions src/main/java/org/warp/coordinatesobfuscator/Folia.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
package org.warp.coordinatesobfuscator;

import org.bukkit.entity.Player;
import org.bukkit.plugin.Plugin;

public class Folia implements Bukkit {
@Override
public void run(Plugin plugin, Player player, Runnable runnable, Runnable fallback) {
player.getScheduler().run(plugin, st -> runnable.run(), fallback);
}

@Override
public void runLater(Plugin plugin, Runnable runnable, long delay) {
org.bukkit.Bukkit.getScheduler().runTaskLater(plugin, runnable, delay);
}
}

0 comments on commit 732a133

Please sign in to comment.