Skip to Content
MoripaFishing
config.json

気候

注意

この設定は config.json 及び world/<fishing_world_name>.json の一部であり、独立したファイルではありません。 config.json では world.defaultClimate、ワールドごとの JSON では climate がこの設定に対応します。 ワールド側の climate が null の場合は、config.json の world.defaultClimate が使われます。

気候の設定は、天候の決め方 (weather) と時刻の決め方 (time) からなります。 Core は設定に従って値を 決める だけで、Bukkit ワールドへの 適用 は Integration が行います (天候は Weather、時刻は WorldLifecycle)。 Integration が未導入でも、決めた天候は魚の抽選条件に使われます。

Format

{
    "weather": {
        "type": "random",
        "weights": {
            "SUNNY": 4,
            "CLOUDY": 1,
            "RAINY": 2,
            "THUNDERSTORM": 1
        },
        "intervalHours": 8,
        "offsetHours": 0,
        "maxInclination": 30,
        "seed": "pepper"
    },
    "time": {
        "type": "real_time",
        "offsetHours": 0
    }
}

weather と time は、type で種類を選びます。各項目を省略した場合は上の既定値になります。

weather

天候の決め方です。

random

内蔵の天候カレンダーで天候を決め、ワールドへ適用させます (既定)。 同じ設定・ワールド ID・時刻からは常に同じ天候が決まります。計算の詳細は 天候ノイズ を参照してください。

{ "type": "random", "weights": { "SUNNY": 4, "CLOUDY": 1, "RAINY": 2, "THUNDERSTORM": 1 },
  "intervalHours": 8, "offsetHours": 0, "maxInclination": 30, "seed": "pepper" }
  • weights: 各天候の出現しやすさを 0 以上の整数の重みで指定します。合計で正規化され、JSON に書いた順に累積して判定します。空にすることや、合計を 0 にすることはできません
  • intervalHours: 天候が切り替わる間隔 (時間)。1 以上 (既定: 8)
  • offsetHours: 切り替わりのタイミングをずらす時間。負の値も指定できます (既定: 0)
  • maxInclination: 天候の変化の急さ。1..100 (既定: 30)。大きいほど天候が急に変わります
  • seed: ノイズのハッシュに混ぜる文字列 (既定: pepper)。変えると天候の並び全体が変わります

WeatherType には SUNNY / CLOUDY / RAINY / THUNDERSTORM / SNOWY / FOGGY の 6 種類があります。既定の weights には SNOWY と FOGGY が含まれていませんが、weights に追加すれば抽選の対象になります。

fixed

常に同じ天候にし、ワールドへ適用させます。

{ "type": "fixed", "weather": "RAINY" }

vanilla

バニラの天候 (hasStorm / isThundering) を読み取り、魚の抽選条件にのみ使います。ワールドの天候は変更させず、ADVANCE_WEATHER は true になります。

{ "type": "vanilla" }

バニラの天候は SUNNY / RAINY / THUNDERSTORM の 3 種類しか表せないため、CLOUDY / FOGGY / SNOWY を条件に持つ魚は出現しません。 ワールドが未ロードの間は SUNNY として扱います。

external

外部プラグインが ServicesManager に登録した WeatherSource のうち、key が source と一致するものに天候を任せます。

{ "type": "external", "source": "myplugin:realistic" }

ソースの appliesToWorld が true なら、その天候をワールドへ適用させます。false なら魚の抽選条件にのみ使い、ワールドの天候は変更させません。 一致するソースが登録されていない間は、random の既定値で天候を決め、警告を一度だけ出します。ソースの登録方法は API ガイド を参照してください。

魚の天候とワールドへの適用

weather.type魚の抽選条件に使う天候WorldState.weather (ワールドへ適用)ADVANCE_WEATHER
random天候カレンダー天候カレンダーと同じfalse
fixedweather の値weather の値false
vanillaバニラの天候null (変更しない)true
external (appliesToWorld = true)ソースの天候ソースの天候false
external (appliesToWorld = false)ソースの天候null (変更しない)true
external (ソース未登録)天候カレンダー (random の既定値)天候カレンダーと同じfalse

天候は見た目の天候と同じ値を魚の条件にも使うのが基本です。魚の条件だけを内蔵カレンダーで決め、見た目はバニラや別のプラグインに任せたい場合は、 Weather Integration を導入しないでください。

魚の抽選条件に使う天候が変わると FishingWorldWeatherChangeEvent が発火します。変化はリフレッシュ間隔 (refreshIntervalSeconds) ごとに検知されます。

time

時刻の決め方です。時刻と ADVANCE_TIME を Bukkit ワールドへ適用するのは WorldLifecycle Integration です。

time.type例ワールド時刻ADVANCE_TIME
real_time{"type":"real_time","offsetHours":0}config.json の world.timeZone の現在時刻に offsetHours を足した時刻 (既定)false
fixed{"type":"fixed","hour":6}hour 時 (0..23) に固定false
vanilla{"type":"vanilla"}変更しないtrue

ワールド時刻は「0 時 = 18000 tick、6 時 = 0 tick」として換算し、分は 1 分あたり 1000 / 60 tick で反映します。 offsetHours は負の値も指定でき、日をまたぐ場合は 0〜23999 tick に折り返します。

設定はリフレッシュのたびに評価されます。/mf reload を実行すると、その場で全ワールドがリフレッシュされて反映されます。

On this page