如何使用 jruby 使用 class 声明
How to use class declarations using jruby
我正在尝试使用 Forge 和 JRuby 为 Minecraft 制作 mod。我想使用 Ruby 来编写 mods,但我需要使用 class 声明让 Forge 接受它作为 mod.
@Mod(modid = ExampleMod.MODID, version = ExampleMod.VERSION)
我试着把它写成一个函数,但它不起作用。我没有发现任何错误,但 Forge 无法识别。
Mod(modid = MyMod.modid, version = MyMod.version)
如何在 Ruby 中写这个?如果我将这部分写在 Java 中,其余部分写在 Ruby 中,它可以工作,但我更希望它全部写在 Ruby.
中
已编辑:
这是使用 java:
创建 mod 的正确方法
package com.example.examplemod;
import cpw.mods.fml.common.Mod;
import cpw.mods.fml.common.Mod.EventHandler;
import cpw.mods.fml.common.event.FMLInitializationEvent;
@Mod(modid = ExampleMod.MODID, version = ExampleMod.VERSION)
public class ExampleMod
{
public static final String MODID = "examplemod";
public static final String VERSION = "1.0";
@EventHandler
public void init(FMLInitializationEvent event)
{
}
}
我的代码在ruby:
require 'java'
import 'cpw.mods.fml.common.Mod'
import 'cpw.mods.fml.common.registry.GameRegistry'
import 'net.minecraft.init.Blocks'
import 'net.minecraft.creativetab.CreativeTabs'
import 'net.minecraft.block.material.Material'
class MyMod
modid = "examplemod2";
version = "1.0";
def init(event)
end
end
看起来这些是注释,所以看看JRuby's reference on them。
最终可能看起来像这样:
java_annotation('Mod(modid="MyModID", name="MyModName")')
class MyMod
# ... mod stuff
end
我正在尝试使用 Forge 和 JRuby 为 Minecraft 制作 mod。我想使用 Ruby 来编写 mods,但我需要使用 class 声明让 Forge 接受它作为 mod.
@Mod(modid = ExampleMod.MODID, version = ExampleMod.VERSION)
我试着把它写成一个函数,但它不起作用。我没有发现任何错误,但 Forge 无法识别。
Mod(modid = MyMod.modid, version = MyMod.version)
如何在 Ruby 中写这个?如果我将这部分写在 Java 中,其余部分写在 Ruby 中,它可以工作,但我更希望它全部写在 Ruby.
中已编辑: 这是使用 java:
创建 mod 的正确方法package com.example.examplemod;
import cpw.mods.fml.common.Mod;
import cpw.mods.fml.common.Mod.EventHandler;
import cpw.mods.fml.common.event.FMLInitializationEvent;
@Mod(modid = ExampleMod.MODID, version = ExampleMod.VERSION)
public class ExampleMod
{
public static final String MODID = "examplemod";
public static final String VERSION = "1.0";
@EventHandler
public void init(FMLInitializationEvent event)
{
}
}
我的代码在ruby:
require 'java'
import 'cpw.mods.fml.common.Mod'
import 'cpw.mods.fml.common.registry.GameRegistry'
import 'net.minecraft.init.Blocks'
import 'net.minecraft.creativetab.CreativeTabs'
import 'net.minecraft.block.material.Material'
class MyMod
modid = "examplemod2";
version = "1.0";
def init(event)
end
end
看起来这些是注释,所以看看JRuby's reference on them。
最终可能看起来像这样:
java_annotation('Mod(modid="MyModID", name="MyModName")')
class MyMod
# ... mod stuff
end