Healthy DietFEATURE GUIDE 日本語
04 / SHELF LIFE

設定から計算まで、食べ物の保存期間を理解する。

エディターの8つのサブページを順に確認し、基本時間、温度、劣化倍率、冷鮮、期限切れ処理を理解します。さらに、アイテムがインベントリを離れた後の計時、信頼、オフライン保護について説明します。

8つの独立サブページサーバー計算コンテナとマルチオフライン台帳
まず3つの数値を区別する:基本保存時間は設定であり、アイテムの現在温度と残り時間は実行状態です。サーバーのデータパックとプレイヤーが持つアイテムの実際の状態は異なる場合があります。

011回の計算で何が行われるか

まずアイテムレベルの基本時間があり、次にアイテムの環境に応じて温度と劣化速度が変わり、サーバーが残り時間を計算します。

基本時間を設定整数分で保存
環境が温度を変える自然 / 冷蔵庫 / 冷凍庫
倍率と冷鮮保護温度曲線 / ディメンション / 保存率
期限切れ処理消滅または産物に置換

温度曲線は劣化速度を調整し、「効果」サブページは食べたときの温度効果を調整します。両者は独立したリストで、ある効果を設定しても保存期間が自動的に変わることはありません。

ゲーム日と現実の日は異なる:エディターの1ゲーム日 = 20分、1日 = 1440分です。durationMinutes に保存するときは整数分にします。内蔵アイテムは設定クラスの10℃初期温度を上書きすることがあるため、クラスの既定値をすべての食べ物の初期温度と見なさないでください。
ソース根拠:ShelfDurationUnit、S2ShelfConfig、ShelfTemperatureCurve.effectiveRate。

02エディターの8つのサブ Tab

以下の8つのタブはゲーム内「保存期間」エディターの並びと同じです。項目を選ぶとフィールド、用途、紛らわしい境界を確認できます。Web ページから設定は保存できません。

01 / 時間と期限切れ動作

保存期間

新しいアイテムの基本保存時間と基本劣化倍率を設定します。単位ボタンは分、時間、日、ゲーム日で切り替わります。入力には小数を含められ、保存時に整数分へ換算されます。あるディメンションに倍率を設定しない場合、そのディメンションは1倍のままです。

編集可能項目作用
保存期間 / 基本劣化倍率開始時間と劣化速度の基準をそれぞれ決めます。倍率0は基本減少がゼロであることを意味します。
期限切れ産物 / 温度継承期限切れ時に指定アイテムへ置換します。minecraft:air は消滅を意味します。継承を有効にすると期限切れ瞬間の温度だけを産物に渡し、産物の保存期間は新しく計時されます。
期限切れコマンド所持者の手元でアイテムが期限切れになったとき、所持者をコンテキストとして実行します。空欄なら実行しません。コンテナ内やドロップアイテムの期限切れでは発動しません。
ディメンション劣化倍率ディメンションごとに ID で劣化倍率を設定します。たとえばネザーをメインワールドと変えられます。温度オフセットではありません。
ソース根拠:ItemConfigEditScreenV2.buildShelfEditor、S2ShelfConfig.durationMinutes、ShelfDimensionMultiplier。

03インベントリを離れた後の時間とマルチ保護

食べ物はプレイヤー、コンテナ、地面で異なる時計を使います。サーバーが計算を担当し、クライアントはサーバーが送った速度で表示するだけです。

2つの時計とサーバー権威

プレイヤーのインベントリ、装備スロット、オフハンド、カーソル上の食べ物はプレイヤーのオンラインプレイ時間で計算され、オフライン中は進みません。チェスト、冷蔵庫、その他のコンテナ、地面のドロップアイテム、設置されたブロック食品はワールド時間で計算され、サーバーが動いている限り進みます。クリエイティブインベントリと JEI 内の食べ物は計時されません。

腐敗、温度、冷鮮度はすべてサーバーが計算し、クライアントが見るのはサーバーが送ったスナップショットだけです。ツールチップの数値はサーバーが送った現在速度で毎秒進むためリアルタイムに見えますが、真の値は常にサーバーが基準です。クライアントを変更しても新鮮な食べ物を作ることはできません。ツールチップの文字と色もサーバーのスキームファイルが基準です。

受け渡し、ログイン、ディメンション変更で再同期

食べ物が受け渡されると、新しい持ち主が受け取った瞬間から計算を続けます。前の持ち主のオンライン時間が長かったからといって、受け取った瞬間に突然腐ることはありません。プレイヤーのログインやディメンション変更でも再同期され、オフライン期間の時間がインベントリ内アイテムに加算されることはありません。

インベントリと地面のドロップアイテムは約20秒ごとに更新されます。S を押すと即座に計算して最新値を確認できます。コンテナを開く、食べ始める、Tom ストレージ端末にアクセスするときも、次の周期を待たずにインベントリが更新されます。

誰がアイテムの持ち主か

保存期間が設定された食べ物はコンテナに入れた瞬間、入れたプレイヤーの持ち主マークが付きます。他のプレイヤーがチェストを開くと赤い枠が表示され、持ち出せません。地面に落ちた保護食品も拾えません。冷蔵庫や Tom ストレージ端末などのコンテナも同じルールです。

「コンテナに入れた」場合だけが対象です。野外の宝箱から半分持ち出しても、触っただけで残りが自分のものになるわけではなく、他のプレイヤーも公平に取得できます。逆に、一度もコンテナに入っていない食べ物には持ち主がいません。作ったばかり、拾ったばかりでずっと持ち歩いている食べ物は自由に渡せます。マークが付くとアイテムに追随し、自分のチェストからインベントリに戻しても自分のままです。

S を押して詳細を表示し、持ち主が自分でない場合、最下部に「アイテムの持ち主」行が追加されます。持ち主が異なる同じ種類の食べ物はスタックできず、2つの山に分かれ、マークが上書きされるのを防ぎます。

信頼リストと所有権の移転

/hdtrust で自分の保護アイテムの信頼リストを管理できます。OP は不要です:

コマンド作用
/hdtrust add <プレイヤー名>オンラインプレイヤーを現在のホワイトリストに追加し、相手はあなたの保護食品を正常に取得できます。
/hdtrust remove <プレイヤー名>現在のホワイトリストから外しますが「以前信頼した」履歴は保持します。相手が既に持ち出して未返却のアイテムは相手へ移転します。
/hdtrust forget <プレイヤー名>現在のホワイトリストと以前の信頼履歴を同時に消去し、以後は未信頼として扱います。
/hdtrust list現在のホワイトリストと以前の信頼リストを表示します。リスト内の名前をクリックすると削除または再信頼できます。

信頼は常に最初の持ち主を参照します。友人があなたの食べ物を持ち出して自分のチェストに入れても、持ち主はあなたのままで、転売のように洗浄されることはありません。自分から食べ物を捨てた場合は譲渡とみなされ、マークが消えます。友人があなたの食べ物を持ち出してから捨てた場合も同様に譲渡です。

死亡時のドロップは譲渡ではありません。元々持ち主のいない食べ物には死亡した瞬間にあなたのマークが付き、既にマークがあるものは元の持ち主を維持します。他人は拾えず、あなた自身と信頼した友人は拾え、リスポーン後に回収できます。サーバーで removeOwnerOnDeathDrop(PvP サーバー向け)が有効な場合、死亡ドロップは保護マークを強制消去し、誰でも拾えます。

凍結されたアイテム:一度も信頼されていないプレイヤーがパイプやコマンドなどで他人の保護食品を取得した場合、そのアイテムは凍結されます。保存期間は進まず、食べることも飲むこともできず、チェスト、かまど、クラフトグリッドにも入れられず、移転もできません。インベントリの場所を占めるだけで、所持者に通知します。サーバー管理者は ejectIllegalProtectedItems を有効にすると、そのようなアイテムを所持者の足元に直接ドロップできます。既定では無効で、信頼ファイルの異常時にまとめて誤処理するのを避けます。

全員オフラインの間、コンテナ内の食べ物は腐敗しない

保護食品の持ち主と現在のすべての信頼プレイヤーが全員オフラインの間、チェストや冷蔵庫などのコンテナ内の時間は腐敗に算入されません。リスト内に権限を持つプレイヤーが1人でもオンラインなら、通常どおり計算されます。

例:A が B を信頼しています。A が20:00にオフライン、B が22:00にオフライン、翌日08:00に A がログインしてチェストを開きます。20:00–22:00は B がまだオンラインなので通常どおり2時間計算されます。22:00–翌日08:00は2人ともオフラインなので、この10時間は1分も計算されません。

サーバーはオフライン台帳で「全員オフライン」の期間を記録します。チェストは元々開かれたときだけ計算されるため、誰かが戻って確認したときにまとめて差し引かれます。オフライン台帳は有効化後の期間だけを記録し、それ以前のオフライン時間は補填できません。地面に落ちた保護食品はこの保護を受けず、通常どおり腐敗します。

コンテナ、戦利品、ドロップアイテム

閉じたチェストは継続的にスキャンされません。食べ物は前回の計算時刻を記録しており、チェストを開いたときに前回の温度で中間期間を一括計算します。途中の天候変化は区間ごとに再計算されないため、継続シミュレーションと多少異なりますが、かなり近く、性能への負荷もほとんどありません。

チェストを開く、チェスト内のアイテムをクリックする、S を押すと即座に計算されます。まだ計時が始まっていないチェスト内の食べ物(コマンドや他 MOD が直接入れたもの、古いセーブで保存期間設定前に投入されたものなど)は、チェストを開いた瞬間または S を押した瞬間にマークが付き、計時が始まります。チェストが破壊されると、先に時間を合わせ、冷蔵庫状態を消去してからドロップするため、「地面に落ちたのにまだ冷蔵庫にいると思う」ことはありません。ホッパーやパイプがチェストに投入する場合も統合ルールに従い、重なったときは悪い方の割合で計算されます。

宝箱に生成された食べ物、モブがドロップした食べ物は生成された瞬間に保存期間マークが付き、ゼロから計時する新鮮な食べ物になります。メイドや Create などが収穫物を直接自分のインベントリに入れる場合も同様です。自分でクラフト、焼成、機械加工した食べ物は対象外で、初めてプレイヤーやコンテナに見られたときから計時が始まります。

地面のドロップアイテムは20秒単位の時間帯に整列され、同じ時間帯に落ちた同種の食べ物は保存期間データが完全に同じため、地面でもスタックできます。着地後の最初の短い期間は計算されず、誤差はプレイヤーに有利です。チャンクがアンロードされると計算されず、再読み込み時に中間時間が一括補填されます。

地面に置かれたケーキなどのブロック食品はワールド時間で計算されます。チャンク読み込み時に1回計算され、同じチャンクは3分間に1回だけ計算されます。FTB Chunks などの強制読み込みチャンクでは1分ごとに計算されます。腐ったケーキは消滅するか期限切れ産物をドロップします。既に腐ったケーキを置くとその場で期限切れ産物になります。未摂取のケーキは掘り起こすと元の保存期間を保持しますが、食べたケーキは回収できません。

Jade をインストールすると、クロスヘアを地面の食べ物に向けたとき HUD に保存期間行が追加され、時間は秒単位、割合は小数1桁まで表示されます。データは同じくサーバーから来ます。チェスト内と手持ちの食べ物は引き続きアイテムツールチップを参照します。

スタックと統合しきい値

条件既定しきい値
残り保存期間の差5分以内
アイテム温度差10℃以内
冷鮮度差20以内(0–100スケール)

3つの条件をすべて満たす場合のみ統合でき、統合後は悪い方で計算されます。新鮮な食べ物で傷んだものを「洗白」することはできません。しきい値は config/healthy_diet/server.json の shelfMerge セクションで調整できます。地面のドロップアイテムは保存期間データが完全に同じ場合のみスタックでき、保冷上限が異なる2つもスタックできません。

期限切れコマンドと産物

期限切れコマンドは、食べ物がプレイヤーの手元で腐ったとき、または既に腐ったケーキを一口食べたときだけ実行されます。コンテナ内や地面で自然に腐った場合は実行されません。期限切れ産物は完全に新しいアイテムで、元の NBT を引き継がず、数量は保持されます。収まらない場合はインベントリに戻り、インベントリも満杯なら地面にドロップします。

ソース根拠:S2Engine、S2Handler、S2OfflineLedger、S2StackMerge、TrustManager、HDTrustCommand、PlacedFoodRefresh。
次に表示を理解する通常のアイテムツールチップと S 詳細の保存期間行は、ツールチップのレイアウトと表示ルールで制御されます。
ツールチップを見る →