diff --git a/src/main/java/com/alttd/config/Config.java b/src/main/java/com/alttd/config/Config.java index 483eaa6..010ea65 100644 --- a/src/main/java/com/alttd/config/Config.java +++ b/src/main/java/com/alttd/config/Config.java @@ -45,8 +45,8 @@ public final class Config extends AbstractConfig { public static String PARTICLE_TYPE_BUTTON_NAME = ""; public static String PARTICLE_TYPE_GUI_NAME = "AltitudeParticles"; private static void loadGUIText() { - config.getString("gui-text.particle-type-button-name", PARTICLE_TYPE_BUTTON_NAME); - config.getString("gui-text.particles-type-gui-name", PARTICLE_TYPE_GUI_NAME); + PARTICLE_TYPE_BUTTON_NAME = config.getString("gui-text.particle-type-button-name", PARTICLE_TYPE_BUTTON_NAME); + PARTICLE_TYPE_GUI_NAME = config.getString("gui-text.particles-type-gui-name", PARTICLE_TYPE_GUI_NAME); } public static String SEE_OTHERS_ON = "Particles visible"; @@ -57,18 +57,22 @@ public final class Config extends AbstractConfig { public static String PARTICLES_ON_DESC = "Click to disable particles"; public static String PARTICLES_OFF = "Particles off"; public static String PARTICLES_OFF_DESC = "Click to enable particles"; + public static String PARTICLES_CLEAR = "Clear"; + public static String PARTICLES_CLEAR_DESC = "Clears all active particles"; public static String BACK_BUTTON = "Back"; private static void loadGUIButtons() { - config.getString("gui-buttons.see-others-on", SEE_OTHERS_ON); - config.getString("gui-buttons.see-others-on-desc", SEE_OTHERS_ON_DESC); - config.getString("gui-buttons.see-others-off", SEE_OTHERS_OFF); - config.getString("gui-buttons.see-others-off-desc", SEE_OTHERS_OFF_DESC); - config.getString("gui-buttons.particles-on", PARTICLES_ON); - config.getString("gui-buttons.particles-on-desc", PARTICLES_ON_DESC); - config.getString("gui-buttons.particles-off", PARTICLES_OFF); - config.getString("gui-buttons.particles-off-desc", PARTICLES_OFF_DESC); - config.getString("gui-buttons.back-button", BACK_BUTTON); + SEE_OTHERS_ON = config.getString("gui-buttons.see-others-on", SEE_OTHERS_ON); + SEE_OTHERS_ON_DESC = config.getString("gui-buttons.see-others-on-desc", SEE_OTHERS_ON_DESC); + SEE_OTHERS_OFF = config.getString("gui-buttons.see-others-off", SEE_OTHERS_OFF); + SEE_OTHERS_OFF_DESC = config.getString("gui-buttons.see-others-off-desc", SEE_OTHERS_OFF_DESC); + PARTICLES_ON = config.getString("gui-buttons.particles-on", PARTICLES_ON); + PARTICLES_ON_DESC = config.getString("gui-buttons.particles-on-desc", PARTICLES_ON_DESC); + PARTICLES_OFF = config.getString("gui-buttons.particles-off", PARTICLES_OFF); + PARTICLES_OFF_DESC = config.getString("gui-buttons.particles-off-desc", PARTICLES_OFF_DESC); + PARTICLES_CLEAR = config.getString("gui-buttons.particles-clear", PARTICLES_CLEAR); + PARTICLES_CLEAR_DESC = config.getString("gui-buttons.particles-clear-desc", PARTICLES_CLEAR_DESC); + BACK_BUTTON = config.getString("gui-buttons.back-button", BACK_BUTTON); } public static boolean DEBUG = false; diff --git a/src/main/java/com/alttd/database/Queries.java b/src/main/java/com/alttd/database/Queries.java index 38f428f..0cae476 100644 --- a/src/main/java/com/alttd/database/Queries.java +++ b/src/main/java/com/alttd/database/Queries.java @@ -81,6 +81,19 @@ public class Queries { } } + public static void clearParticles(UUID uuid) { + String sql = "DELETE FROM active_particles " + + "WHERE uuid = ?"; + try { + PreparedStatement preparedStatement = Database.getConnection().prepareStatement(sql); + preparedStatement.setString(1, uuid.toString()); + + preparedStatement.executeUpdate(); + } catch (SQLException e) { + e.printStackTrace(); + } + } + public static PlayerSettings getPlayerSettings(UUID uuid) { String sql = "SELECT * FROM user_settings WHERE uuid = ?"; try { diff --git a/src/main/java/com/alttd/gui/windows/OpenParticleGUI.java b/src/main/java/com/alttd/gui/windows/OpenParticleGUI.java index ac0d36d..b4bbecd 100644 --- a/src/main/java/com/alttd/gui/windows/OpenParticleGUI.java +++ b/src/main/java/com/alttd/gui/windows/OpenParticleGUI.java @@ -23,7 +23,7 @@ public class OpenParticleGUI extends DefaultGUI { private static final MiniMessage miniMessage = MiniMessage.miniMessage(); private static final Component GUIName; - private static final ItemStack seeOthersOn, seeOthersOff, particlesOn, particlesOff; + private static final ItemStack seeOthersOn, seeOthersOff, particlesOn, particlesOff, clearAll; public OpenParticleGUI(Player player) { super(GUIName); @@ -38,6 +38,12 @@ public class OpenParticleGUI extends DefaultGUI { setItem(i++, particlesType.getItemStack(), new EnterParticleMenu(particlesType)); } PlayerSettings playerSettings = PlayerSettings.getPlayer(player.getUniqueId()); + setItem(24, clearAll, player1 -> { + PlayerSettings pSettings = PlayerSettings.getPlayer(player1.getUniqueId()); + if (pSettings == null) + return; + pSettings.clearParticles(); + }); setItem(25, playerSettings.isSeeingParticles() ? seeOthersOn : seeOthersOff, new ToggleSeeParticles(this, playerSettings)); setItem(26, playerSettings.hasActiveParticles() ? particlesOn : particlesOff, new ToggleParticlesActive(this, playerSettings)); } @@ -88,5 +94,11 @@ public class OpenParticleGUI extends DefaultGUI { itemMeta.displayName(miniMessage.deserialize(Config.PARTICLES_OFF)); itemMeta.displayName(miniMessage.deserialize(Config.PARTICLES_OFF_DESC)); particlesOff.setItemMeta(itemMeta); + + clearAll = new ItemStack(Material.BUCKET); + itemMeta = clearAll.getItemMeta(); + itemMeta.displayName(miniMessage.deserialize(Config.PARTICLES_CLEAR)); + itemMeta.displayName(miniMessage.deserialize(Config.PARTICLES_CLEAR_DESC)); + clearAll.setItemMeta(itemMeta); } } diff --git a/src/main/java/com/alttd/storage/PlayerSettings.java b/src/main/java/com/alttd/storage/PlayerSettings.java index d52814b..fb46930 100644 --- a/src/main/java/com/alttd/storage/PlayerSettings.java +++ b/src/main/java/com/alttd/storage/PlayerSettings.java @@ -1,5 +1,6 @@ package com.alttd.storage; +import com.alttd.database.Queries; import com.alttd.objects.APartType; import com.alttd.objects.ParticleSet; @@ -77,4 +78,9 @@ public class PlayerSettings { public ParticleSet getParticles(APartType aPartType) { return particles.get(aPartType); } + + public void clearParticles() { + particles.clear(); + Queries.clearParticles(uuid); + } }