Initial RS-ServerAdmnin commit
This commit is contained in:
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."
|
||||
);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
Reference in new issue
Block a user