- ◆ 依赖插件
- FIScript
包名自己该,类名也可以改,提示消息也可以改,或者增加一点东西,宝可梦的消息直接翻PixelmonMod api中的Pokemon
代码:
package com.example.listener.egghatch
import com.pixelmonmod.pixelmon.api.events.EggHatchEvent
import me.fullidle.ficore.ficore.common.api.event.ForgeEvent
import me.fullidle.fiscript.fiscript.Main
import net.minecraft.entity.Entity
import net.minecraft.entity.player.EntityPlayerMP
import org.bukkit.Bukkit
import org.bukkit.event.EventHandler
import org.bukkit.event.Listener
import java.lang.reflect.Field
class EggHatchSendMsg implements Listener{
static void main(String[] args) {
/*注册事件*/
Bukkit.getPluginManager().registerEvents(new EggHatchSendMsg(), Main.plugin)
Main.plugin.getLogger().info("EggHatchSendMsg 孵化提示脚本载入!")
}
@EventHandler
def forge(ForgeEvent event){
if (event.getForgeEvent() instanceof EggHatchEvent.Post) {
EggHatchEvent.Post e = event.getForgeEvent() as EggHatchEvent.Post
def player = getPlayer(e.player)
player.sendMessage("§a宝可梦:"+e.pokemon.localizedName+"孵化了!")
}
}
static def getPlayer(EntityPlayerMP mp){
def field = Class.getDeclaredMethod("getDeclaredField",String.class)
.invoke(Entity.class,"field_96093_i") as Field
field.setAccessible(true)
def uuid = field.get(mp) as UUID
return Bukkit.getPlayer(uuid)
}
}
FIScript配置
请将这个配置路径配置到fiscript的config.yml内的enable
其他:
发现一个问题有些类,比如EntityPlayerMP.class这种不管用什么调用什么方法都会报错,且报错就一句话"这不该有错误的!可是它发生了..."
不过上边的Pokemon类不会这样,我也不知道为什么
需要调用forge类中的一些方法,只能用mcp对照表内的混淆方法