diff --git a/BetterRTPAddons/pom.xml b/BetterRTPAddons/pom.xml
index 9517092..ff03a63 100644
--- a/BetterRTPAddons/pom.xml
+++ b/BetterRTPAddons/pom.xml
@@ -12,6 +12,7 @@
1.8
1.8
+ UTF-8
@@ -108,7 +109,7 @@
me.SuperRonanCraft
BetterRTP
- 3.3.0
+ 3.2.3
provided
diff --git a/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/addons/commands/CommandsLoader.java b/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/addons/commands/CommandsLoader.java
index e839994..92b4363 100644
--- a/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/addons/commands/CommandsLoader.java
+++ b/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/addons/commands/CommandsLoader.java
@@ -28,7 +28,6 @@ public class CommandsLoader implements Listener {
commands.put(type, cmds);
}
}
- HandlerList.unregisterAll(this);
Bukkit.getPluginManager().registerEvents(this, Main.getInstance());
}
diff --git a/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/addons/logger/AddonLogger.java b/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/addons/logger/AddonLogger.java
index a681649..11d875e 100644
--- a/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/addons/logger/AddonLogger.java
+++ b/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/addons/logger/AddonLogger.java
@@ -37,7 +37,6 @@ public class AddonLogger implements Addon, Listener {
@Override
public void load() {
- HandlerList.unregisterAll(this);
Bukkit.getPluginManager().registerEvents(this, Main.getInstance());
this.format = getFile(Files.FILETYPE.CONFIG).getString(name + ".Format");
this.toConsole = getFile(Files.FILETYPE.CONFIG).getBoolean(name + ".LogToConsole");
diff --git a/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/addons/magicStick/MagicStickEvents.java b/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/addons/magicStick/MagicStickEvents.java
index 80920d0..059c5a0 100644
--- a/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/addons/magicStick/MagicStickEvents.java
+++ b/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/addons/magicStick/MagicStickEvents.java
@@ -34,7 +34,6 @@ public class MagicStickEvents implements Listener {
private final List teleportingPlayers = new ArrayList<>();
void load() {
- HandlerList.unregisterAll(this);
Bukkit.getPluginManager().registerEvents(this, Main.getInstance());
Files.FILETYPE file = Main.getInstance().getFiles().getType(Files.FILETYPE.CONFIG);
String title = file.getString("MagicStick.Item.Name");
diff --git a/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/addons/partyrtp/AddonParty.java b/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/addons/partyrtp/AddonParty.java
index 0a04de2..02ef1a6 100644
--- a/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/addons/partyrtp/AddonParty.java
+++ b/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/addons/partyrtp/AddonParty.java
@@ -28,14 +28,13 @@ public class AddonParty implements Addon {
@Override
public void load() {
instance = this;
- HelperRTP_Command.registerCommand(cmd, false);
PluginManager pm = BetterRTP.getInstance().getServer().getPluginManager();
pm.registerEvents(handler, BetterRTP.getInstance());
}
@Override
public void unload() {
-
+ HelperRTP_Command.registerCommand(cmd, false);
}
public static AddonParty getInstance() {
diff --git a/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/addons/portals/AddonPortals.java b/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/addons/portals/AddonPortals.java
index 41e4d2d..1d6853a 100644
--- a/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/addons/portals/AddonPortals.java
+++ b/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/addons/portals/AddonPortals.java
@@ -32,7 +32,7 @@ public class AddonPortals implements Addon {
@Override
public void unload() {
portalsCache.unload();
- events.unregiter();
+ events.unregister();
}
@Override
diff --git a/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/addons/portals/PortalsEvents.java b/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/addons/portals/PortalsEvents.java
index 63cf3f1..25021f6 100644
--- a/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/addons/portals/PortalsEvents.java
+++ b/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/addons/portals/PortalsEvents.java
@@ -1,6 +1,5 @@
package me.SuperRonanCraft.BetterRTPAddons.addons.portals;
-import me.SuperRonanCraft.BetterRTP.BetterRTP;
import me.SuperRonanCraft.BetterRTP.player.rtp.RTP_TYPE;
import me.SuperRonanCraft.BetterRTP.references.customEvents.RTP_CancelledEvent;
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");
}
- public void unregiter() {
+ public void unregister() {
HandlerList.unregisterAll(this);
}
diff --git a/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/addons/rtpmenu/AddonRTPMenu.java b/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/addons/rtpmenu/AddonRTPMenu.java
index 366a1d8..c1bd9e5 100644
--- a/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/addons/rtpmenu/AddonRTPMenu.java
+++ b/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/addons/rtpmenu/AddonRTPMenu.java
@@ -1,11 +1,8 @@
package me.SuperRonanCraft.BetterRTPAddons.addons.rtpmenu;
-import lombok.Getter;
import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommand;
import me.SuperRonanCraft.BetterRTP.player.commands.types.CmdTeleport;
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.Main;
import me.SuperRonanCraft.BetterRTPAddons.util.Files;
@@ -16,7 +13,6 @@ import org.bukkit.event.EventHandler;
import org.bukkit.event.HandlerList;
import org.bukkit.event.Listener;
import org.bukkit.event.inventory.InventoryClickEvent;
-import org.bukkit.inventory.Inventory;
import java.util.HashMap;
import java.util.Objects;
@@ -42,13 +38,12 @@ public class AddonRTPMenu implements Addon, Listener {
for (Player p : playerData.keySet())
p.closeInventory();
playerData.clear();
- HandlerList.unregisterAll(this);
Bukkit.getServer().getPluginManager().registerEvents(this, Main.getInstance());
}
@Override
public void unload() {
-
+ HandlerList.unregisterAll(this);
}
@Override
@@ -60,7 +55,9 @@ public class AddonRTPMenu implements Addon, Listener {
private void onClick(InventoryClickEvent e) {
if (validClick(e)) {
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) {
if (e.getCmd() instanceof CmdTeleport && e.getSendi() instanceof Player) {
e.setCancelled(true);
- RTPMenu_CreateInventory.createInv(this, (Player) e.getSendi());
+ RTPMenu_SelectWorld.createInv(this, (Player) e.getSendi());
}
}
diff --git a/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/addons/rtpmenu/MenuData.java b/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/addons/rtpmenu/MenuData.java
index a68d79d..fc5ea72 100644
--- a/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/addons/rtpmenu/MenuData.java
+++ b/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/addons/rtpmenu/MenuData.java
@@ -2,10 +2,14 @@ package me.SuperRonanCraft.BetterRTPAddons.addons.rtpmenu;
import lombok.Getter;
import lombok.Setter;
+import org.bukkit.World;
import org.bukkit.inventory.Inventory;
+import java.util.HashMap;
+
public class MenuData {
@Getter @Setter Inventory menuInv;
+ @Getter @Setter HashMap worldSlots;
}
diff --git a/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/addons/rtpmenu/RTPMenu_CreateInventory.java b/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/addons/rtpmenu/RTPMenu_SelectWorld.java
similarity index 54%
rename from BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/addons/rtpmenu/RTPMenu_CreateInventory.java
rename to BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/addons/rtpmenu/RTPMenu_SelectWorld.java
index 704d5eb..12de333 100644
--- a/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/addons/rtpmenu/RTPMenu_CreateInventory.java
+++ b/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/addons/rtpmenu/RTPMenu_SelectWorld.java
@@ -1,7 +1,9 @@
package me.SuperRonanCraft.BetterRTPAddons.addons.rtpmenu;
import me.SuperRonanCraft.BetterRTP.BetterRTP;
+import me.SuperRonanCraft.BetterRTP.player.commands.types.CmdTeleport;
import me.SuperRonanCraft.BetterRTPAddons.util.Files;
+import net.md_5.bungee.api.ChatColor;
import org.bukkit.Bukkit;
import org.bukkit.Material;
import org.bukkit.World;
@@ -15,46 +17,61 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
-public class RTPMenu_CreateInventory {
+public class RTPMenu_SelectWorld {
public static void createInv(AddonRTPMenu pl, Player p) {
List bukkit_worlds = Bukkit.getWorlds();
List display_worlds = Files.FILETYPE.CONFIG.getStringList(AddonRTPMenu.name + ".Worlds");
List actual_worlds = new ArrayList<>();
- for (int i = 0; i < 10; i++) //add x Junk worlds for testing
- for (World world : bukkit_worlds) {
- if (display_worlds.contains(world.getName()))
- actual_worlds.add(world);
- }
- Inventory inv = createInventory(Files.FILETYPE.CONFIG.getString(AddonRTPMenu.name + ".Menu.Title"), Math.floorDiv(actual_worlds.size(), 9) * 9 + 9);
+ for (World world : bukkit_worlds) {
+ if (display_worlds.contains(world.getName()) && BetterRTP.getInstance().getPerms().getAWorld(p, world.getName()))
+ actual_worlds.add(world);
+ }
+ if (actual_worlds.size() <= 1) {
+ 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_slots = centerWorlds(new ArrayList<>(actual_worlds));
+ HashMap world_slots = centerWorlds(new ArrayList<>(actual_worlds));
- for (Map.Entry world : world_slots.entrySet()) {
- int slot = world.getValue();
+ String item_name = Files.FILETYPE.CONFIG.getString(AddonRTPMenu.name + ".Menu.Items.Name");
+ List item_lore = Files.FILETYPE.CONFIG.getStringList(AddonRTPMenu.name + ".Menu.Items.Lore");
+ for (Map.Entry world : world_slots.entrySet()) {
+ int slot = world.getKey();
ItemStack item = new ItemStack(Material.MAP, 1);
ItemMeta meta = item.getItemMeta();
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 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);
inv.setItem(slot, item);
}
pl.getData(p).setMenuInv(inv);
+ pl.getData(p).setWorldSlots(world_slots);
p.openInventory(inv);
}
- private static HashMap centerWorlds(List actual_worlds) {
- HashMap map = new HashMap<>();
+ private static HashMap centerWorlds(List actual_worlds) {
+ HashMap map = new HashMap<>();
while(actual_worlds.size() >= 9) {
- map.put(actual_worlds.get(0), map.size());
- actual_worlds.remove(0);
+ for (int i = 0; i < 9; i++) {
+ map.put(map.size(), actual_worlds.get(0));
+ actual_worlds.remove(0);
+ }
}
int slot = map.size();
+ //BetterRTP.getInstance().getLogger().log(Level.INFO, "- " + actual_worlds.size());
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;
}
@@ -86,7 +103,7 @@ public class RTPMenu_CreateInventory {
}
break;
case 8:
- if (index > 4) return 1;
+ if (index >= 4) return 1;
}
} else {
switch (gear_to_show) {
@@ -99,9 +116,13 @@ public class RTPMenu_CreateInventory {
return 0;
}
+ private static String color(String str) {
+ return ChatColor.translateAlternateColorCodes('&', str);
+ }
+
private static Inventory createInventory(String title, int size) {
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);
}
}
diff --git a/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/util/LocSerialization.java b/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/util/LocSerialization.java
index c1aed36..dc1b717 100644
--- a/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/util/LocSerialization.java
+++ b/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/util/LocSerialization.java
@@ -7,7 +7,7 @@ import org.bukkit.World;
public class LocSerialization {
public static String getStringFromLocation(Location loc) {
- if (loc == null) {
+ if (loc == null || loc.getWorld() == null) {
return "";
}
return loc.getWorld().getName() + ":" + loc.getX() + ":" + loc.getY() + ":" + loc.getZ() + ":" + loc.getYaw() + ":" + loc.getPitch() ;
diff --git a/BetterRTPAddons/src/main/resources/config.yml b/BetterRTPAddons/src/main/resources/config.yml
index 170f0d0..28d3ef5 100644
--- a/BetterRTPAddons/src/main/resources/config.yml
+++ b/BetterRTPAddons/src/main/resources/config.yml
@@ -67,7 +67,10 @@ RTPMenu:
Menu:
Title: "Choose World"
Items:
-
+ Name: '&7%world%'
+ Lore:
+ - ''
+ - '&8Click to rtp into this world!'
Worlds:
- world
- world_nether
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
index 235cd37..90e532f 100644
--- a/pom.xml
+++ b/pom.xml
@@ -7,7 +7,7 @@
me.SuperRonanCraft
BetterRTP
jar
- 3.3.0
+ 3.2.3
1.8