[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
ただいまコメントを受けつけておりません。
JRuby でなんかなんとかした。コアな部分は以下。全体を見るならば https://github.com/Shunshun94/myJruby/tree/5a765cbbaf79364e4f7a7c7ad436b885ca240a82 からどうぞ。
public class App { public static void main( String[] args ) { ScriptEngineManager manager = new ScriptEngineManager(); ScriptEngine engine = manager.getEngineByName("jruby"); try { // 実行ディレクトリを MyJRuby/src/main/resources/BCDice/src にしている // ソースコードは https://github.com/ysakasin/bcdice-api/blob/master/lib/bcdice_wrap.rb からコピペしたのをいじいじ。 engine.eval("$:.unshift File.dirname(__FILE__)"); engine.eval("require \"./bcdiceCore\"\nrequire \"diceBot/DiceBot\"\nrequire \"diceBot/DiceBotLoader\""); engine.eval("DICEBOTS = ([DiceBot.new] + DiceBotLoader.collectDiceBots).\r\n" + " map { |diceBot| [diceBot.id, diceBot] }.\r\n" + " to_h.\r\n" + " freeze\r\n\r\n" + " SYSTEMS = DICEBOTS.keys.\r\n" + " sort.\r\n" + " freeze\r\n\r\n" + " NAMES = DICEBOTS.\r\n" + " map { |gameType, diceBot| {system: diceBot.id, name: diceBot.name} }.\r\n" + " freeze\r\n" + ""); engine.eval("dicebot = DICEBOTS['SwordWorld2.0']"); engine.eval("bcdice = BCDiceMaker.new.newBcDice"); engine.eval("dicebot.bcdice = bcdice"); engine.eval("puts dicebot.dice_command('aaaaa', 'SwordWorld2.0')"); engine.eval("puts dicebot.dice_command('FT', 'SwordWorld2.0')"); engine.eval("puts dicebot.dice_command('2d6', 'SwordWorld2.0')"); engine.eval("puts dicebot.dice_command('K20', 'SwordWorld2.0')"); engine.eval("puts dicebot.dice_command('k20', 'SwordWorld2.0')"); } catch (ScriptException e) { e.printStackTrace(); } } }
ただいまコメントを受けつけておりません。