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);
+ }
}