切换风格

默认晚霞 雪山 粉色心情 伦敦 花卉 绿野仙踪 加州 白云 星空 薰衣草 城市 简约黑色 龙珠
回复 0

16

主题

52

帖子

382

积分

注册会员

Rank: 2

积分
382
人气
7 点
钻石粒
328 粒
贡献
0 点
论坛币
73 个
爱心
0 点

论坛注册会员

[1.7.10][ECMA]tooltip的应用[复制链接]
发表于 2020-3-21 15:20:38 | 显示全部楼层 |阅读模式
脚本例子
脚本版本: 1.0.0
适用版本: 1.7.10 
编写语言: ECMA
最后更新: 2020-03-10
代码版权: 强版权

请注册论坛会员,已便查看高清图片!

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
本帖最后由 万年萌新小浩 于 2020-3-21 15:24 编辑
function Listener(eventType,listener,bus){
 var MinecraftForge=Java.type("net.minecraftforge.common.MinecraftForge");
 this.eventType=eventType;
 this.listener=listener;
 this.bus=(bus==null)?MinecraftForge.EVENT_BUS:bus;
 this.getEventType=function(){
  return this.eventType;
 }
 this.getListener=function(){
  return this.listener;
 }
 this.getBus=function(){
  return this.bus;
 }
}
/**
*EventListener listenEvent(String eventType,String priority,function listener)
*-eventType:你要监听的事件的类路径 如net.minecraftforge.event.ServerChatEvent
*-priority:你的事件优先级 从低到高LOWEST LOW NORMAL HIGH HIGHEST
*-listener:事件方法
*Return:
*-EventListener:事件监听者
*监听事件并返回监听对象
*/
function listenEvent(eventType,priority,listener,bus){
 var Event=Java.type(eventType);
    try{
     var IEventListener=Java.type("net.minecraftforge.fml.common.eventhandler.IEventListener");
     var EventPriority=Java.type("net.minecraftforge.fml.common.eventhandler.EventPriority");
    }catch(err){
     var IEventListener=Java.type("cpw.mods.fml.common.eventhandler.IEventListener");
     var EventPriority=Java.type("cpw.mods.fml.common.eventhandler.EventPriority");
    }
 var MinecraftForge=Java.type("net.minecraftforge.common.MinecraftForge");
 var event=new Event();
    if(priority=="LOW"){
     priority=EventPriority.LOW;
    }
    if(priority=="HIGH"){
     priority=EventPriority.HIGH;
    }
    if(priority=="NORMAL"){
     priority=EventPriority.NORMAL;
    }
    if(priority=="LOWEST"){
     priority=EventPriority.LOWEST;
    }
    if(priority=="HIGHEST"){
     priority=EventPriority.HIGHEST;
    }
 var EventListener=Java.extend(IEventListener,{
  invoke:listener
 });
 listener=new EventListener();
 var bus=(bus==null)?MinecraftForge.EVENT_BUS:bus;
 var busID=bus.class.getDeclaredField("busID");
 busID.setAccessible(true);
 busID=busID.getInt(bus);
 event.getListenerList().register(busID,priority,listener);
 return new Listener(eventType,listener,bus);
}
/**
*void unListenEvent(IEventListener listener)
*-listener:事件方法
*取消监听事件
*/
function unListenEvent(eventType,listener,bus){
 var Event=Java.type(eventType);
 var MinecraftForge=Java.type("net.minecraftforge.common.MinecraftForge");
 var event=new Event();
 var bus=(bus==null)?MinecraftForge.EVENT_BUS:bus;
 var busID=bus.class.getDeclaredField("busID");
 busID.setAccessible(true);
 busID=busID.getInt(bus);
 event.getListenerList().unregister(busID,listener);
}
/**
*@Author Hueihuea
*著作权属于Hueihuea 2019/6/16起生效
*/
var HotNPC=Java.type("mchhui.hotnpc.HotNPC");
var Tempdata=Java.type("mchhui.hotnpc.utlis.Tempdata");
var tempdata=HotNPC.tempdata;
var listeners;
var listenerName=["qwqwqwqwqwqqw"];
if(!tempdata.has("listeners")){
 tempdata.set("listeners",new Tempdata())
}
listeners=tempdata.get("listeners")
if(!listeners.has(listenerName[0])){
 listeners.set(listenerName[0],listenEvent("net.minecraftforge.event.entity.player.EntityItemPickupEvent","HIGH",
  function(event){
   try{
   event.tooltip.add("精神污染")

   }catch(e){npc.say(e)}
  }
 ));
 npc.say("不知道会不会显示");
}
//unListenEvent(listeners.get(listenerName[0]).getEventType(),listeners.get(listenerName[0]).getListener(),listeners.get(listenerName[0]).getBus());
//listeners.remove(listenerName[0]);


版权声明:
1.您不能转载本帖
2.您不能声称作者是自己


评分

参与人数 1人气 +2 收起 理由
QQ_4ADA9A + 2

查看全部评分

小浩喜欢男孩子嘛!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|自定义NPC脚本中文论坛 ( 蜀ICP备17005795号-3 )

GMT+8, 2020-8-15 22:35 , Processed in 0.156954 second(s), 29 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

返回顶部