Folia Support?

This commit is contained in:
SuperRonanCraft
2023-04-19 00:00:21 -04:00
parent 5aad2125d3
commit 033eaeecdc
22 changed files with 122 additions and 61 deletions

View File

@@ -7,7 +7,7 @@
<groupId>me.SuperRonanCraft</groupId>
<artifactId>BetterRTPAddons</artifactId>
<packaging>jar</packaging>
<version>1.8.6</version>
<version>1.8.7</version>
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
@@ -109,7 +109,7 @@
<dependency>
<groupId>me.SuperRonanCraft</groupId>
<artifactId>BetterRTP</artifactId>
<version>3.6.6</version>
<version>3.6.7</version>
<scope>provided</scope>
</dependency>
<!-- ProtocolLib -->

View File

@@ -7,6 +7,7 @@ import org.bukkit.event.EventHandler;
import org.bukkit.event.HandlerList;
import org.bukkit.event.Listener;
import org.bukkit.event.inventory.InventoryCloseEvent;
import org.bukkit.event.player.PlayerQuitEvent;
import org.bukkit.scheduler.BukkitRunnable;
import org.bukkit.scheduler.BukkitTask;
@@ -32,7 +33,10 @@ public class RTPMenu_Refresh implements Listener {
private void start() {
opening = true;
RTPMenu_SelectWorld.createInv(addon, player);
if (!RTPMenu_SelectWorld.createInv(addon, player)) {
cancel();
return;
}
opening = false;
this.task = new BukkitRunnable() {
@Override public void run() {
@@ -44,9 +48,21 @@ public class RTPMenu_Refresh implements Listener {
@EventHandler
void close(InventoryCloseEvent e) {
if (e.getPlayer() == player && !opening) {
task.cancel();
HandlerList.unregisterAll(this);
cancel();
}
}
@EventHandler
void leave(PlayerQuitEvent e) {
if (e.getPlayer() == player) {
cancel();
}
}
void cancel() {
if (task != null)
task.cancel();
HandlerList.unregisterAll(this);
}
}

View File

@@ -23,7 +23,7 @@ import java.util.Map;
public class RTPMenu_SelectWorld {
public static void createInv(AddonRTPMenu pl, Player p) {
public static boolean createInv(AddonRTPMenu pl, Player p) {
List<World> bukkit_worlds = Bukkit.getWorlds();
List<World> actual_worlds = new ArrayList<>();
for (World world : bukkit_worlds) {
@@ -32,7 +32,7 @@ public class RTPMenu_SelectWorld {
}
if (actual_worlds.isEmpty() || (actual_worlds.size() <= 1 && !BetterRTP.getInstance().getSettings().isDebug())) {
CmdTeleport.teleport(p, "rtp", null, null);
return;
return false;
}
int size = Math.floorDiv(actual_worlds.size(), 9) * 9;
if (size < actual_worlds.size()) size += 9;
@@ -58,6 +58,7 @@ public class RTPMenu_SelectWorld {
pl.getData(p).setMenuInv(inv);
pl.getData(p).setWorldSlots(world_slots);
p.openInventory(inv);
return true;
}
private static HashMap<Integer, World> centerWorlds(List<World> actual_worlds) {