RTPMenu auto refresh

This commit is contained in:
SuperRonanCraft 2023-04-02 11:42:28 -04:00
parent a94b7d3ce8
commit a1f480ca28
3 changed files with 75 additions and 16 deletions

View File

@ -100,7 +100,9 @@ public class AddonRTPMenu implements Addon, Listener {
private void onTeleport(RTP_CommandEvent e) {
if (e.getCmd() instanceof CmdTeleport && e.getSendi() instanceof Player) {
e.setCancelled(true);
RTPMenu_SelectWorld.createInv(this, (Player) e.getSendi());
int refresh = Files.FILETYPE.CONFIG.getInt(AddonRTPMenu.name + ".AutoRefresh");
Player player = (Player) e.getSendi();
new RTPMenu_Refresh(this, player, refresh);
}
}

View File

@ -0,0 +1,52 @@
package me.SuperRonanCraft.BetterRTPAddons.addons.rtpmenu;
import me.SuperRonanCraft.BetterRTPAddons.Main;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.HandlerList;
import org.bukkit.event.Listener;
import org.bukkit.event.inventory.InventoryCloseEvent;
import org.bukkit.scheduler.BukkitRunnable;
import org.bukkit.scheduler.BukkitTask;
public class RTPMenu_Refresh implements Listener {
private final AddonRTPMenu addon;
private final Player player;
private final int time;
private BukkitTask task;
private boolean opening = true;
RTPMenu_Refresh(AddonRTPMenu addon, Player player, int time) {
this.addon = addon;
this.player = player;
this.time = time;
if (time > 0) {
Bukkit.getPluginManager().registerEvents(this, Main.getInstance());
start();
} else {
RTPMenu_SelectWorld.createInv(addon, player);
}
}
private void start() {
opening = true;
RTPMenu_SelectWorld.createInv(addon, player);
opening = false;
this.task = new BukkitRunnable() {
@Override public void run() {
start();
}
}.runTaskLater(Main.getInstance(), time);
}
@EventHandler
void close(InventoryCloseEvent e) {
if (e.getPlayer() == player && !opening) {
task.cancel();
HandlerList.unregisterAll(this);
}
}
}

View File

@ -39,9 +39,9 @@ MagicStick:
Name: '&d&lMagic RTP Stick &8(Right-Click)'
Material: 'Stick'
Lore:
- ''
- '&7Right click this stick and unlock'
- '&7a brand new adventure!'
- ''
- '&7Right click this stick and unlock'
- '&7a brand new adventure!'
Take: true
#Addon Commands
@ -64,17 +64,22 @@ Parties:
#Addon RTPMenu (Enable `/rtp` world select menu)
RTPMenu:
Enabled: false
AutoRefresh: 0 #0 means menu will not refresh! (in ticks)
Title: "Choose World"
WorldList:
- world:
Name: '&7World'
Item: 'map'
Lore:
- ''
- '&8Click to rtp in world!'
- world_nether:
Name: '&cNether'
Item: 'netherrack'
Lore:
- ''
- '&8Click to rtp in world!'
- world:
Name: '&7World'
Item: 'map'
Lore:
- ''
- '&8Click to rtp in world!'
- ''
- '&7Cooldown&8: &d%betterrtp_cooldown%'
- world_nether:
Name: '&cNether'
Item: 'netherrack'
Lore:
- ''
- '&8Click to rtp in world!'
- ''
- '&7Cooldown&8: &d%betterrtp_cooldown%'