mirror of
https://github.com/Auxilor/EcoEnchants.git
synced 2024-11-21 14:55:17 +01:00
Patched grindstone xp exploit
This commit is contained in:
parent
0c5d42879f
commit
476e0c99ea
@ -2,8 +2,10 @@ package com.willfp.ecoenchants.mechanics
|
|||||||
|
|
||||||
import com.willfp.eco.core.EcoPlugin
|
import com.willfp.eco.core.EcoPlugin
|
||||||
import com.willfp.eco.core.fast.fast
|
import com.willfp.eco.core.fast.fast
|
||||||
|
import com.willfp.eco.core.gui.player
|
||||||
import com.willfp.ecoenchants.enchant.wrap
|
import com.willfp.ecoenchants.enchant.wrap
|
||||||
import org.bukkit.enchantments.Enchantment
|
import org.bukkit.enchantments.Enchantment
|
||||||
|
import org.bukkit.entity.ExperienceOrb
|
||||||
import org.bukkit.event.EventHandler
|
import org.bukkit.event.EventHandler
|
||||||
import org.bukkit.event.Listener
|
import org.bukkit.event.Listener
|
||||||
import org.bukkit.event.inventory.InventoryClickEvent
|
import org.bukkit.event.inventory.InventoryClickEvent
|
||||||
@ -17,7 +19,7 @@ class GrindstoneSupport(
|
|||||||
private val plugin: EcoPlugin
|
private val plugin: EcoPlugin
|
||||||
) : Listener {
|
) : Listener {
|
||||||
@EventHandler
|
@EventHandler
|
||||||
fun onGrindstone(event: InventoryClickEvent) {
|
fun preGrindstone(event: InventoryClickEvent) {
|
||||||
val inventory = event.view.topInventory as? GrindstoneInventory ?: return
|
val inventory = event.view.topInventory as? GrindstoneInventory ?: return
|
||||||
|
|
||||||
// Run everything later to await event completion
|
// Run everything later to await event completion
|
||||||
@ -77,4 +79,31 @@ class GrindstoneSupport(
|
|||||||
result.itemMeta = meta
|
result.itemMeta = meta
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@EventHandler
|
||||||
|
fun postGrindstone(event: InventoryClickEvent) {
|
||||||
|
val inventory = event.clickedInventory as? GrindstoneInventory ?: return
|
||||||
|
|
||||||
|
if (event.slot != 2) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
val item = inventory.result ?: return
|
||||||
|
|
||||||
|
if (item.fast().getEnchants(true).isEmpty()) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// Force remove XP
|
||||||
|
plugin.scheduler.runLater(1) {
|
||||||
|
val loc = inventory.location
|
||||||
|
|
||||||
|
val orbs = loc?.getNearbyEntities(3.0, 3.0, 3.0)
|
||||||
|
?: emptyList()
|
||||||
|
|
||||||
|
for (orb in orbs.filterIsInstance<ExperienceOrb>()) {
|
||||||
|
orb.remove()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user