2021-07-04 00:15:56 -06:00
package net.brysonsteck.Resurrection.commands ;
import net.brysonsteck.Resurrection.player.PlayerData ;
import net.brysonsteck.Resurrection.player.TimeCheck ;
import org.bukkit.Bukkit ;
import org.bukkit.ChatColor ;
import org.bukkit.command.Command ;
import org.bukkit.command.CommandExecutor ;
import org.bukkit.command.CommandSender ;
import org.bukkit.entity.Player ;
public class CommandHowLong implements CommandExecutor {
@Override
public boolean onCommand ( CommandSender commandSender , Command command , String s , String [ ] strings ) {
if ( commandSender instanceof Player ) {
boolean self = false ;
boolean valid = false ;
if ( strings . length = = 0 ) {
self = true ;
valid = true ;
} else if ( strings . length = = 1 ) {
valid = true ;
}
if ( valid ) {
Player p ;
if ( self ) {
p = ( Player ) commandSender ;
} else {
p = Bukkit . getPlayer ( strings [ 0 ] ) ;
if ( p = = null ) {
2021-08-25 00:41:04 -06:00
commandSender . sendMessage ( ChatColor . RED + " ERROR: That player is not online/doesn't exist! " ) ;
2021-07-04 00:15:56 -06:00
return false ;
}
}
PlayerData playerData = new PlayerData ( ) ;
playerData . readData ( ) ;
String rawData = playerData . getRawData ( ) ;
String [ ] rawPlayers = rawData . split ( " ; " ) ;
for ( String players : rawPlayers ) {
if ( players . startsWith ( p . getDisplayName ( ) ) ) {
String [ ] playerSplit = players . split ( " , " ) ;
if ( Boolean . parseBoolean ( playerSplit [ 1 ] ) ) {
long currentTime = System . currentTimeMillis ( ) ;
long resurrectionTime = Long . parseLong ( playerSplit [ 2 ] ) ;
TimeCheck timeCheck = new TimeCheck ( resurrectionTime - currentTime ) ;
if ( self ) {
2021-08-25 00:23:03 -06:00
commandSender . sendMessage ( ChatColor . YELLOW + " You will respawn in " + timeCheck . formatTime ( 'f' ) ) ;
2021-07-04 00:15:56 -06:00
} else {
2021-08-25 00:23:03 -06:00
commandSender . sendMessage ( ChatColor . YELLOW + p . getDisplayName ( ) + " will respawn in " + timeCheck . formatTime ( 'f' ) ) ;
2021-07-04 00:15:56 -06:00
}
return true ;
2021-07-19 18:14:51 -06:00
} else {
if ( self ) {
2021-08-25 00:23:03 -06:00
commandSender . sendMessage ( ChatColor . RED + " ERROR: You aren't dead, dummy. " ) ;
2021-07-19 18:14:51 -06:00
} else {
2021-08-25 00:23:03 -06:00
commandSender . sendMessage ( ChatColor . RED + " ERROR: " + p . getDisplayName ( ) + " is not dead! " ) ;
2021-07-19 18:14:51 -06:00
}
2021-07-19 18:17:21 -06:00
return false ;
2021-07-04 00:15:56 -06:00
}
}
}
2021-08-25 00:23:03 -06:00
commandSender . sendMessage ( ChatColor . RED + " ERROR: An error has occurred while trying to get time information. This is a bug in the program and not your fault. " ) ;
2021-07-04 00:15:56 -06:00
return false ;
}
} else {
boolean valid = false ;
if ( strings . length = = 0 ) {
System . out . println ( " [Resurrection] ERROR: The /howlong command requires the name of a player when ran through the console. " ) ;
return false ;
} else if ( strings . length = = 1 ) {
valid = true ;
}
if ( valid ) {
Player p = Bukkit . getPlayer ( strings [ 0 ] ) ;
if ( p = = null ) {
2021-08-25 00:41:04 -06:00
System . out . println ( " [Resurrection] ERROR: That player is not online/doesn't exist! " ) ;
2021-07-04 00:15:56 -06:00
return false ;
}
PlayerData playerData = new PlayerData ( ) ;
playerData . readData ( ) ;
String rawData = playerData . getRawData ( ) ;
String [ ] rawPlayers = rawData . split ( " ; " ) ;
for ( String players : rawPlayers ) {
if ( players . startsWith ( p . getDisplayName ( ) ) ) {
String [ ] playerSplit = players . split ( " , " ) ;
if ( Boolean . parseBoolean ( playerSplit [ 1 ] ) ) {
long currentTime = System . currentTimeMillis ( ) ;
long resurrectionTime = Long . parseLong ( playerSplit [ 2 ] ) ;
TimeCheck timeCheck = new TimeCheck ( resurrectionTime - currentTime ) ;
2021-08-19 21:58:40 -06:00
System . out . println ( " [Resurrection] " + p . getDisplayName ( ) + " will respawn in " + timeCheck . formatTime ( 'f' ) ) ;
2021-07-04 00:15:56 -06:00
return true ;
2021-07-19 18:17:21 -06:00
} else {
System . out . println ( " [Resurrection] ERROR: " + p . getDisplayName ( ) + " is not dead! " ) ;
return false ;
2021-07-04 00:15:56 -06:00
}
}
}
2021-07-04 00:53:34 -06:00
System . out . println ( " [Resurrection] ERROR: An error has occurred while trying to get time information. This is a bug in the program and not your fault. " ) ;
2021-07-04 00:15:56 -06:00
return false ;
}
}
return false ;
}
}