如何使用jruby使用类声明

时间:2015-01-21 21:15:46

标签: java ruby jruby minecraft-forge

我试图使用Forge和JRuby为Minecraft制作一个mod。我想用Ruby来编写mods,但我需要使用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

1 个答案:

答案 0 :(得分:2)

看起来这些是注释,所以请看一下JRuby's reference on them

它可能最终看起来像:

java_annotation('Mod(modid="MyModID", name="MyModName")')
class MyMod
  # ... mod stuff
end