feat: menu stuff
This commit is contained in:
parent
c173d73dc1
commit
92ac5a6048
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -10,6 +10,7 @@ import org.bukkit.event.EventHandler;
|
||||||
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.event.player.PlayerInteractEvent;
|
import org.bukkit.event.player.PlayerInteractEvent;
|
||||||
|
import org.bukkit.inventory.Inventory;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
@ -95,6 +96,11 @@ public class MenuListener implements Listener {
|
||||||
|
|
||||||
player.performCommand(menuEvent.get("data").toString());
|
player.performCommand(menuEvent.get("data").toString());
|
||||||
}
|
}
|
||||||
|
case "open_page" -> {
|
||||||
|
Inventory menuGui = GuiUtil.createGui(cosmeticsConfig, player, menuEvent.get("data").toString());
|
||||||
|
|
||||||
|
player.openInventory(menuGui);
|
||||||
|
}
|
||||||
case "do_nothing" -> {}
|
case "do_nothing" -> {}
|
||||||
default -> {
|
default -> {
|
||||||
player.closeInventory();
|
player.closeInventory();
|
||||||
|
|
|
@ -1,11 +1,8 @@
|
||||||
package me.theclashfruit.hubbit.events;
|
package me.theclashfruit.hubbit.events;
|
||||||
|
|
||||||
import me.clip.placeholderapi.PlaceholderAPI;
|
|
||||||
import me.theclashfruit.hubbit.Hubbit;
|
import me.theclashfruit.hubbit.Hubbit;
|
||||||
import me.theclashfruit.hubbit.utils.MessageFormatter;
|
import me.theclashfruit.hubbit.utils.MessageFormatter;
|
||||||
import net.kyori.adventure.text.Component;
|
import net.kyori.adventure.text.Component;
|
||||||
import net.kyori.adventure.text.minimessage.MiniMessage;
|
|
||||||
import org.bukkit.Bukkit;
|
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
import org.bukkit.configuration.Configuration;
|
import org.bukkit.configuration.Configuration;
|
||||||
import org.bukkit.event.EventHandler;
|
import org.bukkit.event.EventHandler;
|
||||||
|
@ -17,6 +14,8 @@ import org.bukkit.inventory.ItemStack;
|
||||||
import org.bukkit.inventory.meta.ItemMeta;
|
import org.bukkit.inventory.meta.ItemMeta;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.concurrent.atomic.AtomicInteger;
|
||||||
|
import java.util.concurrent.atomic.AtomicReference;
|
||||||
|
|
||||||
import static org.bukkit.plugin.java.JavaPlugin.getPlugin;
|
import static org.bukkit.plugin.java.JavaPlugin.getPlugin;
|
||||||
import static org.bukkit.Bukkit.getLogger;
|
import static org.bukkit.Bukkit.getLogger;
|
||||||
|
@ -58,8 +57,39 @@ public class PlayerActionsListener implements Listener {
|
||||||
event.getPlayer().getInventory().setContents(playerInv.getContents());
|
event.getPlayer().getInventory().setContents(playerInv.getContents());
|
||||||
event.getPlayer().updateInventory();
|
event.getPlayer().updateInventory();
|
||||||
|
|
||||||
if(mainConfig.getBoolean("hub.tablist")) {
|
if(mainConfig.getBoolean("hub.tablist.enabled")) {
|
||||||
|
AtomicReference<String> header = new AtomicReference<>("");
|
||||||
|
|
||||||
|
int headerLinesLength = mainConfig.getStringList("hub.tablist.header").size();
|
||||||
|
AtomicInteger headerCurrentLine = new AtomicInteger();
|
||||||
|
|
||||||
|
mainConfig.getStringList("hub.tablist.header").forEach(line -> {
|
||||||
|
if(headerLinesLength == (headerCurrentLine.get() + 1))
|
||||||
|
header.set(header + line);
|
||||||
|
else
|
||||||
|
header.set(header + line + "<newline>");
|
||||||
|
|
||||||
|
headerCurrentLine.getAndIncrement();
|
||||||
|
});
|
||||||
|
|
||||||
|
AtomicReference<String> footer = new AtomicReference<>("");
|
||||||
|
|
||||||
|
int footerLinesLength = mainConfig.getStringList("hub.tablist.footer").size();
|
||||||
|
AtomicInteger footerCurrentLine = new AtomicInteger();
|
||||||
|
|
||||||
|
mainConfig.getStringList("hub.tablist.footer").forEach(line -> {
|
||||||
|
if(footerLinesLength == (footerCurrentLine.get() + 1))
|
||||||
|
footer.set(footer + line);
|
||||||
|
else
|
||||||
|
footer.set(footer + line + "<newline>");
|
||||||
|
|
||||||
|
footerCurrentLine.getAndIncrement();
|
||||||
|
});
|
||||||
|
|
||||||
|
event.getPlayer().sendPlayerListHeaderAndFooter(
|
||||||
|
MessageFormatter.formatMessage(header.toString(), event.getPlayer()),
|
||||||
|
MessageFormatter.formatMessage(footer.toString(), event.getPlayer())
|
||||||
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -13,13 +13,15 @@ import org.bukkit.inventory.meta.ItemMeta;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
import java.util.Objects;
|
||||||
import java.util.concurrent.atomic.AtomicInteger;
|
import java.util.concurrent.atomic.AtomicInteger;
|
||||||
|
import java.util.concurrent.atomic.AtomicReference;
|
||||||
|
|
||||||
import static org.bukkit.plugin.java.JavaPlugin.getPlugin;
|
import static org.bukkit.plugin.java.JavaPlugin.getPlugin;
|
||||||
|
|
||||||
public class GuiUtil {
|
public class GuiUtil {
|
||||||
public static Inventory createGui(FileConfiguration guiConfig, Player guiHolder, String pageId) {
|
public static Inventory createGui(FileConfiguration guiConfig, Player guiHolder, String pageId) {
|
||||||
Inventory inventoryGui = new MenuInventoryHolder(getPlugin(Hubbit.class), guiConfig.getInt("size"), MessageFormatter.formatMessage(guiConfig.getString("title"), guiHolder)).getInventory();
|
Inventory inventoryGui = new MenuInventoryHolder(getPlugin(Hubbit.class), guiConfig.getInt("size"), MessageFormatter.formatMessage(guiConfig.getString("title"), guiHolder)).getInventory();;
|
||||||
|
|
||||||
int inventorySize = guiConfig.getInt("size");
|
int inventorySize = guiConfig.getInt("size");
|
||||||
|
|
||||||
|
@ -44,7 +46,9 @@ public class GuiUtil {
|
||||||
List<Map<?, ?>> items = (List<Map<?, ?>>) page.get("items");
|
List<Map<?, ?>> items = (List<Map<?, ?>>) page.get("items");
|
||||||
|
|
||||||
items.forEach(item -> {
|
items.forEach(item -> {
|
||||||
ItemStack itemStack = new ItemStack(Material.valueOf((String) item.get("material")), (int) item.get("count"));
|
Material itemMaterial = item.get("material").toString().startsWith("COSMETIC_") ? Material.STONE : Material.valueOf((String) item.get("material"));
|
||||||
|
|
||||||
|
ItemStack itemStack = new ItemStack(itemMaterial, (int) item.get("count"));
|
||||||
|
|
||||||
ItemMeta itemMeta = itemStack.getItemMeta();
|
ItemMeta itemMeta = itemStack.getItemMeta();
|
||||||
|
|
||||||
|
@ -61,7 +65,24 @@ public class GuiUtil {
|
||||||
|
|
||||||
itemStack.setItemMeta(itemMeta);
|
itemStack.setItemMeta(itemMeta);
|
||||||
|
|
||||||
|
getPlugin(Hubbit.class).getLogger().log(java.util.logging.Level.INFO, item.get("slot").toString());
|
||||||
|
|
||||||
|
if(Objects.equals(item.get("slot").toString(), "fill")) {
|
||||||
|
AtomicInteger i = new AtomicInteger(0);
|
||||||
|
while(i.get() < inventorySize) {
|
||||||
|
if(inventoryGui.getItem(i.get()) == null) {
|
||||||
|
inventoryGui.setItem(i.get(), itemStack);
|
||||||
|
}
|
||||||
|
i.getAndIncrement();
|
||||||
|
}
|
||||||
|
|
||||||
|
getPlugin(Hubbit.class).getLogger().log(java.util.logging.Level.INFO, item.get("slot").toString());
|
||||||
|
} else {
|
||||||
inventoryGui.setItem((int) item.get("slot"), itemStack);
|
inventoryGui.setItem((int) item.get("slot"), itemStack);
|
||||||
|
|
||||||
|
getPlugin(Hubbit.class).getLogger().log(java.util.logging.Level.INFO, item.get("slot").toString());
|
||||||
|
|
||||||
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
|
@ -24,7 +24,7 @@ hub:
|
||||||
- '<grey>Select your awesome cosmetics!'
|
- '<grey>Select your awesome cosmetics!'
|
||||||
protection: true
|
protection: true
|
||||||
tablist:
|
tablist:
|
||||||
enbled: true
|
enabled: true
|
||||||
header:
|
header:
|
||||||
- '<dark_aqua>Hubbit'
|
- '<dark_aqua>Hubbit'
|
||||||
- ''
|
- ''
|
||||||
|
|
Loading…
Reference in a new issue