私は現在自作のプラグインにてWorldGuardの土地保護機能に似たものを作っています。その際にWorldGuardのソースコードを見てもわからなかったので質問したいのですが
土地保護機能はどのような仕組みなのでしょうか?
私が予想したのは一番下のコード(簡略)のように
エリアネームの入ったリストをforで回して各ワールド名、XYZを取得、
その大きい方と小さい方の各XYZにイベントに関連した座標が入っているかを確認という方法です。
ですが、この方式だとプレイヤーの侵入を知らせる時などには動いたプレイヤーがいるたびにforで回すためとても負荷がかかると考えています。
なのでどのような方法だと負荷がかからないのか、わかりませんでしょうか?
JAVA
1for (String AreaName : AreaNameList) { 2 world = Area.get(AreaName).getWorld().getName; 3 x = Area.get(AreaName).getX; 4 y = Area.get(AreaName).getY; 5 z = Area.get(AreaName).getZ; 6 // 同じ方法で保護範囲のもう片方の座標を取得しておく 7 if (イベントで関係した座標が保護範囲内なのかどうか(座標の各XYZが範囲内なのかをX <= X <= Xの形でチェック) { 8 // code 9 } 10}
追加1
・WorldGuardとはMinecraftのワールド保護機能を持ったプラグインです(荒らし対策など)
・土地保護機能とはワールド全体ではなく一部(選択した範囲)を保護する機能
・私がWorldGuardの土地保護機能だけを持ったプラグインを作っているのですが、そのソースコードを見てもどのようにイベントに関係した座標が保護範囲内に入っているのかを確認している方法がわかりませんでした。
私が予測したものだととても重たくなってしまうので、、、
ソースコード
回答2件
あなたの回答
tips
プレビュー