Skip to content

Instantly share code, notes, and snippets.

@NotYusta
Created August 24, 2020 14:36
Show Gist options
  • Save NotYusta/a467c07215c1b81ff3deb5bab6bd02ab to your computer and use it in GitHub Desktop.
Save NotYusta/a467c07215c1b81ff3deb5bab6bd02ab to your computer and use it in GitHub Desktop.
Enderpearl yang bisa genjot genjot
package me.redepic.checkpearl
import net.milkbowl.vault.permission.Permission
import org.bukkit.Bukkit
import org.bukkit.entity.EnderPearl
import org.bukkit.entity.Player
import org.bukkit.event.EventHandler
import org.bukkit.event.Listener
import org.bukkit.event.entity.ProjectileHitEvent
import org.bukkit.event.entity.ProjectileLaunchEvent
import org.bukkit.plugin.RegisteredServiceProvider
import org.bukkit.plugin.java.JavaPlugin
class BouncePearl : JavaPlugin(), Listener {
override fun onEnable() {
Bukkit.getPluginManager().registerEvents(this, this)
setupPermissions()
}
@EventHandler
fun onPearlThrow(e: ProjectileLaunchEvent) {
val player = e.entity as Player
val shooter = e.entity.shooter
val pearl = e.entity
if(player.inventory.itemInMainHand.itemMeta.displayName != "bounce pearl")
return
if (shooter !is Player)
return
perm?.playerAdd(player, "tes")
}
@EventHandler
fun onPearlLand(e: ProjectileHitEvent) {
val perm = perm
val player = e.entity as Player
val shooter = e.entity.shooter
val projectile = e.entity
if(!player.hasPermission("tes"))
return
if (shooter !is Player || projectile !is EnderPearl)
return
if(projectile.doesBounce()) {
perm?.playerRemove(player, "tes")
projectile.remove()
}
else
projectile.doesBounce()
}
private fun setupPermissions(): Boolean {
val rsp: RegisteredServiceProvider<Permission> = server.servicesManager.getRegistration(Permission::class.java)
perm = rsp.provider
return perm != null
}
companion object {
var perm: Permission? = null
private set
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment