無題ドキュメント

このページはfukaの趣味とか作業メモとか日記とかをだらだら書いています

minecraft Perl メモ 日記

minecraftで日本語が打てない人へのサーバー側での対応メモ

2019/11/05

MODサーバーではローマ字をひらがなにしてくれるものとかあったんだけど
バニラで行こうと決めているサーバーはそんなものはないので
ちょっとperlでこんな感じでどうかなって言うのを作ってみた。

1.ログからローマ字で書いてあるのを読み取って(File::Tailで読み込みっぱなし)
2.それをひらがなに変換して(Lingua::JA::Mojiのひらがな変換で変換)
3.マイクラのチャットに表示するって言う感じ(マイクラのコマンドで表示させました)
寄せ集めて作ってみたけどまぁ良いかな(*´ω`*)
これでバックグラウンドで動かしっぱなしにすればOKっと

おそらくいろいろと足りないもの(エラー処理とか、なんか変な値入れた時とかの処理とか、とかとか)があるとおもうのでもし使う人がいたら自己責任でお願いしますね(*´ω`*)

#!/usr/local/bin/perl
use strict;
use encoding 'utf-8';
use File::Tail;
use Lingua::JA::Moji 'romaji2hiragana';

my $file;
my $line;
my $username;
my $comment;
my $kana;

#ログをtailする インターバルは1秒ごと
$file=File::Tail->new( name => "/minecraft/logs/latest.log",maxinterval => 1,interval => 1);
while (defined($line=$file->read)) {

#[00:00:00] [Server thread/INFO]: <hogehoge> aiueo
#こんな感じのログが来たらユーザー名と文字を取得
#入力文字が1文字以上で英字かハイフンかスペースであるか
if ($line =~ /^\[[0-9][0-9]\:[0-9][0-9]\:[0-9][0-9]\]\s\[Server\sthread\/INFO\]\:\s\<(.*)\>\s([a-zA-Z0-9\-\s]{1,})$/) {
$username = $1;
$comment = $2;

#ローマ字をひらがなに変換
$kana = romaji2hiragana ("$comment");

#コマンドで結果をマイクラのチャットに表示する
system("/sbin/service minecraft command say henkankun $username $kana");

}
}

ほぼ全部寄せ集めて作ったので参考ページを書いている方に感謝します(*´ω`*)ありがとー
File::Tailの参考ページ
perldoc.jp
File::Tailの読み込みが遅かったのでこちらを参考にしました
気負わずに、自然体で
Lingua::JA::Moji-jaの使い方の参考にしました(これを見つけてしまったので作ろうという気になりましたw
metacpan
※20160422 プログラムをちょっとだけ変更しました(*´ω`*)
※20191105 Windows環境方はminecraftクライアントで日本語の外部支援ツールがありました。
ありがたく使わせていただきませう(*´ω`*)w
外部ツールのURL(自己責任でお使いください):sueiのねむたいぶろぐ内 【MCJPISS】日本語MOD未導入でも日本語を使えるようにするソフト


Minecraft ライトアップトーチ (松明)/ Minecraft Light-Up Torch [海外直送品][並行輸入品]

マインクラフト ライト&サウンド・アドベンチャーソード FMD13

マインクラフト 変形武器「ダイヤの剣/ツルハシ」 FCW14

マインクラフト エンチャント弓矢 FCW16

マインクラフト 武器 鉄の剣 FMD18

マインクラフト 武器 金のツルハシ FMD20

-minecraft, Perl, メモ, 日記