Skip to content

Commit

Permalink
Fix flying kick when trying to log in on water
Browse files Browse the repository at this point in the history
  • Loading branch information
Iru21 committed Sep 18, 2022
1 parent aa1e1c9 commit 628bef5
Show file tree
Hide file tree
Showing 4 changed files with 40 additions and 34 deletions.
4 changes: 2 additions & 2 deletions src/main/kotlin/me/iru/data/Session.kt
Expand Up @@ -2,7 +2,7 @@ package me.iru.data

import me.iru.Authy
import me.iru.LoginType
import me.iru.utils.teleportToGround
import me.iru.utils.TeleportUtil
import org.bukkit.entity.Player
import java.lang.Long.parseLong
import java.sql.Timestamp
Expand All @@ -27,7 +27,7 @@ class Session {
val curtime = Timestamp(System.currentTimeMillis())
val timestamp = curtime.time
if((parseLong(session.toString()) + (authy.config.getInt("sessionExpiresIn") * 3600000) > timestamp) && p.address?.address?.hostAddress == authyPlayer.ip) {
teleportToGround(p)
TeleportUtil.teleportToValidPlace(p)
authManager.login(p, LoginType.Session)
return true
}
Expand Down
4 changes: 2 additions & 2 deletions src/main/kotlin/me/iru/process/JoinProcess.kt
Expand Up @@ -3,8 +3,8 @@ package me.iru.process
import me.iru.Authy
import me.iru.PrefixType
import me.iru.data.migration.Migration
import me.iru.utils.TeleportUtil
import me.iru.utils.hasValidName
import me.iru.utils.teleportToGround
import org.bukkit.Location
import org.bukkit.entity.Player
import org.bukkit.potion.PotionEffect
Expand All @@ -28,7 +28,7 @@ class JoinProcess(private val player: Player) {
if(session.tryAutoLogin(player)) return

joinTeleports()
teleportToGround(player)
TeleportUtil.teleportToValidPlace(player)

// Place premium check here

Expand Down
36 changes: 36 additions & 0 deletions src/main/kotlin/me/iru/utils/TeleportUtil.kt
@@ -0,0 +1,36 @@
package me.iru.utils

import me.iru.Authy
import org.bukkit.Location
import org.bukkit.block.BlockFace
import org.bukkit.entity.Player
import org.bukkit.scheduler.BukkitTask

object TeleportUtil {
fun teleportToValidPlace(player: Player) {
teleportToGround(player)
}

fun teleportToGround(player: Player) {
val authy = Authy.instance

var f = false
if(player.isFlying) {
f = true
player.isFlying = false
}

var task0 : BukkitTask? = null
var loc = player.location
task0 = authy.server.scheduler.runTaskTimer(authy, Runnable {
if(!loc.block.getRelative(BlockFace.DOWN).type.isSolid) {
loc = Location(loc.world, loc.x, loc.y - 1, loc.z)
} else {
task0!!.cancel()
player.teleport(loc)
}
}, 0L, 0L)

if(f) player.isFlying = true
}
}
30 changes: 0 additions & 30 deletions src/main/kotlin/me/iru/utils/teleportToGround.kt

This file was deleted.

0 comments on commit 628bef5

Please sign in to comment.