Update game states & world management
This commit is contained in:
61
src/main/kotlin/club/mcscrims/speedhg/util/LuckPermsUtils.kt
Normal file
61
src/main/kotlin/club/mcscrims/speedhg/util/LuckPermsUtils.kt
Normal file
@@ -0,0 +1,61 @@
|
||||
package club.mcscrims.speedhg.util
|
||||
|
||||
import club.mcscrims.speedhg.SpeedHG
|
||||
import net.luckperms.api.cacheddata.CachedDataManager
|
||||
import net.luckperms.api.model.group.Group
|
||||
import net.luckperms.api.model.user.User
|
||||
import org.bukkit.entity.Player
|
||||
import java.util.UUID
|
||||
|
||||
object LuckPermsUtils {
|
||||
|
||||
private val plugin = SpeedHG.instance
|
||||
private val luckPerms = plugin.luckPerms
|
||||
|
||||
fun getUser(
|
||||
player: Player
|
||||
): User?
|
||||
{
|
||||
return luckPerms.userManager.getUser( player.uniqueId )
|
||||
}
|
||||
|
||||
fun editUser(
|
||||
player: Player,
|
||||
action: (User) -> Unit
|
||||
) {
|
||||
luckPerms.userManager.loadUser( player.uniqueId ).thenAcceptAsync( action )
|
||||
}
|
||||
|
||||
fun getGroup(
|
||||
groupName: String
|
||||
): Group?
|
||||
{
|
||||
return luckPerms.groupManager.getGroup( groupName )
|
||||
}
|
||||
|
||||
fun getCachedData(
|
||||
player: Player
|
||||
): CachedDataManager?
|
||||
{
|
||||
return getUser( player )?.cachedData
|
||||
}
|
||||
|
||||
fun hasPermission(
|
||||
uniqueId: UUID,
|
||||
permission: String
|
||||
): Boolean
|
||||
{
|
||||
val cachedData = luckPerms.userManager.loadUser( uniqueId ).get().cachedData
|
||||
return cachedData.permissionData.checkPermission( permission ).asBoolean()
|
||||
}
|
||||
|
||||
fun hasPermission(
|
||||
player: Player,
|
||||
permission: String
|
||||
): Boolean
|
||||
{
|
||||
return getCachedData( player )?.permissionData?.checkPermission( permission )?.asBoolean()
|
||||
?: player.hasPermission( permission )
|
||||
}
|
||||
|
||||
}
|
||||
29
src/main/kotlin/club/mcscrims/speedhg/util/TimeUtils.kt
Normal file
29
src/main/kotlin/club/mcscrims/speedhg/util/TimeUtils.kt
Normal file
@@ -0,0 +1,29 @@
|
||||
package club.mcscrims.speedhg.util
|
||||
|
||||
import club.mcscrims.speedhg.SpeedHG
|
||||
|
||||
object TimeUtils {
|
||||
|
||||
private val plugin = SpeedHG.instance
|
||||
|
||||
fun scoreboardTimeFromState(): String
|
||||
{
|
||||
val currentTime = plugin.gameManager.getCurrentState()?.remainingSeconds
|
||||
?: throw IllegalArgumentException("Remaining seconds for state is null!")
|
||||
return scoreboardTime( currentTime )
|
||||
}
|
||||
|
||||
fun scoreboardTime(
|
||||
totalSeconds: Int
|
||||
): String
|
||||
{
|
||||
val hours = totalSeconds / 3600
|
||||
val minutes = (totalSeconds % 3600) / 60
|
||||
val seconds = totalSeconds % 60
|
||||
|
||||
if ( totalSeconds > 3600 )
|
||||
return String.format( "%02d:%02d:%02d", hours, minutes, seconds )
|
||||
return String.format( "%02d:%02d", minutes, seconds )
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user