1.4.1
Added: - Creeper Disable Fuse Setting
This commit is contained in:
1 parent
c5ce14ffbb
commit
196dc123e7
11 files changed
+985
-65
No files matched your search
@@ -8,7 +8,7 @@
|
|||||||
<groupId>com.rsscripting</groupId>
|
<groupId>com.rsscripting</groupId>
|
||||||
<artifactId>RS-ServerAdmin</artifactId>
|
<artifactId>RS-ServerAdmin</artifactId>
|
||||||
<name>RS-ServerAdmin</name>
|
<name>RS-ServerAdmin</name>
|
||||||
<version>1.4.0</version>
|
<version>1.4.1</version>
|
||||||
|
|
||||||
<properties>
|
<properties>
|
||||||
<java.version>21</java.version>
|
<java.version>21</java.version>
|
||||||
|
|||||||
@@ -102,10 +102,16 @@ public class RSServerAdmin extends JavaPlugin {
|
|||||||
SettingKey.CREEPER_ENTITY_DAMAGE
|
SettingKey.CREEPER_ENTITY_DAMAGE
|
||||||
);
|
);
|
||||||
|
|
||||||
|
boolean disableFuseDefault =
|
||||||
|
settingsDAO.getDefault(
|
||||||
|
SettingKey.CREEPER_DISABLE_FUSE
|
||||||
|
);
|
||||||
|
|
||||||
creeperSettingsDAO.ensureWorldExists(
|
creeperSettingsDAO.ensureWorldExists(
|
||||||
world.getName(),
|
world.getName(),
|
||||||
blockDamageDefault,
|
blockDamageDefault,
|
||||||
entityDamageDefault
|
entityDamageDefault,
|
||||||
|
disableFuseDefault
|
||||||
);
|
);
|
||||||
|
|
||||||
equipmentDropSettingsDAO.ensureWorldExists(
|
equipmentDropSettingsDAO.ensureWorldExists(
|
||||||
@@ -148,6 +154,16 @@ public class RSServerAdmin extends JavaPlugin {
|
|||||||
this
|
this
|
||||||
);
|
);
|
||||||
|
|
||||||
|
getServer().getPluginManager().registerEvents(
|
||||||
|
new CreeperDisableFuseListener(),
|
||||||
|
this
|
||||||
|
);
|
||||||
|
|
||||||
|
getServer().getPluginManager().registerEvents(
|
||||||
|
new CreeperMenuListener(),
|
||||||
|
this
|
||||||
|
);
|
||||||
|
|
||||||
getServer().getPluginManager().registerEvents(
|
getServer().getPluginManager().registerEvents(
|
||||||
new WorldLoadListener(),
|
new WorldLoadListener(),
|
||||||
this
|
this
|
||||||
@@ -158,11 +174,6 @@ public class RSServerAdmin extends JavaPlugin {
|
|||||||
this
|
this
|
||||||
);
|
);
|
||||||
|
|
||||||
getServer().getPluginManager().registerEvents(
|
|
||||||
new CreeperMenuListener(),
|
|
||||||
this
|
|
||||||
);
|
|
||||||
|
|
||||||
getServer().getPluginManager().registerEvents(
|
getServer().getPluginManager().registerEvents(
|
||||||
new MobEquipmentMenuListener(),
|
new MobEquipmentMenuListener(),
|
||||||
this
|
this
|
||||||
|
|||||||
@@ -26,6 +26,22 @@ public class CreeperSettingsDAO {
|
|||||||
boolean entityDamage
|
boolean entityDamage
|
||||||
) throws SQLException {
|
) throws SQLException {
|
||||||
|
|
||||||
|
ensureWorldExists(
|
||||||
|
worldName,
|
||||||
|
blockDamage,
|
||||||
|
entityDamage,
|
||||||
|
false
|
||||||
|
);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public void ensureWorldExists(
|
||||||
|
String worldName,
|
||||||
|
boolean blockDamage,
|
||||||
|
boolean entityDamage,
|
||||||
|
boolean disableFuse
|
||||||
|
) throws SQLException {
|
||||||
|
|
||||||
Connection connection =
|
Connection connection =
|
||||||
databaseManager.getConnection();
|
databaseManager.getConnection();
|
||||||
|
|
||||||
@@ -37,9 +53,10 @@ public class CreeperSettingsDAO {
|
|||||||
(
|
(
|
||||||
world_name,
|
world_name,
|
||||||
block_damage,
|
block_damage,
|
||||||
entity_damage
|
entity_damage,
|
||||||
|
disable_fuse
|
||||||
)
|
)
|
||||||
VALUES (?, ?, ?)
|
VALUES (?, ?, ?, ?)
|
||||||
"""
|
"""
|
||||||
)) {
|
)) {
|
||||||
|
|
||||||
@@ -58,6 +75,11 @@ public class CreeperSettingsDAO {
|
|||||||
entityDamage ? 1 : 0
|
entityDamage ? 1 : 0
|
||||||
);
|
);
|
||||||
|
|
||||||
|
statement.setInt(
|
||||||
|
4,
|
||||||
|
disableFuse ? 1 : 0
|
||||||
|
);
|
||||||
|
|
||||||
statement.executeUpdate();
|
statement.executeUpdate();
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -210,4 +232,77 @@ public class CreeperSettingsDAO {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean getDisableFuse(
|
||||||
|
String worldName
|
||||||
|
) throws SQLException {
|
||||||
|
|
||||||
|
Connection connection =
|
||||||
|
databaseManager.getConnection();
|
||||||
|
|
||||||
|
try (PreparedStatement statement =
|
||||||
|
connection.prepareStatement(
|
||||||
|
"""
|
||||||
|
SELECT disable_fuse
|
||||||
|
FROM creeper_settings
|
||||||
|
WHERE world_name = ?
|
||||||
|
"""
|
||||||
|
)) {
|
||||||
|
|
||||||
|
statement.setString(
|
||||||
|
1,
|
||||||
|
worldName
|
||||||
|
);
|
||||||
|
|
||||||
|
try (ResultSet rs =
|
||||||
|
statement.executeQuery()) {
|
||||||
|
|
||||||
|
if (rs.next()) {
|
||||||
|
|
||||||
|
return rs.getInt(
|
||||||
|
"disable_fuse"
|
||||||
|
) == 1;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setDisableFuse(
|
||||||
|
String worldName,
|
||||||
|
boolean value
|
||||||
|
) throws SQLException {
|
||||||
|
|
||||||
|
Connection connection =
|
||||||
|
databaseManager.getConnection();
|
||||||
|
|
||||||
|
try (PreparedStatement statement =
|
||||||
|
connection.prepareStatement(
|
||||||
|
"""
|
||||||
|
UPDATE creeper_settings
|
||||||
|
SET disable_fuse = ?
|
||||||
|
WHERE world_name = ?
|
||||||
|
"""
|
||||||
|
)) {
|
||||||
|
|
||||||
|
statement.setInt(
|
||||||
|
1,
|
||||||
|
value ? 1 : 0
|
||||||
|
);
|
||||||
|
|
||||||
|
statement.setString(
|
||||||
|
2,
|
||||||
|
worldName
|
||||||
|
);
|
||||||
|
|
||||||
|
statement.executeUpdate();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -22,40 +22,68 @@ public class SettingsDAO {
|
|||||||
|
|
||||||
if (!defaultExists(key)) {
|
if (!defaultExists(key)) {
|
||||||
|
|
||||||
boolean value = getDefaultValue(key);
|
boolean value =
|
||||||
|
getDefaultValue(key);
|
||||||
|
|
||||||
|
setDefault(
|
||||||
|
key,
|
||||||
|
value
|
||||||
|
);
|
||||||
|
|
||||||
setDefault(key, value);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean defaultExists(SettingKey key) throws SQLException {
|
}
|
||||||
|
|
||||||
Connection connection = databaseManager.getConnection();
|
}
|
||||||
|
|
||||||
try (PreparedStatement statement = connection.prepareStatement(
|
private boolean defaultExists(
|
||||||
"SELECT setting_key FROM defaults WHERE setting_key = ?")) {
|
SettingKey key
|
||||||
|
) throws SQLException {
|
||||||
|
|
||||||
statement.setString(1, key.name());
|
Connection connection =
|
||||||
|
databaseManager.getConnection();
|
||||||
|
|
||||||
|
try (PreparedStatement statement =
|
||||||
|
connection.prepareStatement(
|
||||||
|
"""
|
||||||
|
SELECT setting_key
|
||||||
|
FROM defaults
|
||||||
|
WHERE setting_key = ?
|
||||||
|
"""
|
||||||
|
)) {
|
||||||
|
|
||||||
|
statement.setString(
|
||||||
|
1,
|
||||||
|
key.name()
|
||||||
|
);
|
||||||
|
|
||||||
|
try (ResultSet rs =
|
||||||
|
statement.executeQuery()) {
|
||||||
|
|
||||||
try (ResultSet rs = statement.executeQuery()) {
|
|
||||||
return rs.next();
|
return rs.next();
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean getDefaultValue(SettingKey key) {
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private boolean getDefaultValue(
|
||||||
|
SettingKey key
|
||||||
|
) {
|
||||||
|
|
||||||
return switch (key) {
|
return switch (key) {
|
||||||
|
|
||||||
case KEEP_INVENTORY -> true;
|
|
||||||
|
|
||||||
case CREEPER_BLOCK_DAMAGE,
|
case CREEPER_BLOCK_DAMAGE,
|
||||||
CREEPER_ENTITY_DAMAGE,
|
CREEPER_ENTITY_DAMAGE,
|
||||||
|
CREEPER_DISABLE_FUSE,
|
||||||
KEEP_INVENTORY_NEW_WORLD,
|
KEEP_INVENTORY_NEW_WORLD,
|
||||||
PEACEFUL_MOBS_NEW_WORLD -> false;
|
PEACEFUL_MOBS_NEW_WORLD -> false;
|
||||||
|
|
||||||
|
case KEEP_INVENTORY -> true;
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setDefault(
|
public void setDefault(
|
||||||
@@ -63,9 +91,11 @@ public class SettingsDAO {
|
|||||||
boolean value
|
boolean value
|
||||||
) throws SQLException {
|
) throws SQLException {
|
||||||
|
|
||||||
Connection connection = databaseManager.getConnection();
|
Connection connection =
|
||||||
|
databaseManager.getConnection();
|
||||||
|
|
||||||
try (PreparedStatement statement = connection.prepareStatement(
|
try (PreparedStatement statement =
|
||||||
|
connection.prepareStatement(
|
||||||
"""
|
"""
|
||||||
INSERT OR REPLACE INTO defaults
|
INSERT OR REPLACE INTO defaults
|
||||||
(setting_key, value)
|
(setting_key, value)
|
||||||
@@ -73,10 +103,18 @@ public class SettingsDAO {
|
|||||||
"""
|
"""
|
||||||
)) {
|
)) {
|
||||||
|
|
||||||
statement.setString(1, key.name());
|
statement.setString(
|
||||||
statement.setInt(2, value ? 1 : 0);
|
1,
|
||||||
|
key.name()
|
||||||
|
);
|
||||||
|
|
||||||
|
statement.setInt(
|
||||||
|
2,
|
||||||
|
value ? 1 : 0
|
||||||
|
);
|
||||||
|
|
||||||
statement.executeUpdate();
|
statement.executeUpdate();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -107,7 +145,9 @@ public class SettingsDAO {
|
|||||||
|
|
||||||
if (rs.next()) {
|
if (rs.next()) {
|
||||||
|
|
||||||
return rs.getInt("value") == 1;
|
return rs.getInt(
|
||||||
|
"value"
|
||||||
|
) == 1;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ import com.rsscripting.serveradmin.RSServerAdmin;
|
|||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.sql.Connection;
|
import java.sql.Connection;
|
||||||
import java.sql.DriverManager;
|
import java.sql.DriverManager;
|
||||||
|
import java.sql.ResultSet;
|
||||||
import java.sql.SQLException;
|
import java.sql.SQLException;
|
||||||
import java.sql.Statement;
|
import java.sql.Statement;
|
||||||
|
|
||||||
@@ -50,7 +51,8 @@ public class DatabaseManager {
|
|||||||
|
|
||||||
private void createTables() throws SQLException {
|
private void createTables() throws SQLException {
|
||||||
|
|
||||||
try (Statement statement = connection.createStatement()) {
|
try (Statement statement =
|
||||||
|
connection.createStatement()) {
|
||||||
|
|
||||||
statement.execute("""
|
statement.execute("""
|
||||||
CREATE TABLE IF NOT EXISTS settings (
|
CREATE TABLE IF NOT EXISTS settings (
|
||||||
@@ -74,28 +76,25 @@ public class DatabaseManager {
|
|||||||
)
|
)
|
||||||
""");
|
""");
|
||||||
|
|
||||||
statement.execute(
|
statement.execute("""
|
||||||
"""
|
CREATE TABLE IF NOT EXISTS keep_inventory (
|
||||||
CREATE TABLE IF NOT EXISTS keep_inventory
|
|
||||||
(
|
|
||||||
world_name TEXT PRIMARY KEY,
|
world_name TEXT PRIMARY KEY,
|
||||||
enabled INTEGER NOT NULL
|
enabled INTEGER NOT NULL
|
||||||
)
|
)
|
||||||
"""
|
""");
|
||||||
);
|
|
||||||
|
|
||||||
statement.execute(
|
statement.execute("""
|
||||||
"""
|
|
||||||
CREATE TABLE IF NOT EXISTS creeper_settings (
|
CREATE TABLE IF NOT EXISTS creeper_settings (
|
||||||
world_name TEXT PRIMARY KEY,
|
world_name TEXT PRIMARY KEY,
|
||||||
block_damage INTEGER NOT NULL,
|
block_damage INTEGER NOT NULL,
|
||||||
entity_damage INTEGER NOT NULL
|
entity_damage INTEGER NOT NULL,
|
||||||
|
disable_fuse INTEGER NOT NULL DEFAULT 0
|
||||||
)
|
)
|
||||||
"""
|
""");
|
||||||
);
|
|
||||||
|
|
||||||
statement.execute(
|
addDisableFuseColumnIfNeeded();
|
||||||
"""
|
|
||||||
|
statement.execute("""
|
||||||
CREATE TABLE IF NOT EXISTS equipment_drop_settings (
|
CREATE TABLE IF NOT EXISTS equipment_drop_settings (
|
||||||
world_name TEXT PRIMARY KEY,
|
world_name TEXT PRIMARY KEY,
|
||||||
helmet INTEGER NOT NULL,
|
helmet INTEGER NOT NULL,
|
||||||
@@ -105,20 +104,62 @@ public class DatabaseManager {
|
|||||||
main_hand INTEGER NOT NULL,
|
main_hand INTEGER NOT NULL,
|
||||||
off_hand INTEGER NOT NULL
|
off_hand INTEGER NOT NULL
|
||||||
)
|
)
|
||||||
"""
|
""");
|
||||||
);
|
|
||||||
|
|
||||||
statement.execute(
|
statement.execute("""
|
||||||
"""
|
|
||||||
CREATE TABLE IF NOT EXISTS peaceful_mobs (
|
CREATE TABLE IF NOT EXISTS peaceful_mobs (
|
||||||
world_name TEXT PRIMARY KEY,
|
world_name TEXT PRIMARY KEY,
|
||||||
enabled INTEGER NOT NULL
|
enabled INTEGER NOT NULL
|
||||||
)
|
)
|
||||||
|
""");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void addDisableFuseColumnIfNeeded()
|
||||||
|
throws SQLException {
|
||||||
|
|
||||||
|
boolean columnExists = false;
|
||||||
|
|
||||||
|
try (Statement statement =
|
||||||
|
connection.createStatement();
|
||||||
|
ResultSet resultSet =
|
||||||
|
statement.executeQuery(
|
||||||
|
"PRAGMA table_info(creeper_settings)"
|
||||||
|
)) {
|
||||||
|
|
||||||
|
while (resultSet.next()) {
|
||||||
|
|
||||||
|
String columnName =
|
||||||
|
resultSet.getString("name");
|
||||||
|
|
||||||
|
if ("disable_fuse".equalsIgnoreCase(
|
||||||
|
columnName
|
||||||
|
)) {
|
||||||
|
|
||||||
|
columnExists = true;
|
||||||
|
break;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!columnExists) {
|
||||||
|
|
||||||
|
try (Statement statement =
|
||||||
|
connection.createStatement()) {
|
||||||
|
|
||||||
|
statement.execute(
|
||||||
|
"""
|
||||||
|
ALTER TABLE creeper_settings
|
||||||
|
ADD COLUMN disable_fuse
|
||||||
|
INTEGER NOT NULL DEFAULT 0
|
||||||
"""
|
"""
|
||||||
);
|
);
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public Connection getConnection() {
|
public Connection getConnection() {
|
||||||
return connection;
|
return connection;
|
||||||
|
|||||||
@@ -0,0 +1,275 @@
|
|||||||
|
package com.rsscripting.serveradmin.gui;
|
||||||
|
|
||||||
|
import com.rsscripting.serveradmin.RSServerAdmin;
|
||||||
|
import com.rsscripting.serveradmin.dao.CreeperSettingsDAO;
|
||||||
|
import com.rsscripting.serveradmin.menuholder.RSMenuHolder;
|
||||||
|
import com.rsscripting.serveradmin.settings.SettingKey;
|
||||||
|
import com.rsscripting.serveradmin.utils.GUIUtils;
|
||||||
|
import com.rsscripting.serveradmin.utils.MenuLayoutUtils;
|
||||||
|
import org.bukkit.Bukkit;
|
||||||
|
import org.bukkit.Material;
|
||||||
|
import org.bukkit.NamespacedKey;
|
||||||
|
import org.bukkit.inventory.Inventory;
|
||||||
|
import org.bukkit.inventory.ItemStack;
|
||||||
|
import org.bukkit.inventory.meta.ItemMeta;
|
||||||
|
import org.bukkit.persistence.PersistentDataType;
|
||||||
|
|
||||||
|
import java.sql.SQLException;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public class CreeperDisableFuseMenu {
|
||||||
|
|
||||||
|
private static final int WORLDS_PER_PAGE = 45;
|
||||||
|
|
||||||
|
public static Inventory create(
|
||||||
|
int page
|
||||||
|
) throws SQLException {
|
||||||
|
|
||||||
|
RSMenuHolder holder =
|
||||||
|
new RSMenuHolder(
|
||||||
|
"CREEPER_DISABLE_FUSE"
|
||||||
|
);
|
||||||
|
|
||||||
|
holder.setPage(
|
||||||
|
page
|
||||||
|
);
|
||||||
|
|
||||||
|
Inventory inventory =
|
||||||
|
Bukkit.createInventory(
|
||||||
|
holder,
|
||||||
|
54,
|
||||||
|
"Disable Fuse"
|
||||||
|
);
|
||||||
|
|
||||||
|
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(
|
||||||
|
3,
|
||||||
|
item
|
||||||
|
);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void createDefaultButton(
|
||||||
|
Inventory inventory
|
||||||
|
) throws SQLException {
|
||||||
|
|
||||||
|
boolean enabled =
|
||||||
|
RSServerAdmin.getInstance()
|
||||||
|
.getSettingsDAO()
|
||||||
|
.getDefault(
|
||||||
|
SettingKey.CREEPER_DISABLE_FUSE
|
||||||
|
);
|
||||||
|
|
||||||
|
ItemStack item =
|
||||||
|
new ItemStack(
|
||||||
|
enabled
|
||||||
|
? Material.ENDER_CHEST
|
||||||
|
: 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 prevent creepers from arming"
|
||||||
|
: "§cCurrent: New worlds allow creepers to arm"
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
|
item.setItemMeta(
|
||||||
|
meta
|
||||||
|
);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
inventory.setItem(
|
||||||
|
5,
|
||||||
|
item
|
||||||
|
);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void populateWorlds(
|
||||||
|
Inventory inventory,
|
||||||
|
int page
|
||||||
|
) throws SQLException {
|
||||||
|
|
||||||
|
CreeperSettingsDAO dao =
|
||||||
|
RSServerAdmin.getInstance()
|
||||||
|
.getCreeperSettingsDAO();
|
||||||
|
|
||||||
|
List<String> worlds =
|
||||||
|
RSServerAdmin.getInstance()
|
||||||
|
.getWorldsDAO()
|
||||||
|
.getAllWorlds();
|
||||||
|
|
||||||
|
int start =
|
||||||
|
(page - 1) * WORLDS_PER_PAGE;
|
||||||
|
|
||||||
|
int end =
|
||||||
|
Math.min(
|
||||||
|
start + WORLDS_PER_PAGE,
|
||||||
|
worlds.size()
|
||||||
|
);
|
||||||
|
|
||||||
|
int worldCount =
|
||||||
|
end - start;
|
||||||
|
|
||||||
|
for (int i = start;
|
||||||
|
i < end;
|
||||||
|
i++) {
|
||||||
|
|
||||||
|
String worldName =
|
||||||
|
worlds.get(i);
|
||||||
|
|
||||||
|
boolean enabled =
|
||||||
|
dao.getDisableFuse(
|
||||||
|
worldName
|
||||||
|
);
|
||||||
|
|
||||||
|
ItemStack item =
|
||||||
|
new ItemStack(
|
||||||
|
enabled
|
||||||
|
? Material.LIME_SHULKER_BOX
|
||||||
|
: Material.RED_SHULKER_BOX
|
||||||
|
);
|
||||||
|
|
||||||
|
ItemMeta meta =
|
||||||
|
item.getItemMeta();
|
||||||
|
|
||||||
|
if (meta != null) {
|
||||||
|
|
||||||
|
meta.setDisplayName(
|
||||||
|
"§e" + worldName
|
||||||
|
);
|
||||||
|
|
||||||
|
meta.getPersistentDataContainer()
|
||||||
|
.set(
|
||||||
|
new NamespacedKey(
|
||||||
|
RSServerAdmin.getInstance(),
|
||||||
|
"world_name"
|
||||||
|
),
|
||||||
|
PersistentDataType.STRING,
|
||||||
|
worldName
|
||||||
|
);
|
||||||
|
|
||||||
|
meta.setLore(
|
||||||
|
List.of(
|
||||||
|
"§7Creeper Disable Fuse",
|
||||||
|
"",
|
||||||
|
enabled
|
||||||
|
? "§aCurrent: Creepers cannot arm"
|
||||||
|
: "§cCurrent: Creepers can arm"
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
|
item.setItemMeta(
|
||||||
|
meta
|
||||||
|
);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
int relativeIndex =
|
||||||
|
i - start;
|
||||||
|
|
||||||
|
int row =
|
||||||
|
relativeIndex / 9;
|
||||||
|
|
||||||
|
int indexInRow =
|
||||||
|
relativeIndex % 9;
|
||||||
|
|
||||||
|
int itemsRemaining =
|
||||||
|
worldCount - (row * 9);
|
||||||
|
|
||||||
|
boolean lastPartialRow =
|
||||||
|
itemsRemaining < 9;
|
||||||
|
|
||||||
|
int slot;
|
||||||
|
|
||||||
|
if (lastPartialRow) {
|
||||||
|
|
||||||
|
List<Integer> rowSlots =
|
||||||
|
MenuLayoutUtils.getCenteredSlots(
|
||||||
|
itemsRemaining
|
||||||
|
);
|
||||||
|
|
||||||
|
slot =
|
||||||
|
9
|
||||||
|
+ (row * 9)
|
||||||
|
+ rowSlots.get(
|
||||||
|
indexInRow
|
||||||
|
);
|
||||||
|
|
||||||
|
} else {
|
||||||
|
|
||||||
|
slot =
|
||||||
|
9
|
||||||
|
+ (row * 9)
|
||||||
|
+ indexInRow;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
inventory.setItem(
|
||||||
|
slot,
|
||||||
|
item
|
||||||
|
);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -3,14 +3,16 @@ package com.rsscripting.serveradmin.gui;
|
|||||||
import com.rsscripting.serveradmin.RSServerAdmin;
|
import com.rsscripting.serveradmin.RSServerAdmin;
|
||||||
import com.rsscripting.serveradmin.menuholder.RSMenuHolder;
|
import com.rsscripting.serveradmin.menuholder.RSMenuHolder;
|
||||||
import com.rsscripting.serveradmin.settings.SettingKey;
|
import com.rsscripting.serveradmin.settings.SettingKey;
|
||||||
|
|
||||||
import com.rsscripting.serveradmin.utils.GUIUtils;
|
import com.rsscripting.serveradmin.utils.GUIUtils;
|
||||||
|
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
import org.bukkit.inventory.Inventory;
|
import org.bukkit.inventory.Inventory;
|
||||||
import org.bukkit.inventory.ItemStack;
|
import org.bukkit.inventory.ItemStack;
|
||||||
import org.bukkit.inventory.meta.ItemMeta;
|
import org.bukkit.inventory.meta.ItemMeta;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
public class CreeperMenu {
|
public class CreeperMenu {
|
||||||
|
|
||||||
public static Inventory create() {
|
public static Inventory create() {
|
||||||
@@ -27,7 +29,9 @@ public class CreeperMenu {
|
|||||||
|
|
||||||
try {
|
try {
|
||||||
|
|
||||||
try {
|
/*
|
||||||
|
* Block Damage
|
||||||
|
*/
|
||||||
|
|
||||||
boolean disableBlockDamage =
|
boolean disableBlockDamage =
|
||||||
RSServerAdmin.getInstance()
|
RSServerAdmin.getInstance()
|
||||||
@@ -37,7 +41,9 @@ public class CreeperMenu {
|
|||||||
);
|
);
|
||||||
|
|
||||||
ItemStack blockDamage =
|
ItemStack blockDamage =
|
||||||
new ItemStack(Material.TNT);
|
new ItemStack(
|
||||||
|
Material.TNT
|
||||||
|
);
|
||||||
|
|
||||||
ItemMeta blockMeta =
|
ItemMeta blockMeta =
|
||||||
blockDamage.getItemMeta();
|
blockDamage.getItemMeta();
|
||||||
@@ -49,7 +55,7 @@ public class CreeperMenu {
|
|||||||
);
|
);
|
||||||
|
|
||||||
blockMeta.setLore(
|
blockMeta.setLore(
|
||||||
java.util.List.of(
|
List.of(
|
||||||
"§7Disable Creeper damage to blocks",
|
"§7Disable Creeper damage to blocks",
|
||||||
"",
|
"",
|
||||||
disableBlockDamage
|
disableBlockDamage
|
||||||
@@ -69,6 +75,56 @@ public class CreeperMenu {
|
|||||||
blockDamage
|
blockDamage
|
||||||
);
|
);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Disable Fuse
|
||||||
|
*/
|
||||||
|
|
||||||
|
boolean disableFuse =
|
||||||
|
RSServerAdmin.getInstance()
|
||||||
|
.getSettingsDAO()
|
||||||
|
.getDefault(
|
||||||
|
SettingKey.CREEPER_DISABLE_FUSE
|
||||||
|
);
|
||||||
|
|
||||||
|
ItemStack disableFuseItem =
|
||||||
|
new ItemStack(
|
||||||
|
Material.FLINT_AND_STEEL
|
||||||
|
);
|
||||||
|
|
||||||
|
ItemMeta fuseMeta =
|
||||||
|
disableFuseItem.getItemMeta();
|
||||||
|
|
||||||
|
if (fuseMeta != null) {
|
||||||
|
|
||||||
|
fuseMeta.setDisplayName(
|
||||||
|
"§aDisable Fuse"
|
||||||
|
);
|
||||||
|
|
||||||
|
fuseMeta.setLore(
|
||||||
|
List.of(
|
||||||
|
"§7Prevent Creepers from arming",
|
||||||
|
"",
|
||||||
|
disableFuse
|
||||||
|
? "§aCurrent: Creepers cannot arm"
|
||||||
|
: "§cCurrent: Creepers can arm"
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
|
disableFuseItem.setItemMeta(
|
||||||
|
fuseMeta
|
||||||
|
);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
inventory.setItem(
|
||||||
|
21,
|
||||||
|
disableFuseItem
|
||||||
|
);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Entity Damage
|
||||||
|
*/
|
||||||
|
|
||||||
boolean disableEntityDamage =
|
boolean disableEntityDamage =
|
||||||
RSServerAdmin.getInstance()
|
RSServerAdmin.getInstance()
|
||||||
.getSettingsDAO()
|
.getSettingsDAO()
|
||||||
@@ -91,7 +147,7 @@ public class CreeperMenu {
|
|||||||
);
|
);
|
||||||
|
|
||||||
entityMeta.setLore(
|
entityMeta.setLore(
|
||||||
java.util.List.of(
|
List.of(
|
||||||
"§7Disable Creeper damage to players and mobs",
|
"§7Disable Creeper damage to players and mobs",
|
||||||
"",
|
"",
|
||||||
disableEntityDamage
|
disableEntityDamage
|
||||||
@@ -122,18 +178,10 @@ public class CreeperMenu {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
} catch (Exception ex) {
|
|
||||||
RSServerAdmin.getInstance()
|
|
||||||
.getLogger()
|
|
||||||
.warning(
|
|
||||||
"Failed to build Creeper menu: "
|
|
||||||
+ ex.getMessage()
|
|
||||||
);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
ItemStack back =
|
ItemStack back =
|
||||||
new ItemStack(Material.ARROW);
|
new ItemStack(
|
||||||
|
Material.ARROW
|
||||||
|
);
|
||||||
|
|
||||||
ItemMeta backMeta =
|
ItemMeta backMeta =
|
||||||
back.getItemMeta();
|
back.getItemMeta();
|
||||||
|
|||||||
@@ -0,0 +1,243 @@
|
|||||||
|
package com.rsscripting.serveradmin.listeners;
|
||||||
|
|
||||||
|
import com.rsscripting.serveradmin.RSServerAdmin;
|
||||||
|
import org.bukkit.Bukkit;
|
||||||
|
import org.bukkit.entity.Creeper;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
import org.bukkit.event.EventHandler;
|
||||||
|
import org.bukkit.event.Listener;
|
||||||
|
import org.bukkit.event.entity.EntityTargetEvent;
|
||||||
|
import org.bukkit.event.entity.EntityExplodeEvent;
|
||||||
|
import org.bukkit.scheduler.BukkitTask;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
|
public class CreeperDisableFuseListener implements Listener {
|
||||||
|
|
||||||
|
private final Map<UUID, BukkitTask> activeTasks =
|
||||||
|
new HashMap<>();
|
||||||
|
|
||||||
|
@EventHandler
|
||||||
|
public void onEntityTarget(
|
||||||
|
EntityTargetEvent event
|
||||||
|
) {
|
||||||
|
|
||||||
|
if (!(event.getEntity() instanceof Creeper creeper)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!(event.getTarget() instanceof Player)) {
|
||||||
|
stopTask(
|
||||||
|
creeper.getUniqueId()
|
||||||
|
);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
|
||||||
|
String worldName =
|
||||||
|
creeper.getWorld()
|
||||||
|
.getName();
|
||||||
|
|
||||||
|
boolean disableFuse =
|
||||||
|
RSServerAdmin.getInstance()
|
||||||
|
.getCreeperSettingsDAO()
|
||||||
|
.getDisableFuse(
|
||||||
|
worldName
|
||||||
|
);
|
||||||
|
|
||||||
|
if (!disableFuse) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
startFusePrevention(
|
||||||
|
creeper
|
||||||
|
);
|
||||||
|
|
||||||
|
} catch (Exception ex) {
|
||||||
|
|
||||||
|
RSServerAdmin.getInstance()
|
||||||
|
.getLogger()
|
||||||
|
.warning(
|
||||||
|
"Failed to process Creeper Disable Fuse: "
|
||||||
|
+ ex.getMessage()
|
||||||
|
);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@EventHandler
|
||||||
|
public void onEntityExplode(
|
||||||
|
EntityExplodeEvent event
|
||||||
|
) {
|
||||||
|
|
||||||
|
if (!(event.getEntity() instanceof Creeper creeper)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
|
||||||
|
String worldName =
|
||||||
|
creeper.getWorld()
|
||||||
|
.getName();
|
||||||
|
|
||||||
|
boolean disableFuse =
|
||||||
|
RSServerAdmin.getInstance()
|
||||||
|
.getCreeperSettingsDAO()
|
||||||
|
.getDisableFuse(
|
||||||
|
worldName
|
||||||
|
);
|
||||||
|
|
||||||
|
if (!disableFuse) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
stopTask(
|
||||||
|
creeper.getUniqueId()
|
||||||
|
);
|
||||||
|
|
||||||
|
creeper.setIgnited(
|
||||||
|
false
|
||||||
|
);
|
||||||
|
|
||||||
|
creeper.setFuseTicks(
|
||||||
|
0
|
||||||
|
);
|
||||||
|
|
||||||
|
event.setCancelled(
|
||||||
|
true
|
||||||
|
);
|
||||||
|
|
||||||
|
} catch (Exception ex) {
|
||||||
|
|
||||||
|
RSServerAdmin.getInstance()
|
||||||
|
.getLogger()
|
||||||
|
.warning(
|
||||||
|
"Failed to prevent Creeper explosion: "
|
||||||
|
+ ex.getMessage()
|
||||||
|
);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private void startFusePrevention(
|
||||||
|
Creeper creeper
|
||||||
|
) {
|
||||||
|
|
||||||
|
UUID uuid =
|
||||||
|
creeper.getUniqueId();
|
||||||
|
|
||||||
|
if (activeTasks.containsKey(uuid)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
BukkitTask task =
|
||||||
|
Bukkit.getScheduler()
|
||||||
|
.runTaskTimer(
|
||||||
|
RSServerAdmin.getInstance(),
|
||||||
|
() -> {
|
||||||
|
|
||||||
|
if (creeper.isDead()
|
||||||
|
|| !creeper.isValid()) {
|
||||||
|
|
||||||
|
stopTask(
|
||||||
|
uuid
|
||||||
|
);
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
|
||||||
|
boolean disableFuse =
|
||||||
|
RSServerAdmin.getInstance()
|
||||||
|
.getCreeperSettingsDAO()
|
||||||
|
.getDisableFuse(
|
||||||
|
creeper.getWorld()
|
||||||
|
.getName()
|
||||||
|
);
|
||||||
|
|
||||||
|
if (!disableFuse) {
|
||||||
|
|
||||||
|
stopTask(
|
||||||
|
uuid
|
||||||
|
);
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!(creeper.getTarget()
|
||||||
|
instanceof Player)) {
|
||||||
|
|
||||||
|
stopTask(
|
||||||
|
uuid
|
||||||
|
);
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (creeper.isIgnited()) {
|
||||||
|
|
||||||
|
creeper.setIgnited(
|
||||||
|
false
|
||||||
|
);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
if (creeper.getFuseTicks() != 0) {
|
||||||
|
|
||||||
|
creeper.setFuseTicks(
|
||||||
|
0
|
||||||
|
);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
} catch (Exception ex) {
|
||||||
|
|
||||||
|
RSServerAdmin.getInstance()
|
||||||
|
.getLogger()
|
||||||
|
.warning(
|
||||||
|
"Failed to prevent Creeper fuse: "
|
||||||
|
+ ex.getMessage()
|
||||||
|
);
|
||||||
|
|
||||||
|
stopTask(
|
||||||
|
uuid
|
||||||
|
);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
},
|
||||||
|
1L,
|
||||||
|
1L
|
||||||
|
);
|
||||||
|
|
||||||
|
activeTasks.put(
|
||||||
|
uuid,
|
||||||
|
task
|
||||||
|
);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private void stopTask(
|
||||||
|
UUID uuid
|
||||||
|
) {
|
||||||
|
|
||||||
|
BukkitTask task =
|
||||||
|
activeTasks.remove(
|
||||||
|
uuid
|
||||||
|
);
|
||||||
|
|
||||||
|
if (task != null) {
|
||||||
|
|
||||||
|
task.cancel();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -2,9 +2,9 @@ package com.rsscripting.serveradmin.listeners;
|
|||||||
|
|
||||||
import com.rsscripting.serveradmin.RSServerAdmin;
|
import com.rsscripting.serveradmin.RSServerAdmin;
|
||||||
import com.rsscripting.serveradmin.gui.CreeperBlockDamageMenu;
|
import com.rsscripting.serveradmin.gui.CreeperBlockDamageMenu;
|
||||||
|
import com.rsscripting.serveradmin.gui.CreeperDisableFuseMenu;
|
||||||
import com.rsscripting.serveradmin.gui.CreeperEntityDamageMenu;
|
import com.rsscripting.serveradmin.gui.CreeperEntityDamageMenu;
|
||||||
import com.rsscripting.serveradmin.gui.CreeperMenu;
|
import com.rsscripting.serveradmin.gui.CreeperMenu;
|
||||||
import com.rsscripting.serveradmin.gui.MainMenu;
|
|
||||||
import com.rsscripting.serveradmin.menuholder.RSMenuHolder;
|
import com.rsscripting.serveradmin.menuholder.RSMenuHolder;
|
||||||
import com.rsscripting.serveradmin.settings.SettingKey;
|
import com.rsscripting.serveradmin.settings.SettingKey;
|
||||||
|
|
||||||
@@ -82,6 +82,29 @@ public class CreeperMenuListener implements Listener {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
case 21 -> {
|
||||||
|
|
||||||
|
try {
|
||||||
|
|
||||||
|
player.openInventory(
|
||||||
|
CreeperDisableFuseMenu.create(
|
||||||
|
1
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
|
} catch (Exception ex) {
|
||||||
|
|
||||||
|
RSServerAdmin.getInstance()
|
||||||
|
.getLogger()
|
||||||
|
.warning(
|
||||||
|
"Failed to open Creeper Disable Fuse menu: "
|
||||||
|
+ ex.getMessage()
|
||||||
|
);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
case 15 -> {
|
case 15 -> {
|
||||||
|
|
||||||
try {
|
try {
|
||||||
@@ -381,6 +404,142 @@ public class CreeperMenuListener implements Listener {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
case "CREEPER_DISABLE_FUSE" -> {
|
||||||
|
|
||||||
|
if (!(event.getWhoClicked() instanceof Player player)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
switch (event.getSlot()) {
|
||||||
|
|
||||||
|
case 3 -> {
|
||||||
|
|
||||||
|
try {
|
||||||
|
|
||||||
|
player.openInventory(
|
||||||
|
CreeperMenu.create()
|
||||||
|
);
|
||||||
|
|
||||||
|
} catch (Exception ex) {
|
||||||
|
|
||||||
|
RSServerAdmin.getInstance()
|
||||||
|
.getLogger()
|
||||||
|
.warning(
|
||||||
|
"Failed to open Creeper menu: "
|
||||||
|
+ ex.getMessage()
|
||||||
|
);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
case 5 -> {
|
||||||
|
|
||||||
|
try {
|
||||||
|
|
||||||
|
RSServerAdmin.getInstance()
|
||||||
|
.getSettingsDAO()
|
||||||
|
.toggleDefault(
|
||||||
|
SettingKey.CREEPER_DISABLE_FUSE
|
||||||
|
);
|
||||||
|
|
||||||
|
player.openInventory(
|
||||||
|
CreeperDisableFuseMenu.create(
|
||||||
|
holder.getPage()
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
|
} catch (Exception ex) {
|
||||||
|
|
||||||
|
RSServerAdmin.getInstance()
|
||||||
|
.getLogger()
|
||||||
|
.warning(
|
||||||
|
"Failed to toggle Creeper Disable Fuse default: "
|
||||||
|
+ ex.getMessage()
|
||||||
|
);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
default -> {
|
||||||
|
|
||||||
|
if (event.getSlot() < 9) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
|
||||||
|
if (event.getCurrentItem() == null) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!event.getCurrentItem().hasItemMeta()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
ItemMeta meta =
|
||||||
|
event.getCurrentItem()
|
||||||
|
.getItemMeta();
|
||||||
|
|
||||||
|
if (meta == null) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
String worldName =
|
||||||
|
meta.getPersistentDataContainer()
|
||||||
|
.get(
|
||||||
|
new NamespacedKey(
|
||||||
|
RSServerAdmin.getInstance(),
|
||||||
|
"world_name"
|
||||||
|
),
|
||||||
|
PersistentDataType.STRING
|
||||||
|
);
|
||||||
|
|
||||||
|
if (worldName == null
|
||||||
|
|| worldName.isBlank()) {
|
||||||
|
|
||||||
|
return;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
boolean enabled =
|
||||||
|
RSServerAdmin.getInstance()
|
||||||
|
.getCreeperSettingsDAO()
|
||||||
|
.getDisableFuse(
|
||||||
|
worldName
|
||||||
|
);
|
||||||
|
|
||||||
|
RSServerAdmin.getInstance()
|
||||||
|
.getCreeperSettingsDAO()
|
||||||
|
.setDisableFuse(
|
||||||
|
worldName,
|
||||||
|
!enabled
|
||||||
|
);
|
||||||
|
|
||||||
|
player.openInventory(
|
||||||
|
CreeperDisableFuseMenu.create(
|
||||||
|
holder.getPage()
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
|
} catch (Exception ex) {
|
||||||
|
|
||||||
|
RSServerAdmin.getInstance()
|
||||||
|
.getLogger()
|
||||||
|
.warning(
|
||||||
|
"Failed to update Creeper Disable Fuse setting: "
|
||||||
|
+ ex.getMessage()
|
||||||
|
);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ public enum SettingKey {
|
|||||||
|
|
||||||
CREEPER_BLOCK_DAMAGE,
|
CREEPER_BLOCK_DAMAGE,
|
||||||
CREEPER_ENTITY_DAMAGE,
|
CREEPER_ENTITY_DAMAGE,
|
||||||
|
CREEPER_DISABLE_FUSE,
|
||||||
KEEP_INVENTORY_NEW_WORLD,
|
KEEP_INVENTORY_NEW_WORLD,
|
||||||
KEEP_INVENTORY,
|
KEEP_INVENTORY,
|
||||||
PEACEFUL_MOBS_NEW_WORLD
|
PEACEFUL_MOBS_NEW_WORLD
|
||||||
|
|||||||
@@ -36,6 +36,12 @@ public class WorldSyncUtils {
|
|||||||
SettingKey.CREEPER_ENTITY_DAMAGE
|
SettingKey.CREEPER_ENTITY_DAMAGE
|
||||||
);
|
);
|
||||||
|
|
||||||
|
boolean disableFuseDefault =
|
||||||
|
plugin.getSettingsDAO()
|
||||||
|
.getDefault(
|
||||||
|
SettingKey.CREEPER_DISABLE_FUSE
|
||||||
|
);
|
||||||
|
|
||||||
boolean peacefulMobsDefault =
|
boolean peacefulMobsDefault =
|
||||||
plugin.getSettingsDAO()
|
plugin.getSettingsDAO()
|
||||||
.getDefault(
|
.getDefault(
|
||||||
@@ -73,7 +79,8 @@ public class WorldSyncUtils {
|
|||||||
.ensureWorldExists(
|
.ensureWorldExists(
|
||||||
worldName,
|
worldName,
|
||||||
blockDamageDefault,
|
blockDamageDefault,
|
||||||
entityDamageDefault
|
entityDamageDefault,
|
||||||
|
disableFuseDefault
|
||||||
);
|
);
|
||||||
|
|
||||||
plugin.getEquipmentDropSettingsDAO()
|
plugin.getEquipmentDropSettingsDAO()
|
||||||
|
|||||||
Reference in new issue
Block a user