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

どのイベントを使えばいいのかわからない!
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
KabiPan10mo 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
KabiPan10mo ago
あるやん じゃあこれと同じ処理をskでして、おしまい!
tanoKun
tanoKun10mo ago
そうなんあったんか entityChangeBloxk使ってたわ
sisoaz
sisoazOP10mo ago
アドオン使いたくない場合は?
tanoKun
tanoKun10mo 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
KabiPan10mo ago
BlockFadeEventはキャンセルしても 湿った耕地が乾くのはできないんじゃない 土になるのは防げるけど
tanoKun
tanoKun10mo ago
イケルで
KabiPan
KabiPan10mo ago
まじ? なんか1.19のspigotのapiでそれキャンセルしても わしの環境やとそうなってまう why
tanoKun
tanoKun10mo ago
あ乾くってそういうこと ちょっとまってね
KabiPan
KabiPan10mo ago
そう 湿った耕地→乾いた耕地→土 まあシソが求めるのがタイトル通りなら 湿った状態を維持したいんじゃないかなって このスレの一番上のスクリプトでもon fadeキャンセルしてるし
tanoKun
tanoKun10mo 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
KabiPan10mo ago
まぁそうなるか んでアドオン使いたくないって言ってるけど skript単体だけでやらないといけないのか prにあるアドオンなら使っていいのか
tanoKun
tanoKun10mo ago
ないんかこのイベント skriptに
on block physics:
block is sand
cancel event
on block physics:
block is sand
cancel event
あこれかな
KabiPan
KabiPan10mo ago
見た目それっぽい あとblockdataをいじれるかな できた まあSKBEE使っていいなら 確かPRにもあったよね
Solution
KabiPan
KabiPan10mo 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
KabiPan10mo 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
sisoazOP10mo ago
ありがとうございます!!!
Want results from more Discord servers?
Add your server