RTPMenu addon finalized - v1.8 - brtp v2.2.3

This commit is contained in:
RonanCraft 2022-03-10 11:47:02 -05:00
parent bd07536c0c
commit 870b60b245
13 changed files with 60 additions and 39 deletions

View File

@ -12,6 +12,7 @@
<properties> <properties>
<maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target> <maven.compiler.target>1.8</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties> </properties>
<build> <build>
<resources> <resources>
@ -108,7 +109,7 @@
<dependency> <dependency>
<groupId>me.SuperRonanCraft</groupId> <groupId>me.SuperRonanCraft</groupId>
<artifactId>BetterRTP</artifactId> <artifactId>BetterRTP</artifactId>
<version>3.3.0</version> <version>3.2.3</version>
<scope>provided</scope> <scope>provided</scope>
</dependency> </dependency>
<!-- ProtocolLib --> <!-- ProtocolLib -->

View File

@ -28,7 +28,6 @@ public class CommandsLoader implements Listener {
commands.put(type, cmds); commands.put(type, cmds);
} }
} }
HandlerList.unregisterAll(this);
Bukkit.getPluginManager().registerEvents(this, Main.getInstance()); Bukkit.getPluginManager().registerEvents(this, Main.getInstance());
} }

View File

@ -37,7 +37,6 @@ public class AddonLogger implements Addon, Listener {
@Override @Override
public void load() { public void load() {
HandlerList.unregisterAll(this);
Bukkit.getPluginManager().registerEvents(this, Main.getInstance()); Bukkit.getPluginManager().registerEvents(this, Main.getInstance());
this.format = getFile(Files.FILETYPE.CONFIG).getString(name + ".Format"); this.format = getFile(Files.FILETYPE.CONFIG).getString(name + ".Format");
this.toConsole = getFile(Files.FILETYPE.CONFIG).getBoolean(name + ".LogToConsole"); this.toConsole = getFile(Files.FILETYPE.CONFIG).getBoolean(name + ".LogToConsole");

View File

@ -34,7 +34,6 @@ public class MagicStickEvents implements Listener {
private final List<PlayerListener> teleportingPlayers = new ArrayList<>(); private final List<PlayerListener> teleportingPlayers = new ArrayList<>();
void load() { void load() {
HandlerList.unregisterAll(this);
Bukkit.getPluginManager().registerEvents(this, Main.getInstance()); Bukkit.getPluginManager().registerEvents(this, Main.getInstance());
Files.FILETYPE file = Main.getInstance().getFiles().getType(Files.FILETYPE.CONFIG); Files.FILETYPE file = Main.getInstance().getFiles().getType(Files.FILETYPE.CONFIG);
String title = file.getString("MagicStick.Item.Name"); String title = file.getString("MagicStick.Item.Name");

View File

@ -28,14 +28,13 @@ public class AddonParty implements Addon {
@Override @Override
public void load() { public void load() {
instance = this; instance = this;
HelperRTP_Command.registerCommand(cmd, false);
PluginManager pm = BetterRTP.getInstance().getServer().getPluginManager(); PluginManager pm = BetterRTP.getInstance().getServer().getPluginManager();
pm.registerEvents(handler, BetterRTP.getInstance()); pm.registerEvents(handler, BetterRTP.getInstance());
} }
@Override @Override
public void unload() { public void unload() {
HelperRTP_Command.registerCommand(cmd, false);
} }
public static AddonParty getInstance() { public static AddonParty getInstance() {

View File

@ -32,7 +32,7 @@ public class AddonPortals implements Addon {
@Override @Override
public void unload() { public void unload() {
portalsCache.unload(); portalsCache.unload();
events.unregiter(); events.unregister();
} }
@Override @Override

View File

@ -1,6 +1,5 @@
package me.SuperRonanCraft.BetterRTPAddons.addons.portals; package me.SuperRonanCraft.BetterRTPAddons.addons.portals;
import me.SuperRonanCraft.BetterRTP.BetterRTP;
import me.SuperRonanCraft.BetterRTP.player.rtp.RTP_TYPE; import me.SuperRonanCraft.BetterRTP.player.rtp.RTP_TYPE;
import me.SuperRonanCraft.BetterRTP.references.customEvents.RTP_CancelledEvent; import me.SuperRonanCraft.BetterRTP.references.customEvents.RTP_CancelledEvent;
import me.SuperRonanCraft.BetterRTP.references.customEvents.RTP_TeleportPostEvent; import me.SuperRonanCraft.BetterRTP.references.customEvents.RTP_TeleportPostEvent;
@ -36,7 +35,7 @@ public class PortalsEvents implements Listener {
ignoreCooldown = Main.getInstance().getFiles().getType(Files.FILETYPE.CONFIG).getBoolean("Portals.IgnoreCooldown"); ignoreCooldown = Main.getInstance().getFiles().getType(Files.FILETYPE.CONFIG).getBoolean("Portals.IgnoreCooldown");
} }
public void unregiter() { public void unregister() {
HandlerList.unregisterAll(this); HandlerList.unregisterAll(this);
} }

View File

@ -1,11 +1,8 @@
package me.SuperRonanCraft.BetterRTPAddons.addons.rtpmenu; package me.SuperRonanCraft.BetterRTPAddons.addons.rtpmenu;
import lombok.Getter;
import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommand; import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommand;
import me.SuperRonanCraft.BetterRTP.player.commands.types.CmdTeleport; import me.SuperRonanCraft.BetterRTP.player.commands.types.CmdTeleport;
import me.SuperRonanCraft.BetterRTP.references.customEvents.RTP_CommandEvent; import me.SuperRonanCraft.BetterRTP.references.customEvents.RTP_CommandEvent;
import me.SuperRonanCraft.BetterRTP.references.player.HelperPlayer;
import me.SuperRonanCraft.BetterRTP.references.player.playerdata.PlayerData;
import me.SuperRonanCraft.BetterRTPAddons.Addon; import me.SuperRonanCraft.BetterRTPAddons.Addon;
import me.SuperRonanCraft.BetterRTPAddons.Main; import me.SuperRonanCraft.BetterRTPAddons.Main;
import me.SuperRonanCraft.BetterRTPAddons.util.Files; import me.SuperRonanCraft.BetterRTPAddons.util.Files;
@ -16,7 +13,6 @@ import org.bukkit.event.EventHandler;
import org.bukkit.event.HandlerList; import org.bukkit.event.HandlerList;
import org.bukkit.event.Listener; import org.bukkit.event.Listener;
import org.bukkit.event.inventory.InventoryClickEvent; import org.bukkit.event.inventory.InventoryClickEvent;
import org.bukkit.inventory.Inventory;
import java.util.HashMap; import java.util.HashMap;
import java.util.Objects; import java.util.Objects;
@ -42,13 +38,12 @@ public class AddonRTPMenu implements Addon, Listener {
for (Player p : playerData.keySet()) for (Player p : playerData.keySet())
p.closeInventory(); p.closeInventory();
playerData.clear(); playerData.clear();
HandlerList.unregisterAll(this);
Bukkit.getServer().getPluginManager().registerEvents(this, Main.getInstance()); Bukkit.getServer().getPluginManager().registerEvents(this, Main.getInstance());
} }
@Override @Override
public void unload() { public void unload() {
HandlerList.unregisterAll(this);
} }
@Override @Override
@ -60,7 +55,9 @@ public class AddonRTPMenu implements Addon, Listener {
private void onClick(InventoryClickEvent e) { private void onClick(InventoryClickEvent e) {
if (validClick(e)) { if (validClick(e)) {
e.setCancelled(true); e.setCancelled(true);
e.getWhoClicked().sendMessage("Menu Inventory!"); MenuData data = getData((Player) e.getWhoClicked());
CmdTeleport.teleport(e.getWhoClicked(), "rtp", data.getWorldSlots().get(e.getSlot()).getName(), null);
e.getWhoClicked().closeInventory();
} }
} }
@ -68,7 +65,7 @@ public class AddonRTPMenu implements Addon, Listener {
private void onTeleport(RTP_CommandEvent e) { private void onTeleport(RTP_CommandEvent e) {
if (e.getCmd() instanceof CmdTeleport && e.getSendi() instanceof Player) { if (e.getCmd() instanceof CmdTeleport && e.getSendi() instanceof Player) {
e.setCancelled(true); e.setCancelled(true);
RTPMenu_CreateInventory.createInv(this, (Player) e.getSendi()); RTPMenu_SelectWorld.createInv(this, (Player) e.getSendi());
} }
} }

View File

@ -2,10 +2,14 @@ package me.SuperRonanCraft.BetterRTPAddons.addons.rtpmenu;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;
import org.bukkit.World;
import org.bukkit.inventory.Inventory; import org.bukkit.inventory.Inventory;
import java.util.HashMap;
public class MenuData { public class MenuData {
@Getter @Setter Inventory menuInv; @Getter @Setter Inventory menuInv;
@Getter @Setter HashMap<Integer, World> worldSlots;
} }

View File

@ -1,7 +1,9 @@
package me.SuperRonanCraft.BetterRTPAddons.addons.rtpmenu; package me.SuperRonanCraft.BetterRTPAddons.addons.rtpmenu;
import me.SuperRonanCraft.BetterRTP.BetterRTP; import me.SuperRonanCraft.BetterRTP.BetterRTP;
import me.SuperRonanCraft.BetterRTP.player.commands.types.CmdTeleport;
import me.SuperRonanCraft.BetterRTPAddons.util.Files; import me.SuperRonanCraft.BetterRTPAddons.util.Files;
import net.md_5.bungee.api.ChatColor;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.Material; import org.bukkit.Material;
import org.bukkit.World; import org.bukkit.World;
@ -15,46 +17,61 @@ import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
public class RTPMenu_CreateInventory { public class RTPMenu_SelectWorld {
public static void createInv(AddonRTPMenu pl, Player p) { public static void createInv(AddonRTPMenu pl, Player p) {
List<World> bukkit_worlds = Bukkit.getWorlds(); List<World> bukkit_worlds = Bukkit.getWorlds();
List<String> display_worlds = Files.FILETYPE.CONFIG.getStringList(AddonRTPMenu.name + ".Worlds"); List<String> display_worlds = Files.FILETYPE.CONFIG.getStringList(AddonRTPMenu.name + ".Worlds");
List<World> actual_worlds = new ArrayList<>(); List<World> actual_worlds = new ArrayList<>();
for (int i = 0; i < 10; i++) //add x Junk worlds for testing for (World world : bukkit_worlds) {
for (World world : bukkit_worlds) { if (display_worlds.contains(world.getName()) && BetterRTP.getInstance().getPerms().getAWorld(p, world.getName()))
if (display_worlds.contains(world.getName())) actual_worlds.add(world);
actual_worlds.add(world); }
} if (actual_worlds.size() <= 1) {
Inventory inv = createInventory(Files.FILETYPE.CONFIG.getString(AddonRTPMenu.name + ".Menu.Title"), Math.floorDiv(actual_worlds.size(), 9) * 9 + 9); CmdTeleport.teleport(p, "rtp", null, null);
return;
}
int size = Math.floorDiv(actual_worlds.size(), 9) * 9;
if (size < actual_worlds.size()) size += 9;
Inventory inv = createInventory(color(Files.FILETYPE.CONFIG.getString(AddonRTPMenu.name + ".Menu.Title")), size);
HashMap<World, Integer> world_slots = centerWorlds(new ArrayList<>(actual_worlds)); HashMap<Integer, World> world_slots = centerWorlds(new ArrayList<>(actual_worlds));
for (Map.Entry<World, Integer> world : world_slots.entrySet()) { String item_name = Files.FILETYPE.CONFIG.getString(AddonRTPMenu.name + ".Menu.Items.Name");
int slot = world.getValue(); List<String > item_lore = Files.FILETYPE.CONFIG.getStringList(AddonRTPMenu.name + ".Menu.Items.Lore");
for (Map.Entry<Integer, World> world : world_slots.entrySet()) {
int slot = world.getKey();
ItemStack item = new ItemStack(Material.MAP, 1); ItemStack item = new ItemStack(Material.MAP, 1);
ItemMeta meta = item.getItemMeta(); ItemMeta meta = item.getItemMeta();
assert meta != null; assert meta != null;
meta.setDisplayName(world.getKey().getName() + ": " + actual_worlds.size() + " " + world_slots.size()); meta.setDisplayName(color(item_name.replace("%world%", world.getValue().getName())));
List<String> lore = new ArrayList<>(item_lore);
lore.forEach(s -> lore.set(lore.indexOf(s), color(s).replace("%world%", world.getValue().getName())));
meta.setLore(lore);
item.setItemMeta(meta); item.setItemMeta(meta);
inv.setItem(slot, item); inv.setItem(slot, item);
} }
pl.getData(p).setMenuInv(inv); pl.getData(p).setMenuInv(inv);
pl.getData(p).setWorldSlots(world_slots);
p.openInventory(inv); p.openInventory(inv);
} }
private static HashMap<World, Integer> centerWorlds(List<World> actual_worlds) { private static HashMap<Integer, World> centerWorlds(List<World> actual_worlds) {
HashMap<World, Integer> map = new HashMap<>(); HashMap<Integer, World> map = new HashMap<>();
while(actual_worlds.size() >= 9) { while(actual_worlds.size() >= 9) {
map.put(actual_worlds.get(0), map.size()); for (int i = 0; i < 9; i++) {
actual_worlds.remove(0); map.put(map.size(), actual_worlds.get(0));
actual_worlds.remove(0);
}
} }
int slot = map.size(); int slot = map.size();
//BetterRTP.getInstance().getLogger().log(Level.INFO, "- " + actual_worlds.size());
for (int i = 0; i < actual_worlds.size(); i++) { for (int i = 0; i < actual_worlds.size(); i++) {
map.put(actual_worlds.get(i), slot + getSlotOffset(actual_worlds.size(), i) + i); int offset = getSlotOffset(actual_worlds.size(), i);
//BetterRTP.getInstance().getLogger().log(Level.INFO, "- " + offset);
map.put(slot + offset + i, actual_worlds.get(i));
} }
return map; return map;
} }
@ -86,7 +103,7 @@ public class RTPMenu_CreateInventory {
} }
break; break;
case 8: case 8:
if (index > 4) return 1; if (index >= 4) return 1;
} }
} else { } else {
switch (gear_to_show) { switch (gear_to_show) {
@ -99,9 +116,13 @@ public class RTPMenu_CreateInventory {
return 0; return 0;
} }
private static String color(String str) {
return ChatColor.translateAlternateColorCodes('&', str);
}
private static Inventory createInventory(String title, int size) { private static Inventory createInventory(String title, int size) {
title = BetterRTP.getInstance().getText().color(title); title = BetterRTP.getInstance().getText().color(title);
return Bukkit.createInventory(null, Math.min(size, 54), title); return Bukkit.createInventory(null, Math.max(Math.min(size, 54), 9), title);
} }
} }

View File

@ -7,7 +7,7 @@ import org.bukkit.World;
public class LocSerialization { public class LocSerialization {
public static String getStringFromLocation(Location loc) { public static String getStringFromLocation(Location loc) {
if (loc == null) { if (loc == null || loc.getWorld() == null) {
return ""; return "";
} }
return loc.getWorld().getName() + ":" + loc.getX() + ":" + loc.getY() + ":" + loc.getZ() + ":" + loc.getYaw() + ":" + loc.getPitch() ; return loc.getWorld().getName() + ":" + loc.getX() + ":" + loc.getY() + ":" + loc.getZ() + ":" + loc.getYaw() + ":" + loc.getPitch() ;

View File

@ -67,7 +67,10 @@ RTPMenu:
Menu: Menu:
Title: "Choose World" Title: "Choose World"
Items: Items:
Name: '&7%world%'
Lore:
- ''
- '&8Click to rtp into this world!'
Worlds: Worlds:
- world - world
- world_nether - world_nether

View File

@ -7,7 +7,7 @@
<groupId>me.SuperRonanCraft</groupId> <groupId>me.SuperRonanCraft</groupId>
<artifactId>BetterRTP</artifactId> <artifactId>BetterRTP</artifactId>
<packaging>jar</packaging> <packaging>jar</packaging>
<version>3.3.0</version> <version>3.2.3</version>
<properties> <properties>
<maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.source>1.8</maven.compiler.source>