【问题标题】:Bukkit Plugin Call IC2 FunctionBukkit 插件调用 IC2 函数
【发布时间】:2014-02-07 20:50:00
【问题描述】:

我需要从我的 bukkit 插件中调用 IC2 (mod) API 的函数。

如何将 IC2 API 导入到插件中以便调用该函数?

让您了解我为什么要这样做;

下面是一段 javascript,它完全符合我的需要。但是这个脚本运行一个名为 ScriptCraft 的插件,它可以让你用 javascript 制作插件。我希望这个脚本用 java 实现到它自己的插件中,所以我不需要 ScriptCraft。

cl = __plugin.getClass().getClassLoader().getParent();
ic2 = cl.loadClass("ic2.core.IC2").newInstance();
net = ic2.network;
dmm = cl.loadClass("net.minecraftforge.common.DimensionManager").newInstance();
worlds = dmm.getWorlds();

for(var wid in worlds){
    var te = worlds[wid].field_73009_h;
    for (var ti=0;ti<te.size();ti++){
        if(te.get(ti).getFacing!=undefined){
            net.updateTileEntityField(te.get(ti),"facing")
        }
    }
}

我可以看到它在做什么以及如何做。我只是不知道如何在 bukkit 插件中运行 IC2 的 updateTileEntityField()。

编辑: 我已经开始把它转成java了,但是没走多远就遇到了问题。

NetworkManager ic2 = new ic2.core.IC2().network;
DimensionManager dmm = new net.minecraftforge.common.DimensionManager();
?? worlds = dmm.getWorlds(); //What Data Type?

问题出在最后一行。 getWorlds() 请求一个 in[] 数据类型,eclipse 说它不存在。

【问题讨论】:

    标签: java eclipse plugins minecraft bukkit


    【解决方案1】:

    您需要将 .jar API 添加到 Eclipse 中的 Java 构建路径。

    然后您应该能够创建一个新实例并调用您希望调用的方法。

    【讨论】:

    • 我已经添加了jar,并导入了它,但我不知道如何添加实例。
    【解决方案2】:

    如果您知道插件的名称,您可以像这样获取 permissionsEx(或任何其他插件)...

    var pex = server.pluginManager.getPlugin('PermissionsEx');
    
    if (pex.getUser(player).inGroup('moderator') ) {
    ...
    }
    

    一般如果你想使用另一个插件的API,然后通过名称获取插件对象,然后调用它的方法。希望这会有所帮助。

    沃尔特

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-19
      • 1970-01-01
      相关资源
      最近更新 更多