mirror of
https://github.com/RonanPlugins/BetterRTP.git
synced 2025-08-17 17:15:47 +00:00
RTPMenu addon finalized - v1.8 - brtp v2.2.3
This commit is contained in:
parent
bd07536c0c
commit
870b60b245
@ -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 -->
|
||||||
|
@ -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());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -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");
|
||||||
|
@ -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");
|
||||||
|
@ -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() {
|
||||||
|
@ -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
|
||||||
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -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());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -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;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
@ -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() ;
|
||||||
|
@ -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
|
2
pom.xml
2
pom.xml
@ -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>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user