Initial RS-ServerAdmnin commit

This commit is contained in:
BigPappa committed 2026-06-11 13:58:08 -05:00
commit 3cf919c460
22 files changed
+1843

No files matched your search

@@ -0,0 +1,171 @@
package com.rsscripting.serveradmin.gui;
import com.rsscripting.serveradmin.RSServerAdmin;
import com.rsscripting.serveradmin.settings.SettingKey;
import org.bukkit.Bukkit;
import org.bukkit.Material;
import org.bukkit.inventory.Inventory;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta;
public class CreeperMenu {
public static Inventory create() {
RSMenuHolder holder =
new RSMenuHolder("creeper");
Inventory inventory =
Bukkit.createInventory(
holder,
27,
"Creeper Settings"
);
try {
try {
boolean disableBlockDamage =
RSServerAdmin.getInstance()
.getSettingsDAO()
.getDefault(
SettingKey.CREEPER_BLOCK_DAMAGE
);
ItemStack blockDamage =
new ItemStack(Material.TNT);
ItemMeta blockMeta =
blockDamage.getItemMeta();
if (blockMeta != null) {
blockMeta.setDisplayName(
"§aBlock Damage"
);
blockMeta.setLore(
java.util.List.of(
"§7Disable Creeper damage to blocks",
"",
disableBlockDamage
? "§aCurrent: Explosion will not damage blocks"
: "§cCurrent: Explosion will damage blocks"
)
);
blockDamage.setItemMeta(
blockMeta
);
}
if (disableBlockDamage) {
GUIUtils.addGlow(
blockDamage
);
}
inventory.setItem(
11,
blockDamage
);
boolean disableEntityDamage =
RSServerAdmin.getInstance()
.getSettingsDAO()
.getDefault(
SettingKey.CREEPER_ENTITY_DAMAGE
);
ItemStack entityDamage =
new ItemStack(
Material.TOTEM_OF_UNDYING
);
ItemMeta entityMeta =
entityDamage.getItemMeta();
if (entityMeta != null) {
entityMeta.setDisplayName(
"§aEntity Damage"
);
entityMeta.setLore(
java.util.List.of(
"§7Disable Creeper damage to players and mobs",
"",
disableEntityDamage
? "§aCurrent: Explosion will not damage entities"
: "§cCurrent: Explosion will damage entities"
)
);
entityDamage.setItemMeta(
entityMeta
);
}
if (disableEntityDamage) {
GUIUtils.addGlow(
entityDamage
);
}
inventory.setItem(
15,
entityDamage
);
} catch (Exception ex) {
ex.printStackTrace();
}
} catch (Exception ex) {
ex.printStackTrace();
}
ItemStack back =
new ItemStack(Material.ARROW);
ItemMeta backMeta =
back.getItemMeta();
if (backMeta != null) {
backMeta.setDisplayName(
"§cBack"
);
back.setItemMeta(
backMeta
);
}
inventory.setItem(
22,
back
);
GUIUtils.fillEmptySlots(
inventory
);
return inventory;
}
}
@@ -0,0 +1,66 @@
package com.rsscripting.serveradmin.gui;
import org.bukkit.Material;
import org.bukkit.inventory.Inventory;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta;
import org.bukkit.enchantments.Enchantment;
import org.bukkit.inventory.ItemFlag;
public class GUIUtils {
private GUIUtils() {
}
public static ItemStack createFiller() {
ItemStack item =
new ItemStack(Material.LIGHT_BLUE_STAINED_GLASS_PANE);
ItemMeta meta = item.getItemMeta();
if (meta != null) {
meta.setDisplayName(" ");
item.setItemMeta(meta);
}
return item;
}
public static void fillEmptySlots(Inventory inventory) {
ItemStack filler = createFiller();
for (int slot = 0; slot < inventory.getSize(); slot++) {
if (inventory.getItem(slot) == null) {
inventory.setItem(slot, filler);
}
}
}
public static void addGlow(ItemStack item) {
ItemMeta meta = item.getItemMeta();
if (meta == null) {
return;
}
meta.addEnchant(
Enchantment.UNBREAKING,
1,
true
);
meta.addItemFlags(
ItemFlag.HIDE_ENCHANTS
);
item.setItemMeta(meta);
}
}
@@ -0,0 +1,227 @@
package com.rsscripting.serveradmin.gui;
import com.rsscripting.serveradmin.RSServerAdmin;
import com.rsscripting.serveradmin.keepinventory.KeepInventoryDAO;
import com.rsscripting.serveradmin.gui.RSMenuHolder;
import com.rsscripting.serveradmin.settings.SettingKey;
import org.bukkit.Bukkit;
import org.bukkit.Material;
import org.bukkit.inventory.Inventory;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta;
import java.sql.SQLException;
import java.util.List;
public class KeepInventoryMenu {
private static final int WORLDS_PER_PAGE = 45;
public static Inventory create(
int page
) throws SQLException {
RSMenuHolder holder =
new RSMenuHolder(
"KEEP_INVENTORY"
);
holder.setPage(
page
);
Inventory inventory =
Bukkit.createInventory(
holder,
54,
"Keep Inventory"
);
GUIUtils.fillEmptySlots(
inventory
);
createBackButton(
inventory
);
createDefaultButton(
inventory
);
populateWorlds(
inventory,
page
);
return inventory;
}
private static void createBackButton(
Inventory inventory
) {
ItemStack item =
new ItemStack(
Material.ARROW
);
ItemMeta meta =
item.getItemMeta();
if (meta != null) {
meta.setDisplayName(
"§cBack"
);
item.setItemMeta(
meta
);
}
inventory.setItem(
0,
item
);
}
private static void createDefaultButton(
Inventory inventory
) throws SQLException {
boolean enabled =
RSServerAdmin.getInstance()
.getSettingsDAO()
.getDefault(
SettingKey.KEEP_INVENTORY_NEW_WORLD
);
ItemStack item =
new ItemStack(
Material.CHEST
);
ItemMeta meta =
item.getItemMeta();
if (meta != null) {
meta.setDisplayName(
"§eDefault For New Worlds"
);
meta.setLore(
List.of(
"§7Controls newly detected worlds",
"",
enabled
? "§aCurrent: New worlds keep inventory"
: "§cCurrent: New worlds drop inventory"
)
);
item.setItemMeta(
meta
);
}
if (enabled) {
GUIUtils.addGlow(
item
);
}
inventory.setItem(
4,
item
);
}
private static void populateWorlds(
Inventory inventory,
int page
) throws SQLException {
KeepInventoryDAO dao =
RSServerAdmin.getInstance()
.getKeepInventoryDAO();
List<String> worlds =
dao.getAllWorlds();
int start =
page * WORLDS_PER_PAGE;
int slot =
9;
for (int i = start;
i < worlds.size() && slot < 54;
i++) {
String worldName =
worlds.get(i);
boolean enabled =
dao.getWorldSetting(
worldName
);
ItemStack item =
new ItemStack(
Material.CHEST
);
ItemMeta meta =
item.getItemMeta();
if (meta != null) {
meta.setDisplayName(
"§e" + worldName
);
meta.setLore(
List.of(
"§7Keep Inventory",
"",
enabled
? "§aCurrent: Players keep inventory on death"
: "§cCurrent: Players drop inventory on death"
)
);
item.setItemMeta(
meta
);
}
if (enabled) {
GUIUtils.addGlow(
item
);
}
inventory.setItem(
slot,
item
);
slot++;
}
}
}
@@ -0,0 +1,57 @@
package com.rsscripting.serveradmin.gui;
import com.rsscripting.serveradmin.gui.GUIUtils;
import com.rsscripting.serveradmin.gui.RSMenuHolder;
import com.rsscripting.serveradmin.gui.KeepInventoryMenu;
import org.bukkit.Bukkit;
import org.bukkit.Material;
import org.bukkit.inventory.Inventory;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta;
public class MainMenu {
public static Inventory create() {
RSMenuHolder holder =
new RSMenuHolder("main");
Inventory inventory =
Bukkit.createInventory(
holder,
27,
"Main Menu"
);
ItemStack creeper = new ItemStack(Material.CREEPER_HEAD);
ItemMeta creeperMeta = creeper.getItemMeta();
if (creeperMeta != null) {
creeperMeta.setDisplayName("§aCreepers");
creeper.setItemMeta(creeperMeta);
}
inventory.setItem(11, creeper);
ItemStack keepInventory =
new ItemStack(Material.CHEST);
ItemMeta keepMeta =
keepInventory.getItemMeta();
if (keepMeta != null) {
keepMeta.setDisplayName("§aKeep Inventory");
keepInventory.setItemMeta(keepMeta);
}
inventory.setItem(15, keepInventory);
GUIUtils.fillEmptySlots(inventory);
return inventory;
}
}
@@ -0,0 +1,57 @@
package com.rsscripting.serveradmin.gui;
import org.bukkit.inventory.Inventory;
import org.bukkit.inventory.InventoryHolder;
import org.jetbrains.annotations.NotNull;
public class RSMenuHolder
implements InventoryHolder {
private final String menuId;
private int page = 1;
public RSMenuHolder(
String menuId
) {
this.menuId = menuId;
}
public String getMenuId() {
return menuId;
}
public int getPage() {
return page;
}
public void setPage(
int page
) {
if (page < 1) {
page = 1;
}
this.page = page;
}
@Override
public @NotNull Inventory getInventory() {
throw new UnsupportedOperationException(
"RSMenuHolder does not store an inventory."
);
}
}