2023-08-24 09:43:16 +00:00
package dev.plex.extras.command ;
2022-07-09 14:26:57 +00:00
2024-01-20 20:47:23 +00:00
import com.google.common.collect.ImmutableList ;
2022-07-09 14:26:57 +00:00
import dev.plex.cache.DataUtils ;
2023-08-24 09:43:16 +00:00
import dev.plex.command.PlexCommand ;
2022-07-09 14:26:57 +00:00
import dev.plex.command.annotation.CommandParameters ;
import dev.plex.command.annotation.CommandPermissions ;
import dev.plex.command.exception.PlayerNotFoundException ;
2023-08-29 00:12:48 +00:00
import dev.plex.extras.TFMExtras ;
2022-07-09 14:26:57 +00:00
import dev.plex.player.PlexPlayer ;
2024-01-20 20:47:23 +00:00
import dev.plex.util.PlexUtils ;
2023-08-29 00:12:48 +00:00
import java.util.List ;
2022-07-09 14:26:57 +00:00
import net.kyori.adventure.text.Component ;
import org.bukkit.command.CommandSender ;
import org.bukkit.entity.Player ;
import org.jetbrains.annotations.NotNull ;
import org.jetbrains.annotations.Nullable ;
@CommandParameters ( name = " autoclear " , description = " Toggle whether or not a player has their inventory automatically cleared when they join " , usage = " /<command> <player> " , aliases = " aclear,ac " )
2023-08-28 11:31:52 +00:00
@CommandPermissions ( permission = " plex.tfmextras.autoclear " )
2022-07-09 14:26:57 +00:00
public class AutoClearCommand extends PlexCommand
{
@Override
protected Component execute ( @NotNull CommandSender sender , @Nullable Player player , @NotNull String [ ] args )
{
if ( args . length = = 0 )
{
return usage ( ) ;
}
PlexPlayer target = DataUtils . getPlayer ( args [ 0 ] ) ;
if ( target = = null )
{
throw new PlayerNotFoundException ( ) ;
}
List < String > names = TFMExtras . getModule ( ) . getConfig ( ) . getStringList ( " server.clear-on-join " ) ;
boolean isEnabled = names . contains ( target . getName ( ) ) ;
if ( ! isEnabled )
{
names . add ( target . getName ( ) ) ;
}
else
{
names . remove ( target . getName ( ) ) ;
}
TFMExtras . getModule ( ) . getConfig ( ) . set ( " server.clear-on-join " , names ) ;
TFMExtras . getModule ( ) . getConfig ( ) . save ( ) ;
isEnabled = ! isEnabled ;
return messageComponent ( " modifiedAutoClear " , target . getName ( ) , isEnabled ? " now " : " no longer " ) ;
}
2024-01-20 20:47:23 +00:00
@Override
public @NotNull List < String > smartTabComplete ( @NotNull CommandSender sender , @NotNull String alias , @NotNull String [ ] args ) throws IllegalArgumentException
{
return args . length = = 1 & & silentCheckPermission ( sender , this . getPermission ( ) ) ? PlexUtils . getPlayerNameList ( ) : ImmutableList . of ( ) ;
}
2022-07-09 14:26:57 +00:00
}