Skip to content

Commit

Permalink
Hopefully fixes #31 and #32, adding some more event blockers and simp…
Browse files Browse the repository at this point in the history
…ler move event
  • Loading branch information
Iru21 committed May 19, 2023
1 parent 1efe038 commit add8a93
Show file tree
Hide file tree
Showing 3 changed files with 81 additions and 17 deletions.
2 changes: 1 addition & 1 deletion gradle.properties
@@ -1,4 +1,4 @@
kotlin.code.style = official
minecraftVersion = 1.17
pluginName = Authy
pluginVersion = 3.2.5
pluginVersion = 3.2.6
93 changes: 78 additions & 15 deletions src/main/kotlin/me/iru/events/BlockEvents.kt
Expand Up @@ -7,72 +7,99 @@ import org.bukkit.event.EventPriority
import org.bukkit.event.Listener
import org.bukkit.event.block.BlockBreakEvent
import org.bukkit.event.block.BlockPlaceEvent
import org.bukkit.event.block.SignChangeEvent
import org.bukkit.event.entity.EntityDamageByEntityEvent
import org.bukkit.event.entity.EntityDamageEvent
import org.bukkit.event.entity.EntityPickupItemEvent
import org.bukkit.event.entity.FoodLevelChangeEvent
import org.bukkit.event.inventory.InventoryInteractEvent
import org.bukkit.event.player.*


class BlockEvents : Listener {
val loginProcess = Authy.loginProcess

@EventHandler(priority = EventPriority.HIGHEST)
@EventHandler(ignoreCancelled = true, priority = EventPriority.HIGHEST)
fun onMove(e : PlayerMoveEvent) {
if(loginProcess.contains(e.player)) {
e.isCancelled = true
val from = e.from
val to = e.to ?: return

if (from.blockX == to.blockX &&
from.blockZ == to.blockZ &&
from.y - to.y >= 0
) return

e.setTo(from)
}
}

@EventHandler(priority = EventPriority.HIGHEST)
@EventHandler(ignoreCancelled = true)
fun onBlockBreak(e : BlockBreakEvent) {
if (loginProcess.contains(e.player)) {
e.isCancelled = true
}
}

@EventHandler(priority = EventPriority.HIGHEST)
@EventHandler(ignoreCancelled = true)
fun onBlockPlace(e : BlockPlaceEvent) {
if(loginProcess.contains(e.player)) {
e.isCancelled = true
}
}

@EventHandler(priority = EventPriority.HIGHEST)
@EventHandler(ignoreCancelled = true, priority = EventPriority.LOWEST)
fun onItemConsume(e : PlayerItemConsumeEvent) {
if(loginProcess.contains(e.player)) {
e.isCancelled = true
}
}

@EventHandler(priority = EventPriority.HIGHEST)
@EventHandler(ignoreCancelled = true, priority = EventPriority.LOWEST)
fun onItemDrop(e : PlayerDropItemEvent) {
if(loginProcess.contains(e.player)) {
e.isCancelled = true
}
}

@EventHandler(priority = EventPriority.HIGHEST)
@EventHandler(ignoreCancelled = true, priority = EventPriority.LOWEST)
fun onItemHeld(e : PlayerItemHeldEvent) {
if(loginProcess.contains(e.player)) {
e.isCancelled = true
}
}

@EventHandler(ignoreCancelled = true, priority = EventPriority.LOWEST)
fun onItemPickup(e : EntityPickupItemEvent) {
if(e.entity is Player) {
if (loginProcess.contains((e.entity as Player).player as Player)) {
e.isCancelled = true
}
}
}

@EventHandler(ignoreCancelled = true, priority = EventPriority.LOWEST)
fun onUse(e : PlayerInteractEvent) {
if(loginProcess.contains(e.player)) {
e.isCancelled = true
}
}

@EventHandler(priority = EventPriority.HIGHEST)
@EventHandler(ignoreCancelled = true, priority = EventPriority.LOWEST)
fun onEntityUse(e : PlayerInteractAtEntityEvent) {
if(loginProcess.contains(e.player)) {
e.isCancelled = true
}
}

@EventHandler(priority = EventPriority.HIGHEST)
@EventHandler(ignoreCancelled = true, priority = EventPriority.LOWEST)
fun onEntityUse2(e : PlayerInteractEntityEvent) {
if(loginProcess.contains(e.player)) {
e.isCancelled = true
}
}

@EventHandler(priority = EventPriority.HIGHEST)
@EventHandler(ignoreCancelled = true, priority = EventPriority.LOWEST)
fun onDamageTaken(e : EntityDamageEvent) {
if(e.entity is Player) {
if (loginProcess.contains((e.entity as Player).player as Player)) {
Expand All @@ -81,7 +108,7 @@ class BlockEvents : Listener {
}
}

@EventHandler(priority = EventPriority.HIGHEST)
@EventHandler(ignoreCancelled = true, priority = EventPriority.LOWEST)
fun onFoodLevelChange(e : FoodLevelChangeEvent) {
if(e.entity is Player) {
if (loginProcess.contains((e.entity as Player).player as Player)) {
Expand All @@ -90,7 +117,7 @@ class BlockEvents : Listener {
}
}

@EventHandler(priority = EventPriority.HIGHEST)
@EventHandler(ignoreCancelled = true, priority = EventPriority.LOWEST)
fun onAttack(e : EntityDamageByEntityEvent) {
if(e.damager is Player) {
if (loginProcess.contains(e.damager as Player)) {
Expand All @@ -99,7 +126,7 @@ class BlockEvents : Listener {
}
}

@EventHandler(priority = EventPriority.HIGHEST)
@EventHandler(ignoreCancelled = true, priority = EventPriority.LOWEST)
fun onAnyCommand(e : PlayerCommandPreprocessEvent) {
val allowedCommands = mutableListOf("/l", "/login", "/reg", "/register")
if(loginProcess.contains(e.player)) {
Expand All @@ -110,20 +137,56 @@ class BlockEvents : Listener {
}
}

@EventHandler(priority = EventPriority.HIGHEST)
@EventHandler(ignoreCancelled = true, priority = EventPriority.LOWEST)
fun onChat(e : AsyncPlayerChatEvent) {
if(loginProcess.contains(e.player)) {
e.isCancelled = true
loginProcess.sendPleaseAuthMessage(e.player)
}
}

@EventHandler(priority = EventPriority.HIGHEST)
@EventHandler(ignoreCancelled = true, priority = EventPriority.LOWEST)
fun onInventoryInteract(e : InventoryInteractEvent) {
val p = e.whoClicked as Player
if(loginProcess.contains(p)) {
e.isCancelled = true
loginProcess.sendPleaseAuthMessage(p)
}
}


@EventHandler(ignoreCancelled = true, priority = EventPriority.LOWEST)
fun onShear(e : PlayerShearEntityEvent) {
if(loginProcess.contains(e.player)) {
e.isCancelled = true
}
}

@EventHandler(ignoreCancelled = true, priority = EventPriority.LOWEST)
fun onFish(e : PlayerFishEvent) {
if(loginProcess.contains(e.player)) {
e.isCancelled = true
}
}

@EventHandler(ignoreCancelled = true, priority = EventPriority.LOWEST)
fun onBedEnter(e : PlayerBedEnterEvent) {
if(loginProcess.contains(e.player)) {
e.isCancelled = true
}
}

@EventHandler(ignoreCancelled = true, priority = EventPriority.LOWEST)
fun onEditBook(e : PlayerEditBookEvent) {
if(loginProcess.contains(e.player)) {
e.isCancelled = true
}
}

@EventHandler(ignoreCancelled = true, priority = EventPriority.LOWEST)
fun onSignChange(e : SignChangeEvent) {
if(loginProcess.contains(e.player)) {
e.isCancelled = true
}
}
}
3 changes: 2 additions & 1 deletion src/main/kotlin/me/iru/events/LoginEvents.kt
Expand Up @@ -4,6 +4,7 @@ import me.iru.Authy
import me.iru.process.DuplicateProtection
import me.iru.process.JoinProcess
import org.bukkit.event.EventHandler
import org.bukkit.event.EventPriority
import org.bukkit.event.Listener
import org.bukkit.event.player.*

Expand All @@ -22,7 +23,7 @@ class LoginEvents : Listener {
DuplicateProtection.check(e)
}

@EventHandler
@EventHandler(priority = EventPriority.HIGHEST)
fun onQuit(e : PlayerQuitEvent) {
if (loginProcess.contains(e.player)) {
loginProcess.removePlayer(e.player)
Expand Down

0 comments on commit add8a93

Please sign in to comment.