diff --git a/src/main/java/dev/esophose/playerparticles/command/ToggleCommandModule.java b/src/main/java/dev/esophose/playerparticles/command/ToggleCommandModule.java index f645cb3..f01c86c 100644 --- a/src/main/java/dev/esophose/playerparticles/command/ToggleCommandModule.java +++ b/src/main/java/dev/esophose/playerparticles/command/ToggleCommandModule.java @@ -5,24 +5,40 @@ import dev.esophose.playerparticles.api.PlayerParticlesAPI; import dev.esophose.playerparticles.manager.LocaleManager; import dev.esophose.playerparticles.particles.PPlayer; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; +import org.bukkit.util.StringUtil; public class ToggleCommandModule implements CommandModule { public void onCommandExecute(PPlayer pplayer, String[] args) { LocaleManager localeManager = PlayerParticles.getInstance().getManager(LocaleManager.class); - boolean canSee = pplayer.canSeeParticles(); - PlayerParticlesAPI.getInstance().togglePlayerParticleVisibility(pplayer.getPlayer(), canSee); - - if (canSee) { - localeManager.sendMessage(pplayer, "toggle-off"); - } else { + + if (args.length == 0) { + boolean particlesHidden = pplayer.canSeeParticles(); + PlayerParticlesAPI.getInstance().togglePlayerParticleVisibility(pplayer.getPlayer(), particlesHidden); + + if (particlesHidden) { + localeManager.sendMessage(pplayer, "toggle-off"); + } else { + localeManager.sendMessage(pplayer, "toggle-on"); + } + } else if (args[0].equalsIgnoreCase("on")) { + PlayerParticlesAPI.getInstance().togglePlayerParticleVisibility(pplayer.getPlayer(), false); localeManager.sendMessage(pplayer, "toggle-on"); + } else { + PlayerParticlesAPI.getInstance().togglePlayerParticleVisibility(pplayer.getPlayer(), true); + localeManager.sendMessage(pplayer, "toggle-off"); } } public List onTabComplete(PPlayer pplayer, String[] args) { - return new ArrayList<>(); + List completions = new ArrayList<>(); + if (args.length == 1) { + List possibilities = Arrays.asList("on", "off"); + StringUtil.copyPartialMatches(args[0], possibilities, completions); + } + return completions; } public String getName() { @@ -34,7 +50,7 @@ public class ToggleCommandModule implements CommandModule { } public String getArguments() { - return ""; + return "[on|off]"; } public boolean requiresEffectsAndStyles() {