耕して湿った土が乾くのを防ぎたい

どのイベントを使えばいいのかわからない!
on entity change block:
if event-block is wet farmland or soil block:
cancel event

on block trample:
if event-block is wet farmland or soil block:
cancel event

on spread:
message "%event-block% spread." to console
cancel event

on form:
message "%event-block% formed." to console
cancel event

on fade:
message "%event-block% faded." to console
cancel event
on entity change block:
if event-block is wet farmland or soil block:
cancel event

on block trample:
if event-block is wet farmland or soil block:
cancel event

on spread:
message "%event-block% spread." to console
cancel event

on form:
message "%event-block% formed." to console
cancel event

on fade:
message "%event-block% faded." to console
cancel event
これらを試しました 他にプラグインとかで対応できたらそれでもいいです でもできればskriptがいいです
Solution:
```on block physics: if event-block is farmland: set {_blockState} to blockstate of event-block set {_blockData} to blockstate blockdata of {_blockState} set block data tag "moisture" of {_blockData} to 7...
Jump to solution
18 Replies
KabiPan
KabiPan5mo ago
SKRIPTはあんましよくわからんけど プラグインでタイサクすることはできる
public class MoistureListener implements Listener {
//耕地の水分レベルが変化するときに呼ばれる
@EventHandler
public void onMoistureChange(MoistureChangeEvent e) {
//耕地のインターフェイスにキャスト
Farmland newEventBlockData = (Farmland)e.getNewState().getBlockData();

//耕地が湿る以外のイベントをキャンセル
if(newEventBlockData.getMoisture() != newEventBlockData.getMaximumMoisture()) {
e.setCancelled(true);
}
}
}
public class MoistureListener implements Listener {
//耕地の水分レベルが変化するときに呼ばれる
@EventHandler
public void onMoistureChange(MoistureChangeEvent e) {
//耕地のインターフェイスにキャスト
Farmland newEventBlockData = (Farmland)e.getNewState().getBlockData();

//耕地が湿る以外のイベントをキャンセル
if(newEventBlockData.getMoisture() != newEventBlockData.getMaximumMoisture()) {
e.setCancelled(true);
}
}
}
これだけでばっちぐー 乾いた状態から湿らせることはできるけど 湿った状態から一切乾かなくなります
mirageeeeeeeeeeeeeeeeeeeeeeeeeee
Skript Hub - Documentation
Moisture Change (Event) - Pesk
Called when the moisture level of a soil block changes.
KabiPan
KabiPan5mo ago
あるやん じゃあこれと同じ処理をskでして、おしまい!
tanoKun
tanoKun5mo ago
そうなんあったんか entityChangeBloxk使ってたわ
sisoaz
sisoaz5mo ago
アドオン使いたくない場合は?
tanoKun
tanoKun5mo ago
@EventHandler
fun onBlock(e: BlockFadeEvent) {
if (e.block.type.toString().contains("CORAL") || e.block.type.toString().contains("FARMLAND")) e.isCancelled = true
}
@EventHandler
fun onBlock(e: BlockFadeEvent) {
if (e.block.type.toString().contains("CORAL") || e.block.type.toString().contains("FARMLAND")) e.isCancelled = true
}
on fade: かな
KabiPan
KabiPan5mo ago
BlockFadeEventはキャンセルしても 湿った耕地が乾くのはできないんじゃない 土になるのは防げるけど
tanoKun
tanoKun5mo ago
イケルで
KabiPan
KabiPan5mo ago
まじ? なんか1.19のspigotのapiでそれキャンセルしても わしの環境やとそうなってまう why
tanoKun
tanoKun5mo ago
あ乾くってそういうこと ちょっとまってね
KabiPan
KabiPan5mo ago
そう 湿った耕地→乾いた耕地→土 まあシソが求めるのがタイトル通りなら 湿った状態を維持したいんじゃないかなって このスレの一番上のスクリプトでもon fadeキャンセルしてるし
tanoKun
tanoKun5mo ago
@EventHandler
fun test(e: BlockPhysicsEvent) {
if (e.block.type != Material.FARMLAND) return
val data = e.block.blockData as Farmland
println(data.moisture)
}
@EventHandler
fun test(e: BlockPhysicsEvent) {
if (e.block.type != Material.FARMLAND) return
val data = e.block.blockData as Farmland
println(data.moisture)
}
あったで
KabiPan
KabiPan5mo ago
まぁそうなるか んでアドオン使いたくないって言ってるけど skript単体だけでやらないといけないのか prにあるアドオンなら使っていいのか
tanoKun
tanoKun5mo ago
ないんかこのイベント skriptに
on block physics:
block is sand
cancel event
on block physics:
block is sand
cancel event
あこれかな
KabiPan
KabiPan5mo ago
見た目それっぽい あとblockdataをいじれるかな できた まあSKBEE使っていいなら 確かPRにもあったよね
Solution
KabiPan
KabiPan5mo ago
on block physics:
if event-block is farmland:
set {_blockState} to blockstate of event-block
set {_blockData} to blockstate blockdata of {_blockState}
set block data tag "moisture" of {_blockData} to 7
set event-block to {_blockData}
on block physics:
if event-block is farmland:
set {_blockState} to blockstate of event-block
set {_blockData} to blockstate blockdata of {_blockState}
set block data tag "moisture" of {_blockData} to 7
set event-block to {_blockData}
KabiPan
KabiPan5mo ago
こうすりゃ常に湿った状態になる まあ耕した時点でこれ呼ばれるから 水無くても即湿る もし水無くても耕した時点で湿るのが嫌なら
on block physics:
if event-block is farmland:
set {_blockState} to blockstate of event-block
set {_blockData} to blockstate blockdata of {_blockState}
set {_moisture} to block data tag "moisture" of {_blockData}
if {_moisture} = 6:
set block data tag "moisture" of {_blockData} to 7
set event-block to {_blockData}
on block physics:
if event-block is farmland:
set {_blockState} to blockstate of event-block
set {_blockData} to blockstate blockdata of {_blockState}
set {_moisture} to block data tag "moisture" of {_blockData}
if {_moisture} = 6:
set block data tag "moisture" of {_blockData} to 7
set event-block to {_blockData}
これ使えばok
sisoaz
sisoaz5mo ago
ありがとうございます!!!
Want results from more Discord servers?
Add your server
More Posts
プレイヤーの頭を設置する方法プレイヤーの頭を設置する方法ってありますか?できれば向いている方向も指定できると助かりますパーティクルをプレイヤーを中心とした円状に表示させる方法調べてもでてこない...............エンチャント本のエンチャント名とレベルを個別に取得したいエンチャント本のエンチャント名とレベルを個別にリスト型で取得しようとしたのですがサイト等を探しても見当たらなかったので方法があるなら教えていただきたいです string型に変換しsplitを使用して強トップのみ表示するランキングを作りたい{count.%player'suuid%} という変数に一番数字の入っているプレイヤーのIDと数字をメッセージとして送信したいのですが、どうしたらプレイヤーのIDと数字を同時にメッセージとして送信でアイテム入りリストをsortアイテムが入った`{_items::*}`において `set {_items::*} to sorted {_items::*}` してみたのですが、全く変化がありませんでした sk hub曰くpla殴ると4回追加攻撃が入るskみなさんならどう書くのかと思いました 詳細 ダメージを与えた時、30tickごとに10ダメージが入る。 例 1(素手)→10→10→10→10 発動中、もう一度同じ敵にダメージを与えてもダメージの重複チェストブロックに名前を付けられない``` set {_block} to block at {_loc} set {_inv} to {_block}'s inventory SkRageのEffClientSideEquipmentの使い方Skrage v2.4.5でEffClientSideEquipmentを使う方法を教えて下さい make player head {_p}'s helmet for all players これアイテムが入っているチェストをコピーできない{a}はアイテムが入っているチェストです /random2で{a}のチェストをコピーしようとしてますが、ブロックのみが置かれて、アイテムの中身が入っていません アイテムが入った状態のチェストをそのまま自作Ender Container、なぜかページが勝手に閉じるマルチ(max9)ページのエンダーチェストを作ったのですが なぜか開いてるページが勝手に閉じてしまいます。 closeなどを使っているわけでもないので、原因がわからず困ってます。 ほかのinvento