タイトル通りです。
NBTに登録してもいいですし、イベントハンドラの使用を行っても問題ないので、この条件に沿ったソースコードを書いてくれませんか?
・特定のディメンションで、「isChaosAgeLosting」のNBT/変数がfalseのもの、もしくはそのNBT/変数が存在しないすべてのアイテム(他Mod追加含む)をインベントリから削除してから除外する
【特定のディメンションについて】
主にネザー。ただダイヤモンド装備やクアンタムなどで固めて入っていき、無双することができる状態を防ぎたいからです。
【特定のディメンションでロストしないバニラアイテム】
ありません。
【特定のディメンションでロストしない他Mod装備】
ありません。状況次第では(GregTech 5 Unofficial導入時)クアンタムをロストすることになります。
【Minecraft 1.7.10 Forge】特定のアイテム属性を持っていないアイテムを死亡時にドロップさせずに削除したい
-
- ID: 35D5I4WA9G
- 記事: 2
- 登録日時: 2019年11月26日(火) 14:57
- Minecraft ID: ho9tocraft
- おがさくら
- ID: 2B6LCHA53W
- 記事: 15
- 登録日時: 2021年10月06日(水) 20:18
- お住まい: あいち
- Minecraft ID: ogasakura
- いいねされた回数: 2回
- 連絡する:
Re: 【Minecraft 1.7.10 Forge】特定のアイテム属性を持っていないアイテムを死亡時にドロップさせずに削除したい
コード: 全て選択
@SubscribeEvent
public void LostItem(PlayerDropsEvent event) {
//プレイヤーのバイオームIDが-1(ネザー)でなければ何もしない
if(event.entityPlayer.worldObj.provider.dimensionId!=-1)
return;
//event.dropsで死亡時にドロップするEntityItemのリストを取得
for(EntityItem entity:event.drops) {
//EntityItemからItemStackを取得
ItemStack stack=entity.getEntityItem();
//スタックのnullチェックとNBTタグ所持チェック
if(stack!=null){
if(!stack.hasTagCompound()) { //NBTタグがなければロスト
//ドロップアイテムを死亡判定にする(=消滅する)
entity.setDead();
//以降はカット
continue;
}
//NBT取得
NBTTagCompound nbt=stack.getTagCompound();
//所望のNBTタグを調べ、条件に合うかを判定
if(!nbt.hasKey("isChaosAgeLosting")||!nbt.getBoolean("isChaosAgeLosting")){
entity.setDead();
}
}
}
}
テストにてネザーで死亡した際、指定NBTタグが付いており値がtrueのものだけドロップしていることを確認済み
他Modのアイテムは試してないけどEntityItemとしてドロップすればちゃんとロストするかと
0
桜と月をこよなく愛する自称プログラマ&イラストレータ
1.2.5&1.7.10マイクラModder・クラフター
Twitterで進捗をたまにつぶやいてる
要望や感想、バグ報告はTwitterかDiscordのDMもしくはこのフォーラムのPMまで
Modを使うときはこれを読んでください↓
https://docs.google.com/document/d/18oV ... sp=sharing
1.2.5&1.7.10マイクラModder・クラフター
Twitterで進捗をたまにつぶやいてる
要望や感想、バグ報告はTwitterかDiscordのDMもしくはこのフォーラムのPMまで
Modを使うときはこれを読んでください↓
https://docs.google.com/document/d/18oV ... sp=sharing