切换风格

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

4

主题

21

帖子

451

积分

注册会员

Rank: 2

积分
451
人气
7 点
钻石粒
674 粒
贡献
1 点
论坛币
97 个
爱心
0 点

论坛注册会员

[1.7.10][ECMA]BetterAntiExplosion——更好的防爆[复制链接]
发表于 2020-3-25 19:28:25 | 显示全部楼层 |阅读模式
脚本例子
脚本版本: 1.0
适用版本: 1.7.10 
编写语言: ECMA
最后更新: 2020-03-25
代码版权: 弱版权

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

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

x
本帖最后由 star丶星 于 2020-3-25 19:28 编辑

这个脚本取消了爆炸对方块造成的影响,但是会保留爆炸的伤害
代码:
var HotNPC = Java.type("mchhui.hotnpc.HotNPC");
var Tempdata = Java.type("mchhui.hotnpc.utlis.Tempdata");
var tempdata = HotNPC.tempdata;
var listeners;
var listenerName = ["Protect-ExplosionStartListener"];
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.world.ExplosionEvent.Detonate","HIGH",function(event){
   try{
    event.explosion.field_77281_g.clear();
    /*mcp:event.explosion.affectedBlockPositions.clear();
    清空爆炸影响的方块列表*/
   }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]);
/**
*@Author Hueihuea
*/
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:事件方法
*-bus:你可以指定EventBus
*Return:
*-Listener:监听器
*监听事件并返回监听对象
*/
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(String eventType,IEventListener listener,EventBus bus)
*-eventType:事件的类路径 如net.minecraftforge.event.ServerChatEvent
*-listener:事件方法
*-bus:你可以指定EventBus
*取消监听事件
*/
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起生效
*/

有问题 找星星

评分

参与人数 2人气 +2 钻石粒 +20 收起 理由
丨小学妹丨小舞 + 10 赞一个!
思望文宣 + 2 + 10 爱你么么哒

查看全部评分

我是憨批
回复

使用道具 举报

13

主题

37

帖子

484

积分

大区版主

Rank: 7Rank: 7Rank: 7

积分
484
人气
14 点
钻石粒
632 粒
贡献
0 点
论坛币
83 个
爱心
0 点
发表于 2020-3-25 19:35:20 | 显示全部楼层
支持
莫得
回复

使用道具 举报

4

主题

21

帖子

451

积分

注册会员

Rank: 2

积分
451
人气
7 点
钻石粒
674 粒
贡献
1 点
论坛币
97 个
爱心
0 点

论坛注册会员

发表于 2020-3-25 19:36:17 | 显示全部楼层

评个分
评个分
我是憨批
回复

使用道具 举报

0

主题

4

帖子

36

积分

论坛萌新

Rank: 1

积分
36
人气
0 点
钻石粒
38 粒
贡献
0 点
论坛币
10 个
爱心
0 点

论坛注册会员

发表于 2020-3-27 23:46:23 | 显示全部楼层
萌新前来围观
回复

使用道具 举报

16

主题

52

帖子

382

积分

注册会员

Rank: 2

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

论坛注册会员

发表于 2020-3-30 13:03:29 | 显示全部楼层
抢我生意
小浩喜欢男孩子嘛!
回复

使用道具 举报

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

本版积分规则

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

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

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

返回顶部