▶️ ЗАБЕРИ СВОИ 8 ПОДАРКОВ 🎁 ПРИ СОЗДАНИИ СВОЕГО МАЙНКРАФТ СЕРВЕРА
Плагины/EmakiCooking | Seven World Stations for Immersive Cooking
EmakiCooking | Seven World Stations for Immersive Cooking

EmakiCooking | Seven World Stations for Immersive Cooking

Cutting board, wok, grinder, steamer, oven, juicer, fermenter — each station with unique interactions and recipe logic.

Оцените первым
791
12

EmakiCooking brings immersive cooking gameplay to your server. Seven different world stations each feature unique interaction methods and recipe structures. Players interact directly with blocks in the world to complete cooking processes. Floating display entities visualize the cooking progress, heat source blocks auto-ignite for atmosphere, and station states persist through server restarts.

Core Features

Seven World Stations

Cutting Board (CHOPPING_BOARD)

Used to slice raw materials into intermediates. Default block: Oak Log (customizable).

  • Interaction: Shift+left-click to place ingredient, shift+left-click with knife to cut, right-click to retrieve
  • Cut count: Each recipe defines cuts_required — player must click that many times
  • Tool durability: Each cut consumes tool_damage durability from the held tool
  • Cut injury: Configurable chance to damage the player (default 10% chance, 2 damage)
  • Multiple outputs: result.outputs supports a list for multi-product recipes
  • Interaction cooldown: interaction_delay_ms prevents spam-clicking (default 1000ms)

Wok (WOK)

The most complex interactive station — players must stir-fry ingredients in the correct order. Default block: Iron Block.

  • Heat levels: Determined by the block below the wok (Campfire=1, Magma Block=2, Lava=3, customizable)
  • Ingredient input: Shift+left-click to add ingredients one by one, each with its own stir_rule
  • Stir rules: Hold spatula and shift+left-click to stir; recipe defines stir_total (min-max range) and fault_tolerance
  • Timeout: timeout_ms (default 30s) — exceeding this treats the dish as overcooked
  • Four result branches: success, undercooked, overcooked, invalid
  • Global failure chance: failure.chance (default 5%) produces a failure item regardless of recipe
  • Scald damage: scald_damage can hurt the player during cooking
  • Bowl requirement: need_bowl can require holding a bowl to serve
  • Stir cooldown: stir_delay_ms minimum interval between stirs (default 5000ms)

Grinder (GRINDER)

Automated time-based station that grinds materials. Default block: Grindstone.

  • Interaction: Shift+left-click to insert material and start grinding
  • Grind time: grind_time_seconds per recipe
  • Auto output: Products drop automatically when complete
  • Background polling: Plugin checks progress every check_delay_ticks (default 20 ticks)
  • Multiple outputs: result.outputs supports multiple product types

Steamer (STEAMER)

Fuel-driven station with GUI, requiring both fuel and moisture management. Default block: Barrel.

  • GUI interface: Shift+right-click to open, place ingredients inside
  • Fuel system: Right-click to add fuel (sticks=5s, coal/charcoal=80s)
  • Moisture system: Right-click to add water (water bucket=+120, potion=+40)
  • Steam efficiency: steam_production_efficiency, steam_conversion_efficiency, and steam_consumption_efficiency control the steam cycle
  • Recipe requirement: required_steam defines steam needed to complete
  • Progress reset: When reset_progress_when_steam_empty is true, running out of steam resets all progress
  • Heat source block below required (furnace, smoker, blast furnace); auto-ignites when fuel is added

Oven (OVEN)

Temperature-sensitive station where players must maintain heat within range. Default block: Smoker.

  • GUI interface: Shift+right-click to open, place ingredients inside
  • Temperature control: Heat must stay between heat.min (20) and heat.max (80) to progress baking
  • Heat decay: Temperature drops by decay_per_second (default 5) each second
  • Fuel: Shift+left-click to add fuel, increasing both burn time and heat value (coal: +80s, +35 heat)
  • Perfect zone: Recipe defines perfect_heat range; maintaining perfect_required_ratio time in zone yields perfect result
  • Three outcomes: perfect bake, normal bake, burnt (after overbake_seconds)
  • Inspect: Shift+left-click to check current temperature and progress

Juicer (JUICER)

Press-based station with fluid accumulation mode. Default block: Cauldron.

  • GUI interface: Shift+right-click to open, place fruit inside
  • Pressing: Shift+left-click to press; presses_required per recipe
  • Fluid mode: Each press produces fluid.amount_ml of liquid, stored internally (max max_fluid_ml, default 1000ml)
  • Container collection: When require_container is true, hold a container (glass bottle) to collect serving_ml (default 250ml) per use
  • Direct output mode: When require_container is false, product drops directly
  • Strict input: only_recipe_items restricts input to recipe-matching items only

Fermentation Barrel (FERMENTATION_BARREL)

Long-duration station with early collection and over-fermentation mechanics. Default block: Barrel.

  • GUI interface: Shift+right-click to open, place ingredients inside
  • Start fermentation: Shift+left-click to seal and begin; require_sealed must be true
  • Fermentation time: fermentation_time_seconds for normal completion
  • Early collection (partial product): After reaching early_collect.min_progress_ratio (e.g. 50%), collect a partial product
  • Normal completion: Collect at the right time for the intended product
  • Over-fermentation (degraded product): After over_time_seconds, product degrades (e.g. wine becomes vinegar)
  • Progress persistence: Fermentation continues through server restarts using real-time calculation
  • Pause on open: pause_when_open pauses progress while GUI is open

Floating Display Entity System

Ingredients display as floating entities above stations, giving players visual feedback on what's being cooked.

  • Three backend modes:
    • auto (recommended): Uses PacketEvents virtual entities when available, falls back to Bukkit
    • packet_events: Forces PacketEvents mode, falls back to Bukkit on failure
    • bukkit: Always uses real Bukkit ItemDisplay entities
  • PacketEvents advantage: Virtual entities don't count toward server entity limits, no collision overhead
  • Bukkit advantage: No extra dependencies needed, better compatibility
  • View distance: view_distance_blocks (default 48) controls how far players can see display entities
  • Refresh interval: refresh_interval_ticks (default 20) controls update frequency
  • Wok layout: wok.layout_radius controls circular arrangement of multiple ingredients

Heat Source Block Ignition

Stations requiring heat (wok, steamer) automatically manage heat source block states:

  • Enable via ignite_heat_source: true in station config
  • Auto-ignites the block below when cooking starts, restores original state when cooking ends
  • Works with vanilla blocks that have a lit state (campfire, furnace, smoker, blast furnace)
  • Supports custom blocks from CraftEngine, ItemsAdder, and Nexo via lit_item_sources mapping:
    • CraftEngine: item_sources: [craftengine-emaki:heater] + lit_item_sources: [craftengine-emaki:heater_lit]
    • ItemsAdder: item_sources: [itemsadder-emaki:heater] + lit_item_sources: [itemsadder-emaki:heater_lit]
    • Nexo: item_sources: [nexo-heater] + lit_item_sources: [nexo-heater_lit]
  • Allows resource pack creators to build custom stoves with fire on/off visuals

Item Display Adjustments

Fine-tune how items appear above stations via display_adjustments:

  • Global defaults: defaults.item and defaults.block control item-type and block-type display entities
    • offset: X/Y/Z position (Y controls hover height; item default 1.02, block default 1.125)
    • rotation: X/Y/Z angles (item default X=90 for flat display; supports range syntax like "0.0-90.0")
    • scale: X/Y/Z scale factors (item default 0.5, block default 0.25)
  • Per-station overrides: station_defaults allows different display params per station type
  • All values hot-reloadable — no server restart needed

Station State Persistence

Station states fully preserved through server restarts:

  • Storage: Station data saved in plugins/EmakiCooking/data/
  • Auto-load: All station states restored on startup, including in-progress items and progress
  • Fermentation: Uses real-time calculation — offline time counts toward fermentation
  • Invalid cleanup: Stations with broken/missing blocks are automatically cleaned up
  • Display recovery: Display entities regenerate when players enter view range

Recipe System

Recipes are YAML files in plugins/EmakiCooking/recipes/<station_type>/:

  • Common fields:
    • id: Unique recipe identifier (required); filename serves as ID
    • display_name: Display name for messages
    • permission: Permission node required to use this recipe (optional)
    • result.actions: Action list executed on completion (send messages, run commands, give XP, etc.)
  • Item source formats: minecraft-item, craftengine-ns:item, itemsadder-ns:item, nexo-item
  • Supports multiple inputs and outputs
  • Hot-reloadable via /ec reload
  • Strict mode: only_recipe_items restricts input to recipe-matching items only

Commands

CommandDescription
/ec helpDisplay help information
/ec reloadReload config, language files, and all recipes
/ec inspect handInspect the held item's CoreLib source identifier (debug)

Aliases: /ecooking and /ec both work.

Permissions

PermissionDefaultDescription
emakicooking.useallUse basic commands
emakicooking.reloadopReload configuration
emakicooking.inspectopInspect item sources
emakicooking.adminopFull admin access (includes all above)
emakicooking.station.chopping_board.useallUse cutting board
emakicooking.station.chopping_board.cutallCut on board
emakicooking.station.wok.useallUse wok
emakicooking.station.wok.stirallStir ingredients
emakicooking.station.wok.serveallServe from wok
emakicooking.station.grinder.useallUse grinder
emakicooking.station.steamer.useallUse steamer
emakicooking.station.steamer.fuelallAdd steamer fuel
emakicooking.station.steamer.moistureallAdd steamer moisture
emakicooking.station.oven.useallUse oven
emakicooking.station.oven.fuelallAdd oven fuel
emakicooking.station.juicer.useallUse juicer
emakicooking.station.juicer.pressallPress juice
emakicooking.station.juicer.collectallCollect juice
emakicooking.station.fermentation_barrel.useallUse fermenter
emakicooking.station.fermentation_barrel.startallStart fermentation
emakicooking.station.fermentation_barrel.collectallCollect fermented product

Recipes can also define per-recipe permissions (e.g. emakicooking.recipe.apple_cider).

PAPI Placeholders

Requires PlaceholderAPI as a soft dependency. Prefix: %emakicooking_<placeholder>%.

PlaceholderDescription
recipe_countTotal recipe count across all stations
recipe_count_chopping_boardCutting board recipe count
recipe_count_wokWok recipe count
recipe_count_grinderGrinder recipe count
recipe_count_steamerSteamer recipe count
recipe_count_ovenOven recipe count
recipe_count_juicerJuicer recipe count
recipe_count_fermentation_barrelFermenter recipe count

Ideal For

  • RPG / Survival servers — immersive life-skill gameplay beyond combat
  • Custom item servers — pairs with CraftEngine, ItemsAdder, or Nexo for full food production chains
  • Economy servers — cooking outputs as tradeable goods add economic depth
  • Casual community servers — fun cooking interactions for all player types

Requirements

ItemRequirement
ServerSpigot / Paper 1.21+
Java21+
Hard DependenciesEmakiCoreLib
Soft DependenciesPacketEvents (virtual display entities), PlaceholderAPI (placeholders), CraftEngine / ItemsAdder / Nexo (custom block & item support)

View Full Wiki Documentation | Join Discord Community | QQ Group

Часто задаваемые вопросы

Совместимость

Minecraft: Java Edition

1.21.x1.20.x

Платформы

Поддерживаемые окружения

Сервер

Зависимости

Ссылки

Создатели

Детали

Лицензия:
Опубликован:9 месяцев назад
Обновлён:1 неделю назад
Главная