Skip to content

Instantly share code, notes, and snippets.

@ucchyocean
Created June 13, 2013 17:24
Show Gist options
  • Save ucchyocean/5775561 to your computer and use it in GitHub Desktop.
Save ucchyocean/5775561 to your computer and use it in GitHub Desktop.
PVPGunPlusで、リスポーン後のNoDamageTicks期間はダメージ無効にする。
/*
* @author ucchy
* @license GPLv3
* @copyright Copyright ucchy 2013
*/
package com.github.ucchyocean.pr;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.plugin.java.JavaPlugin;
import com.orange451.pvpgunplus.events.PVPGunPlusGunDamageEntityEvent;
/**
* PVPGunPlus_Addon_RespawnKillGuard
* @author ucchy
*/
public class RespawnKillGuard extends JavaPlugin implements Listener {
/**
* @see org.bukkit.plugin.java.JavaPlugin#onEnable()
*/
@Override
public void onEnable() {
getServer().getPluginManager().registerEvents(this, this);
}
@EventHandler
public void onPVPGunDamage(PVPGunPlusGunDamageEntityEvent event) {
if ( event.getEntityDamaged() instanceof Player ) {
Player damager = (Player)event.getEntityDamaged();
int ticks = damager.getNoDamageTicks();
if ( ticks > 0 ) {
event.setCancelled(true);
}
}
}
}
@ucchyocean
Copy link
Author

PVPGunPlus.jarをクラスパスに入れて、PVPGunPlusGunDamageEntityEvent のイベントをEventHandlerでハンドルする。

@ucchyocean
Copy link
Author

PVPGunPlus側から、NoDamageTicksを設定している箇所があり(例えば、ショットガンなど複数の弾が飛んで多段ヒットする場合、多段ノックバックしないようになっている)、
このコード(RespawnKillGuard)を入れると、多段ヒットしなくなるので威力が下がる可能性がある。
対策案としては例えば、ColorTeaming側から設定するNoDamageTicksを20多くし、こっちのコード側34行目の判定を if ( ticks > 20 ) にする(結構苦し紛れか・・・)。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment