カウンター

  • 24183総訪問者数:
  • 22今日の訪問者数:
  • 30昨日の訪問者数:
  • 39一日あたりの訪問者数:
  • 0現在オンライン中の人数:
  • 2014年9月21日カウント開始日:

プラグインEpicBoss_GoldEdition

プラグイン:EpicBossGoldEditionD10_1.7.10.jar
サーバ:spigot-1.7.10-R0.1-SNAPSHOT_1641.jar

既に公開されていないプラグインで、古いサーババージョンでしか動かないプラグインなんですが、改造して動かしてます。

ebge

既に何度も改造しているのですが、今回はワールドの中央から離れれば離れるほど強い敵が出ない仕様に改造してみました。基本的には敵の強さ毎にランク1~6までを定義し、敵の定義名に番号を振っているので、その数字を見て出現を制御してます。

ちなみに敵の出現量が100だとして、その中にランク3の敵が30%居た場合で、ランク3の敵が出ない地域に居る場合は、出現量が70となります。だから、敵の数自体もワールドの中央に近づくにつれて多くなります。

プラグインdynmap

プラグイン:dynmap-2.0.0-alpha-1.jar
サーバ:spigot-1.7.10-R0.1-SNAPSHOT_1641.jar

資源マップの生成をしてるけど、どうも地下を見せると、慣れてる人が欲しい地下生成物を片っ端から取っていってしまうということが起こります。とは言え完全に隠すのもわかりづらい。

というバランスを考えてカスタマイズしてみた結果がこれ

dynmap

先ず、worlds.txtの定義の部分にこんな感じで記載。(caveの定義だけ抜粋)

– class: org.dynmap.hdmap.HDMap
name: cave
title: “Cave”
prefix: ct
perspective: custom_cave
shader: lit-cave
lighting: default
mapzoomin: 3

shader: lit-caveというのが、どうも明かりをともした場所だけ描画するというシェーダらしい。定義済みなので、書くだけで機能します。なので、探索したところだけ見えるようにできそう。(実際にはその周辺の溶岩光がある場所も見えてる?)
「perspective: custom_cave」はカスタムパースペクティブ。custom-perspectives.txtに以下の様に追記して、それを参照してます。

perspectives:
– class: org.dynmap.hdmap.IsoHDPerspective
name: custom_cave
azimuth: 135
inclination: 15
scale: 1

azimuthが視点の方向を示す角度。135というのは南東から見てるよという数値。dynmapの他のデフォもこの角度をよく使ってるので、合わせてます。
inclinationが視点の高さ。90が真上で0が真横。15なので、かなり水平に近い視点です。
scaleが解像度みたいなもの。定義済みのパースペクティブで使われてる高解像度(hires)が16、中解像度(midres)が8、低解像度が4だそうで。上記は1なので、低解像度よりもさらに小さい数値です。

こんな感じで、「とりあえず見えるけど、探索しないと見えないし、見えても見づらい」というのを演出してみました。

プラグインTNTRun

プラグイン:TNTRun_v3.4.jar
サーバ:spigot-1.7.10-R0.1-SNAPSHOT_1641.jar

前から入れて見たかったミニゲーム系。Alicornに似たようなプラグインでMinigamePartyというのが入ってるけど、あっちは重すぎるのでAvalon用の代替えプラグインとして入れられればなという感じ。

しかし、( ゚д゚)ハッ!と気がついたときには何故か翻訳作業を始めてたw

tntrun1

検証が先でしょうに・・・動かなかったらどうするのか。

・・・で、検証したらあっさり動きました。先ずこういう地形を作成。
tntrun2

WorldEditで対象エリアを全部選択し(後述のLoseAreaも含めて)、

  • /trsetup create アリーナ名
    ・・・作成
  • /trsetup setarena アリーナ名
    ・・・上記の選択範囲をエリアにする
  • /trsetup setloselevel アリーナ名
    ・・・敗北判定の区画。先に対象エリアを選択する。基本的には床の下のエリアで、そこに入ると負け判定になる。
  • /trsetup setspawn アリーナ名
    ・・・出現場所(スタート地点)の設定
  • /trsetup setspectate アリーナ名
    ・・・観客席?たぶん負けた人の保留エリア
  • /trsetup finish アリーナ名
    ・・・完了

あとは、看板を設置して1行目[TNTrun]、2行目[Join]、3行目アリーナ名とすれば、そこを叩くと参加となる。

ちなみに2名以上じゃないと開始できません。

・・・おっとBarAPIに緩衝するか?

[11:36:43 WARN]: java.lang.NoSuchMethodException: net.minecraft.server.v1_7_R4.PacketPlayOutEntityTeleport.<init>(int, int, int, int, byte, byte)
[11:36:43 WARN]: at java.lang.Class.getConstructor0(Class.java:2849)
[11:36:43 WARN]: at java.lang.Class.getConstructor(Class.java:1718)
[11:36:43 WARN]: at me.confuser.barapi.nms.v1_7.getTeleportPacket(v1_7.java:139)
[11:36:43 WARN]: at me.confuser.barapi.BarAPI.sendDragon(BarAPI.java:410)
[11:36:43 WARN]: at me.confuser.barapi.BarAPI.setMessage(BarAPI.java:230)
[11:36:43 WARN]: at tntrun.bars.Bars.setBar(Bars.java:45)
[11:36:43 WARN]: at tntrun.arena.handlers.PlayerHandler.spawnPlayer(PlayerHandler.java:109)
[11:36:43 WARN]: at tntrun.signs.type.JoinSign.handleClick(JoinSign.java:68)
[11:36:43 WARN]: at tntrun.signs.SignHandler.onSignClick(SignHandler.java:79)
[11:36:43 WARN]: at sun.reflect.GeneratedMethodAccessor451.invoke(Unknown Source)
[11:36:43 WARN]: at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[11:36:43 WARN]: at java.lang.reflect.Method.invoke(Method.java:606)
[11:36:43 WARN]: at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:298)
[11:36:43 WARN]: at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62)
[11:36:43 WARN]: at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:514)
[11:36:43 WARN]: at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:499)
[11:36:43 WARN]: at org.bukkit.craftbukkit.v1_7_R4.event.CraftEventFactory.callPlayerInteractEvent(CraftEventFactory.java:242)
[11:36:43 WARN]: at net.minecraft.server.v1_7_R4.PlayerInteractManager.interact(PlayerInteractManager.java:382)
[11:36:43 WARN]: at net.minecraft.server.v1_7_R4.PlayerConnection.a(PlayerConnection.java:662)
[11:36:43 WARN]: at net.minecraft.server.v1_7_R4.PacketPlayInBlockPlace.a(PacketPlayInBlockPlace.java:50)
[11:36:43 WARN]: at net.minecraft.server.v1_7_R4.PacketPlayInBlockPlace.handle(PacketPlayInBlockPlace.java:86)
[11:36:43 WARN]: at net.minecraft.server.v1_7_R4.NetworkManager.a(NetworkManager.java:186)
[11:36:43 WARN]: at net.minecraft.server.v1_7_R4.ServerConnection.c(ServerConnection.java:81)
[11:36:43 WARN]: at net.minecraft.server.v1_7_R4.MinecraftServer.v(MinecraftServer.java:734)
[11:36:43 WARN]: at net.minecraft.server.v1_7_R4.DedicatedServer.v(DedicatedServer.java:289)
[11:36:43 WARN]: at net.minecraft.server.v1_7_R4.MinecraftServer.u(MinecraftServer.java:584)
[11:36:43 WARN]: at net.minecraft.server.v1_7_R4.MinecraftServer.run(MinecraftServer.java:490)
[11:36:43 WARN]: at net.minecraft.server.v1_7_R4.ThreadServerApplication.run(SourceFile:628)

とりあえずBarAPIを外したところエラーは無くなりました。まぁ、見た目だけの機能だからいっか。LegendaryMessagesとSilkSpawnersで使ってるらしいけど、何に使ってるかわからないし。

再生成用の新資源

毎回のことですが、使い易い資源を提供できるようにいくつか生成してます。ちなみにネザーとエンドはほぼテキトーに作ってます。あ、ネザーはスポーンポイントが大きな空洞じゃないとボツかな。
候補1,2はボツでもう消しました。

res2-4 案3、今の所有力。ちょっと海が多すぎるのが難点。
res2-5案4、湿地が少ないのでボツ。
res2-6案5、う~ん、イマイチ
res2-7案6、お、これいいんじゃない?資源の種類も豊富だし。氷原とかはなさそうだけど、ジャングルがあればいいなぁ。
res2-8案7、いろいろバイオームが豊富だけど、レアバイオームは無し
res2-9案8、案7に似てるね。案7共に湿地が多いから、粘土の採取にはいいかな。
res2-10案9、あまり平地が無いw。大きなジャングルと雪原がありますね。いいんだか悪いんだか・・・?

JobArranger

jobarrenger

マインクラフトとは直接関係ないけど、定時処理用に使ってるツール。巷では「ジョブコントローラ」って呼ばれてる分類のプログラムですね。
定時処理はサーバなら普通にできるけど、こういうのを使うと例えば順列に処理しなければならないプログラムの前後関係とかを制御してくれるので、バックアップが動いている途中にサーバシャットダウンとかは絶対に起きない。あとは視覚的にフローチャートみたいでわかりやすいよね。

マイクラサーバの定期再起動やバックアップはこれを使ってやってます。

プラグインImageOnMap

ByD1uCKCIAMPtCW
プラグイン:imageonmap_v2.7.jar
サーバ:spigot-1.7.10-R0.1-SNAPSHOT_1641.jar
Web上の画像をmapに転写する。額縁に貼れば絵画代わりになる。

うまく動いている様にも見えるが、サーバごとクラッシュさせるバグもあるっぽい。

プラグインFramePicture

プラグイン:FramePicture_v1.7.3.jar
サーバ:spigot-1.7.10-R0.1-SNAPSHOT_1641.jar
ゲーム内の額縁にWeb上の画像を掲載できる超画期的なプラグイン・・・。なんですが、結局動きませんでした。
ちなみに、コマンドはFrameProtectと被ってますね。FrameProtectなんて超メジャー所と被らせないで欲しい・・・。まぁ、FramePicture:fpで行けたから良かったけど。フォールバックシステム様々。

ダウンロードまでは行けたけど、どうもそれの表示ができていない。PacketPlayOutMapがイケてないってところまではわかるけど・・・

[12:55:24] [Server thread/INFO]: Tactica issued server command: /FramePicture:fp set http://k.yimg.jp/images/top/sp2/cmn/logo-ns-131205.png
[12:55:25] [Server thread/INFO]: [FramePicture] Download http://k.yimg.jp/images/top/sp2/cmn/logo-ns-131205.png …
[12:55:25] [Thread-32/INFO]: [FramePicture] Image plugins/FramePicture/images/logo-ns-131205.png was downloaded!
[12:55:26] [Server thread/WARN]: [FramePicture] Task #61 for FramePicture v1.7.3 generated an exception
java.lang.NoSuchMethodError: net.minecraft.server.v1_7_R4.PacketPlayOutMap.<init>(I[B)V
at de.howaner.FramePicture.util.Frame.sendMapData(Frame.java:148) ~[?:?]
at de.howaner.FramePicture.util.Frame.sendTo(Frame.java:107) ~[?:?]
at de.howaner.FramePicture.FrameManager.sendFrame(FrameManager.java:180) ~[?:?]
at de.howaner.FramePicture.FrameManager.addFrame(FrameManager.java:209) ~[?:?]
at de.howaner.FramePicture.listener.FrameListener$1.downloadSuccess(FrameListener.java:101) ~[?:?]
at de.howaner.FramePicture.util.PictureDatabase$2$1.run(PictureDatabase.java:165) ~[?:?]
at de.howaner.FramePicture.util.PictureDatabase$1.run(PictureDatabase.java:33) ~[?:?]
at org.bukkit.craftbukkit.v1_7_R4.scheduler.CraftTask.run(CraftTask.java:71) ~[spigot-1.7.10-R0.1-SNAPSHOT_1641.jar:git-Spigot-1641]
at org.bukkit.craftbukkit.v1_7_R4.scheduler.CraftScheduler.mainThreadHeartbeat(CraftScheduler.java:350) [spigot-1.7.10-R0.1-SNAPSHOT_1641.jar:git-Spigot-1641]
at net.minecraft.server.v1_7_R4.MinecraftServer.v(MinecraftServer.java:641) [spigot-1.7.10-R0.1-SNAPSHOT_1641.jar:git-Spigot-1641]
at net.minecraft.server.v1_7_R4.DedicatedServer.v(DedicatedServer.java:289) [spigot-1.7.10-R0.1-SNAPSHOT_1641.jar:git-Spigot-1641]
at net.minecraft.server.v1_7_R4.MinecraftServer.u(MinecraftServer.java:584) [spigot-1.7.10-R0.1-SNAPSHOT_1641.jar:git-Spigot-1641]
at net.minecraft.server.v1_7_R4.MinecraftServer.run(MinecraftServer.java:490) [spigot-1.7.10-R0.1-SNAPSHOT_1641.jar:git-Spigot-1641]
at net.minecraft.server.v1_7_R4.ThreadServerApplication.run(SourceFile:628) [spigot-1.7.10-R0.1-SNAPSHOT_1641.jar:git-Spigot-1641]

DBチューニング

ByDWqxMCMAA-wNQ

サーバがなんか重い気がするので原因の一つと思われるDBのチューニングをしてみた。
状態変数の確かOpened tablesか何かだったと思うけど多かったので、table_cacheを上げてみた。この値はオンラインでは変えられないっぽいので、6時の再起動で反映。

Opened tables 450 ⇒ 1800

結果、スロウクエリーが無くなりましたね。Opened tablesは未だ多いけど。

あと、query_cache_limitとかquery_cache_sizeとかもいじったんだっけ?

プラグインHorseTools

プラグイン:HorseTools_v7.jar
サーバ:spigot-1.7.10-R0.1-SNAPSHOT_1641.jar
問題無し。まぁ、機能的には大したことをしてなく、馬を殺されないように保護するだけ。
2014/9/20にAvalonへテスト導入済み。

HorseKeepの方が馬をしまえたりとかポケモンちっくなことができるけど、アイテムロストのバグがあった気がしたので断念。

プラグインCitizens

プラグイン:Citizens_2.0.13.jar
サーバ:spigot-1.7.10-R0.1-SNAPSHOT_1641.jar
エラーで動きませんでした・・・サイトに説明が書いてない気がしたけど、どうもTownyと連動してくれてるらしいが、Towny側でエラーになっちゃう系。
Towny側はTowny_v0.88.0.0.jar

[12:08:21] [Server thread/WARN]: [Towny] Task #56 for Towny v0.88.0.0_(1.7.2) generated an exception
java.lang.NoClassDefFoundError: net/citizensnpcs/api/CitizensAPI
at com.palmergames.bukkit.towny.tasks.MobRemovalTimerTask.run(MobRemovalTimerTask.java:119) ~[?:?]
at org.bukkit.craftbukkit.v1_7_R4.scheduler.CraftTask.run(CraftTask.java:71) ~[spigot-1.7.10-R0.1-SNAPSHOT_1641.jar:git-Spigot-1641]
at org.bukkit.craftbukkit.v1_7_R4.scheduler.CraftScheduler.mainThreadHeartbeat(CraftScheduler.java:350) [spigot-1.7.10-R0.1-SNAPSHOT_1641.jar:git-Spigot-1641]
at net.minecraft.server.v1_7_R4.MinecraftServer.v(MinecraftServer.java:641) [spigot-1.7.10-R0.1-SNAPSHOT_1641.jar:git-Spigot-1641]
at net.minecraft.server.v1_7_R4.DedicatedServer.v(DedicatedServer.java:289) [spigot-1.7.10-R0.1-SNAPSHOT_1641.jar:git-Spigot-1641]
at net.minecraft.server.v1_7_R4.MinecraftServer.u(MinecraftServer.java:584) [spigot-1.7.10-R0.1-SNAPSHOT_1641.jar:git-Spigot-1641]
at net.minecraft.server.v1_7_R4.MinecraftServer.run(MinecraftServer.java:490) [spigot-1.7.10-R0.1-SNAPSHOT_1641.jar:git-Spigot-1641]
at net.minecraft.server.v1_7_R4.ThreadServerApplication.run(SourceFile:628) [spigot-1.7.10-R0.1-SNAPSHOT_1641.jar:git-Spigot-1641]
Caused by: java.lang.ClassNotFoundException: net.citizensnpcs.api.CitizensAPI
at java.net.URLClassLoader$1.run(URLClassLoader.java:366) ~[?:1.7.0_65]
at java.net.URLClassLoader$1.run(URLClassLoader.java:355) ~[?:1.7.0_65]
at java.security.AccessController.doPrivileged(Native Method) ~[?:1.7.0_65]
at java.net.URLClassLoader.findClass(URLClassLoader.java:354) ~[?:1.7.0_65]
at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:101) ~[spigot-1.7.10-R0.1-SNAPSHOT_1641.jar:git-Spigot-1641]
at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:86) ~[spigot-1.7.10-R0.1-SNAPSHOT_1641.jar:git-Spigot-1641]
at java.lang.ClassLoader.loadClass(ClassLoader.java:425) ~[?:1.7.0_65]
at java.lang.ClassLoader.loadClass(ClassLoader.java:358) ~[?:1.7.0_65]
… 8 more

5 / 512345