2020-08-07 22:51:09 -07:00
package me.totalfreedom.totalfreedommod.command ;
import java.util.Arrays ;
import java.util.Collections ;
import java.util.List ;
2020-08-14 23:44:57 -07:00
import me.totalfreedom.totalfreedommod.staff.StaffMember ;
2020-08-07 22:51:09 -07:00
import me.totalfreedom.totalfreedommod.player.PlayerData ;
import me.totalfreedom.totalfreedommod.rank.Rank ;
import me.totalfreedom.totalfreedommod.util.FUtil ;
import org.bukkit.ChatColor ;
import org.bukkit.command.Command ;
import org.bukkit.command.CommandSender ;
import org.bukkit.entity.Player ;
2020-08-14 23:44:57 -07:00
@CommandPermissions ( level = Rank . ADMIN , source = SourceType . ONLY_IN_GAME )
2020-08-07 22:51:09 -07:00
@CommandParameters ( description = " Manage your AMP account " , usage = " /<command> <create | resetpassword> " )
public class Command_amp extends FreedomCommand
{
@Override
public boolean run ( CommandSender sender , Player playerSender , Command cmd , String commandLabel , String [ ] args , boolean senderIsConsole )
{
if ( ! plugin . amp . isEnabled ( ) )
{
msg ( " AMP integration is currently disabled. " , ChatColor . RED ) ;
return true ;
}
PlayerData playerData = getData ( playerSender ) ;
if ( playerData . getDiscordID ( ) = = null )
{
msg ( " You must have a linked discord account. " , ChatColor . RED ) ;
return true ;
}
if ( args . length = = 0 )
{
return false ;
}
if ( args [ 0 ] . equals ( " create " ) )
{
msg ( " Creating your AMP account... " , ChatColor . GREEN ) ;
2020-08-14 23:44:57 -07:00
StaffMember staffMember = getAdmin ( playerSender ) ;
2020-08-07 22:51:09 -07:00
2020-08-14 23:44:57 -07:00
if ( staffMember . getAmpUsername ( ) ! = null )
2020-08-07 22:51:09 -07:00
{
msg ( " You already have an AMP account. " , ChatColor . RED ) ;
return true ;
}
String username = sender . getName ( ) ;
String password = FUtil . randomString ( 30 ) ;
2020-08-14 23:44:57 -07:00
staffMember . setAmpUsername ( username ) ;
plugin . sl . save ( staffMember ) ;
plugin . sl . updateTables ( ) ;
2020-08-07 22:51:09 -07:00
plugin . amp . createAccount ( username , password ) ;
plugin . dc . sendAMPInfo ( playerData , username , password ) ;
msg ( " Successfully created your AMP account. Check your DMs from " + plugin . dc . formatBotTag ( ) + " on discord to get your credentials. " , ChatColor . GREEN ) ;
return true ;
}
else if ( args [ 0 ] . equals ( " resetpassword " ) )
{
2020-08-14 23:44:57 -07:00
StaffMember staffMember = getAdmin ( playerSender ) ;
2020-08-07 22:51:09 -07:00
2020-08-14 23:44:57 -07:00
if ( staffMember . getAmpUsername ( ) = = null )
2020-08-07 22:51:09 -07:00
{
msg ( " You do not have an AMP account. " , ChatColor . RED ) ;
return true ;
}
msg ( " Resetting your password... " , ChatColor . GREEN ) ;
2020-08-14 23:44:57 -07:00
String username = staffMember . getAmpUsername ( ) ;
2020-08-07 22:51:09 -07:00
String password = FUtil . randomString ( 30 ) ;
plugin . amp . setPassword ( username , password ) ;
plugin . dc . sendAMPInfo ( playerData , username , password ) ;
msg ( " Successfully reset your AMP account password. Check your DMs from " + plugin . dc . formatBotTag ( ) + " on discord to get your credentials. " , ChatColor . GREEN ) ;
return true ;
}
return false ;
}
@Override
public List < String > getTabCompleteOptions ( CommandSender sender , Command command , String alias , String [ ] args )
{
2020-08-14 23:44:57 -07:00
if ( args . length = = 1 & & plugin . sl . isAdmin ( sender ) )
2020-08-07 22:51:09 -07:00
{
return Arrays . asList ( " create " , " resetpassword " ) ;
}
return Collections . emptyList ( ) ;
}
}