*3rd GrassLife
この記事は MCC Advent Calendar 2016 - Adventar の3日目の記事です
2日の23:59:59まで誰も登録しなかったので急遽私が記事書きます。(宣伝です)
1日目にもMCC紹介記事を書かせていただきましたぐらぽむです。
私のbioに書いてあるGrassLifeって何なんだろうと思っている方、何人かいるのではないでしょうか。
GrassLifeというのはMinecraftのマルチプレイサーバーを開発・運営するサークルです。
去年の末頃(?)にはbetaサーバーを開放していたそうです。
私は今年の9月ごろにこのサークルに加入し開発を行っています。
コンセプトは、 善い生活をしてもらう ことです。
GrassLife正式サービスでは、Minecraftをより実生活に近づける仕組みを多数導入しており、その厳しい環境下でどのように善い生活をしてもらうかを楽しんでいただきたいとおもっています。
例として、プレイヤーの建てた家が集まってできるトライブ(集落)システムやアクションを積み重ねる事によってプレイヤーが成長していくナレッジ(知識)システムなどの導入を予定しています。
残念ながらサービス開始はもう少し先になりそうですが、PC版Minecraftをお持ちの方は是非遊びに来てください。
急遽記事を書くこととなり、ぱっとネタが思いつかなかったためこのような宣伝記事になってしまって申し訳ないです。
次回は@altcolonyの担当です
*1st 自己紹介
自己紹介
先輩方にいじめられていやいや始めたこのAdvent Calendarではありますが、1日目ということで嫌々ながら自己紹介をさせていただきます。
- MCC部長
某大学のマイクロコンピュータクラブ(MCC)というところで部長をしております。
11月中旬頃に部長職に就任し、12月頭からバカみたいに自分の名前でAdvent Calendarを立てさせられるというのがMCCの伝統芸能なのです。
参考
- イケイケIoT
渋谷区の某所でスマートハウスに関するお仕事をしています。
- GrassLife Dev.
MinecraftのGrassLifeというマルチプレイサーバーで、デベロッパーをさせていただいております。
まだサーバー稼働していませんが、PC版Minecraftをお持ちの方は是非そのうち遊んでいただけたらなと思います。
- FFXIV Valefor
ちまちまFF14やってます。 遅かったですが10月最終週くらいに天動編4層をクリアしました。占星術師です
といって分かる人が何人いるのか
- 餃子
餃子が好きです。 調子がいいと月に10~15食くらい食べます。
だいたい好きなポケモン使って狩られる側の人間です。機会があったらパーティー紹介します。
こうして列挙していくと、予想以上に自分について話すことって少ないものだなぁと実感します。
今のところ、このAdvent Calendarに登録してくれている人が少なすぎて悲しいのですが、なんとかなると信じてやっていこうと思います。
*1st MCCの話
伝統芸能
MCC部長には代々、それはそれは歴史の長い伝統芸能が伝授されております。
その伝統というのが、 各代の部長が勝手に始めたことを伝統芸能と言い張る伝統 でございます。
例えば1つ上の部長は、
部長がちゃらんぽらんで、まともに仕事しないのは伝統芸能だ!!!
と言い張り
勘弁してくれよまじで
例えば2つ上の部長は、
毎週の部会前に(あまり覚えていないんだけど)ちょっと面白いっぽいくだらない話を挟んで「部長の○○です、それでは部会を始めます。」の一言で部会を始めるのが伝統芸能だ!!!
と言い張りました
実を言うと役職が新しくなって部長があまり来なかった時期、ああいったことをやったほうがいいのかとは本気で悩んだ #MCC_LT
— ぐらぽむ (@gurapomu) June 17, 2016
それ以前は入学前なのでよくわかりません。
というわけですので当代の部長である私は
勝手に自分のAdvent Calenderを立てて、書いてくれる人が少なすぎて惨めな思いをするのが伝統芸能だ!!!
と言い張ります。
以上のことから、筆者の 「本当に悲しいのでAdvent Calender誰か書いてください」 という思いが感じ取れますね
部長のgurapomuです、それでは部会を始めます。
MCCの話ということですので、一応形だけでも活動報告的なことをしようと思います。
2016年度のこれまでのMCCの活動は大体以下の通りだと思います
大学生協が運営する新入生向けPC講習会の講師をする。
MCC_LT 第1回を開催する。(大盛況)
部内向けゲーム制作講習会を開催する。(大盛況)
ICPCアジア地区つくば大会国内予選に参加する。(大健闘)
コミックマーケット90にて部誌を販売する。(大盛況)
部内向けCTF講習会を開催する。(大盛況)
SECCON大阪大会に出場する。(大健闘)
ICPCアジア地区つくば大会本選に出場する。(大健闘)
学祭にて制作物を展示する。(大盛況)
このように、とても充実したサークル活動を行っております。
このような充実した大学生活を送っている各部員たちが執筆してくれるMCC Advent Calender 2016の記事には多大なる期待の念を禁じ得ません。
つたない文章ではありますが、以上で[*1st MCCの話]とさせていただきます。
Sponge Plugin 製作メモ [3. イベントの作成]
書くほどのことでも無いけどメモとして
適当にイベントを探してリスナークラスを書く
public class PlayerJoin {@Listener
public void onPlayerJoinEvent(ClientConnectionEvent.Join event){
System.out.println(event.getTargetEntity().getName() + " join");
}
}
イベントマネージャーに登録するだけ
Sponge.getEventManager().registerListeners(this, new PlayerJoin());
いまはGameStartedServerEvent内に記述してるけどいろいろ考えると登録はGameInitializationEventとかそこらでやるべきなのだろうか.Bukkitでどうしてたか忘れた.Eventはorg.spongepowered.api.event以下にいっぱいあるのでJavadocで探すと良い。
普通に引数eventをゴニョゴニョするといろいろでてくる
例えばgetCause()ではその名の通り何が原因となってそのeventが発生したかを取得する.(bukkitより高度)多分重要
Sponge Plugin 製作メモ [1. 初期設定と起動・終了時の処理、文字の出力]
まず、主となるクラスの前に注釈@Pluginをうつ。
IDと名前とバージョンを適当に設定。
@Plugin(id = "example", name = "Example", version = "1.0")
次にサーバー起動・終了時の処理について。
起動・終了時の処理を記述するにはそれぞれGameStartedServerEventとGameStoppedServerEventのリスナーを実装する。
@Listenerpublic void onServerStart (GameStartedServerEvent event){
//something...
}
@Listener
public void onServerStop (GameStoppedServerEvent event){
//something...
}
別クラスに書かない場合はこのような記述になる。別クラスに分けて記述することも可能だがスタートストップ(サーバーのライフサイクル処理)ぐらいはメインのクラスに記述したほうがわかりやすい気がする。
次に文字出力の設定ですが、単純に標準出力を使うことも出来るには出来る。
実際に使ってみた
@Listenerpublic void onServerStart (GameStartedServerEvent event){
System.out.println("HelloWorld!");
}
[10:55:06] [Server thread/INFO] [STDOUT]: [com.github.gurapomu.example.Example:onServerIStart:40]: HelloWorld!
非常に長ったらしいし読みづらい。
Spongeが提供するログ出力を使用するには以下のように記述する。
Logger logger;@Inject
private void setLogger(Logger logger){
Example.logger = logger;
}
public void onServerStart (GameStartedServerEvent event){
logger.info("Enabling Example Plugin v1.0");
}
[10:55:06] [Server thread/INFO] [example]: Enabling Example Plugin v1.0
スッキリした。
今回はここまで
MCLT for Sponge公開!
ようやくリリースです。
[Sponge 1.8]MCLogTweet for Sponge
とりあえずログイン・ログアウト時、サーバー起動時・終了時のツイート、コマンドによるツイート機能が実装してあります。
アップデート報告はおそらくこちらではしないのでご利用の方、フォーラムを御覧ください。