Farmstead Mods
EN

Все команды

274 команд: синтаксис, алиасы, право доступа и описание.

Таблица собирается из регистраций команд в исходниках при каждой сборке сайта, поэтому колонка «Право» показывает узел, который мод проверяет на самом деле. Синтаксис и примечания — выверенная вручную часть.

КомандаСинтаксисАлиасыПравоОписание
/?/? | /? <page_or_command>—neoessentials.? по соглашениюShow available commands (alias)Алиас /help: тот же requires (neoessentials.help, консоль проходит), тот же executeHelp. Нет ветки <command> <page>. В каталоге узел выведен как neoessentials.? — это соглашение реестра, проверка идёт по neoessentials.help.
/ac/ac <message>—neoessentials.helpopRequest help from staff (alias)Алиас /helpop (HelpopCommand), не переключатель канала. Канал staff в поставке — /staff.
/afk/afk [<message>]—neoessentials.afk по соглашениюToggle AFK statusТолько игрок. Право neoessentials.afk проверяется внутри executes, не в requires. <message> — greedyString, уходит в рассылку как причина. Без аргумента причина null. Команда молча отказывается, если выключен чат-модуль (isChatEnabled), commands.afk или устаревший ChatManager.isAfkEnabled(). В excludedCommands по умолчанию есть afk — сам /afk таймер бездействия не сбрасывает.
/ah/ah | /ah sell <price> | /ah selling | /ah expired | /ah reload | /ah helpauctionhouseneoessentials.ahAuction House — buy and sell itemsАлиас auctionhouse регистрируется только если в commands включены и ah, и auctionhouse. Корень требует neoessentials.ah (консоль проходит). sell дополнительно neoessentials.ah.sell и игрока; selling/expired — игрока. reload — neoessentials.ah.reload. Цена sell — DoubleArgumentType от 0.01. Весь стек из основной руки уходит в лот одним вызовом.
/amsg/amsg <message>—neoessentials.helpopRequest help from staff (alias)Алиас /helpop, не приватное сообщение и не канал.
/announce/announce <message>—neoessentials.broadcastBroadcast a message (alias)Алиас /broadcast, право neoessentials.broadcast.
/antioch/antioch [flavour]—neoessentials.antioch по соглашениюSpawn lit TNT at your look target ( easter egg)Только игрок. Луж 20 блоков, PrimedTnt fuse 80. Любой greedy-аргумент включает две строки Holy Hand Grenade на весь сервер, TNT всё равно спавнится. Право neoessentials.antioch.
/anvil/anvil—neoessentials.anvil по соглашениюOpen portable anvilТолько игрок (консоль — player_only). Виртуальное меню stillValid=true, физического блока нет. Корневой .requires — instanceof ServerPlayer. Право neoessentials.anvil проверяется PermissionValidator (консоль с OP 2 сюда всё равно не попадёт из-за requires). XP за ремонт списывается как у обычной наковальни.
/apikey/apikey <create <label> [role] | list | revoke <id>>—neoessentials.dashboard.apikeysManage long-lived API keys for external dashboard integrationsКорень требует neoessentials.dashboard.apikeys (validatePermission). Голый /apikey неполный — .executes на корне нет. <label> и <id> — word. [role] по умолчанию ADMIN; автодополнение: ADMIN, OPERATOR, MODERATOR, VIEWER. Полный токен печатается один раз (копируемый компонент) и больше не хранится открытым. list показывает id/label/role/enabled/last used, не секрет. В отличие от /dashboard, isCommandEnabled("apikey") не проверяется — команда регистрируется всегда.
/away/away [<message>]—neoessentials.afkToggle AFK status (alias)Тот же registerAfkCommand, что /afk: отдельный литерал, не redirect. Флаг commands.away не читается — оба литерала смотрят на commands.afk. В дефолтном excludedCommands строки away нет.
/back/back—neoessentials.teleport.backReturn to previous locationТочка пишется перед home/warp/spawn/tpa и перед /tp|/tphere|/tpall|/tppos|/top|/jump|/jumpto. /tpo и /tpoffline из ServerAdminCommands /back не пишут. Смерть — backSettings.enableDeathBack; точка сохраняется без уведомления в чат. Свой warmup: backSettings.teleportDelay, не generalSettings. enableBackSafety по умолчанию false. Возврат в приват Farmstead Claims (или исходного RegionGuard) с teleport-escape deny отменяется.
/backup/backup—neoessentials.backup по соглашениюTrigger a server world save and backupsave(null, true, false) по всем уровням, затем ProcessBuilder от commands.backupCommand (пустая строка / «save-all» — только сейв). Команда режется по пробелам, inheritIO, не ждёт завершения. Право neoessentials.backup.
/bal/bal—neoessentials.economy.balanceCheck your balance (alias)Отдельная регистрация в BalanceCommand, корень тоже neoessentials.economy.balance: только свой баланс, аргумента <player> нет. Чужой счёт — исключительно /balance <player>.
/balance/balance [player]—neoessentials.economy.balanceCheck your balanceКорень /balance, /bal и /money закрыт neoessentials.economy.balance. Голый /balance смотрит свой счёт. Ветка [player] закрыта neoessentials.economy.balance.others (или OP 2). Имя резолвится через EconomyPlayerUtil — офлайн тоже. Консоль не проходит: executeOther зовёт getPlayerOrException у отправителя. Алиас /money в том же файле — только свой баланс, как /bal.
/balancetop/balancetop [page]—neoessentials.economy.baltopView top balances (alias)Тот же узел, что /baltop: цикл {baltop, balancetop, btop} в BaltopCommand.register.
/baltop/baltop [page]—neoessentials.economy.baltopView top balancesneoessentials.economy.baltop; консоль проходит (player == null). Без [page] — страница 1, IntegerArgumentType от 1. Размер страницы 10 и TTL кэша 60 с зашиты в BaltopCommand, ключей в economy.json нет. Игроки с neoessentials.economy.baltop.exempt в таблицу не попадают. Алиас /btop регистрируется в том же цикле, отдельной карточки у него нет.
/ban/ban <player> [reason]—neoessentials.moderation.banBan a player<player> — StringArgumentType.word, сначала онлайн (без учёта регистра), иначе кэш профилей сервера; офлайн-бан возможен. Без [reason] подставляется moderation.banSettings.defaultBanReason. Закрыто neoessentials.moderation.ban на корне. Повторный бан того же UUID возвращает false, пока запись active.
/banip/banip <ip> [reason]—neoessentials.moderation.banipBan an IP address<ip> — одно слово; принимается только IPv4 из четырёх октетов 0–255, ник подставлять нельзя. Кикает всех онлайн с этим адресом. enableIPBans: false → banIP возвращает false. Право neoessentials.moderation.banip. Без причины — defaultBanReason.
/banlist/banlist [players | ips]—neoessentials.moderation.banlistList banned playersБез аргумента выполняется ветка players. players при чтении архивирует истёкшие temp-баны, если autoExpireTempBans включён. ips отдаёт сырой Map ipBans без фильтра истечения. Право neoessentials.moderation.banlist.
/bb/bb <player>—neoessentials.bb по соглашению каталог /helpReturn a non-member of your current region to spawnКоманда Farmstead Claims (или исходного RegionGuard), а не NeoEssentials. Нужна базовая нода regionguard.command, а также статус owner или member обычного региона (не __global__) под игроком. Указанный игрок должен быть онлайн и находиться в том же регионе; owner/member этого же региона остаётся на месте, гость немедленно телепортируется на настроенный spawn NeoEssentials (если он установлен) либо на ванильный spawn и получает сообщение о возврате. Warmup и сообщения обычной /spawn не вызываются. В /help описание команды показывается по-русски: «Вернуть гостя текущего привата на спавн».
/bc/bc <message>—neoessentials.broadcastBroadcast a message (alias)Алиас /broadcast, право neoessentials.broadcast.
/bcastworld/bcastworld <message>—neoessentials.broadcastworldBroadcast to world (alias)Алиас: performPrefixedCommand «broadcastworld …», право neoessentials.broadcastworld.
/beezooka/beezooka [amount]—neoessentials.beezooka по соглашениюLaunch angry bees Только игрок. amount Integer 1–20, по умолчанию 1. Пчёлы с persistent anger 400–800 тиков. Право neoessentials.beezooka.
/bigtree/bigtree—neoessentials.treeGrow a large tree (alias)Зовёт тот же обработчик с type=bigoak (fancy_oak). Право neoessentials.tree.
/book/book | /book unlock | /book title <title> | /book author <author>—neoessentials.book по соглашениюManage booksБез аргумента выдаёт writable book. unlock / title / author работают с книгой в руке и требуют neoessentials.book.unlock / .title / .author.
/bottom/bottom—neoessentials.bottom по соглашениюTeleport to the bottom of the worldТолько игрок. Ищет самый нижний твёрдый блок с двумя воздухом сверху между minBuildHeight и текущим Y, пишет back через MiscTeleportManager. Нет безопасного места — no_safe.
/break/break—neoessentials.break по соглашениюBreak the looked-at blockТолько игрок, луч 20 блоков, destroyBlock без дропа. Бедрок — только с neoessentials.break.bedrock. Консоль: дерево видно, execute — player_only.
/broadcast/broadcast <message>—neoessentials.broadcast по соглашениюBroadcast a message to all playersgreedyString. Плейсхолдеры PlaceholderAPI от отправителя (консоль — без игрока). Префикс §6[Broadcast] §f, цветные коды. Шлётся всем игрокам и в системный чат сервера — отдельного «отправлено N» нет. Консоль проходит.
/broadcastworld/broadcastworld <message>—neoessentials.broadcastworld по соглашениюBroadcast to players in your worldТолько игроки текущего src.getLevel() (у консоли это обычно overworld). Префикс §6[World] §e. Плейсхолдеры PlaceholderAPI.
/burn/burn <target> [seconds]—neoessentials.burn по соглашениюSet a player on fireЦель обязательна. Seconds Integer 1–600, по умолчанию 10. Ставит remainingFireTicks = seconds×20. Отдельного burn.others нет — хватает neoessentials.burn. Консоль проходит.
/cartography/cartography—neoessentials.cartography по соглашениюOpen portable cartography tableПортативный стол картографа.
/cartographytable/cartographytable—neoessentials.cartographyOpen portable cartography table (alias)Алиас /cartography.
/chatformat/chatformat set <player> <format> | clear <player> | check <player> | list | reload—neoessentials.chat.format.setManage per-player/per-group chat formatsКорень и все ветки требуют neoessentials.chat.format.set (узла нет в PermissionRegistry — в таблице прав сайта его не будет, LuckPerms принимает строку). <player> — только онлайн. set/clear/check/reload пишут в коллекцию DataStore chat_formats; list печатает только тех онлайн-игроков, у кого override есть, хотя getCount() считает всех. Сообщения веток зашиты английским Component.literal, не lang. Дерево не регистрируется, если выключены chatEnabled или commands.chatformat.
/chestshop/chestshop [list [player] | info | convert | remove [<x> <y> <z>] | setprice <buy|sell|both> <price> | stats | limit | export | import [create] | reload | pricing | hologram enable|disable|enablepos <x> <y> <z>|move <x> <y> <z>]—neoessentials.chestshopSign-based chest shop systemГолый /chestshop печатает справку; корень требует neoessentials.chestshop (консоль проходит). Прицел у info/convert/setprice/remove без координат/hologram — player.pick(5.0). list [player] — чужие только с neoessentials.shop.list.others или OP 3 и только онлайн. convert — neoessentials.shop.create. remove без координат — владелец или shop.admin.remove/OP 3; с координатами — только админ. setprice — shop.setprice или shop.admin.setprice, чужой знак — только admin.setprice. hologram enablepos вызывается кнопкой из чата после создания знака. reload — OP 3 или shop.admin.reload. Алиаса /shop в коде нет, несмотря на javadoc ShopCommand.
/ci/ci—neoessentials.item.clearinventoryClear inventory (alias)Алиас /clearinventory, отдельный флаг commands.ci.
/ciconfirmtoggle/ciconfirmtoggle—neoessentials.ciconfirmtoggle по соглашениюToggle /ci confirmation promptsПереключает флаг в памяти ciConfirmDisabled. /clearinventory этот флаг не читает — подтверждения всё равно нет.
/clear/clear—neoessentials.item.clearinventoryClear inventory (alias)В реестре справки объявлен как алиас очистки инвентаря, но ClearInventoryCommand регистрирует только clearinventory, ci и clearinv. Корневого Commands.literal("clear") у этой системы нет — в игре остаётся ванильный /clear.
/clearinventory/clearinventory—neoessentials.item.clearinventoryClear inventoryТолько себе, аргумента <player> нет. Чистит main + armor + offhand и пишет три числа. neoessentials.item.clearinventory. Подтверждения в коде команды нет.
/clearinventoryconfirmtoggle/clearinventoryconfirmtoggle—neoessentials.ciconfirmtoggleToggle /ci confirmation prompts (alias)Алиас /ciconfirmtoggle, то же право neoessentials.ciconfirmtoggle.
/clearwarnings/clearwarnings <player>—neoessentials.moderation.warnClear all warnings for a playerСтирает все варны цели. Право neoessentials.moderation.warn.
/compass/compass [player]—neoessentials.compass по соглашениюShow your compass directionБез цели — только игрок, neoessentials.compass. С целью EntityArgument.player() и compass.others; консоль может смотреть чужой. Показывает стороны света, координаты, биом, дистанцию до спавна. Дополнительный литерал bearing регистрируется, но в каталоге /help его нет.
/condense/condense [<item>]—neoessentials.condense по соглашениюCompact items to their block formsСжимает по фиксированной таблице (самородки→слитки→блоки и т.п.). Без аргумента — все подходящие типы в инвентаре; <item> — word, сравнивается с полным id. Остаток, который не влез, падает под ноги.
/coords/coords [player]—neoessentials.getposGet your current position (alias)Алиас /getpos, право neoessentials.getpos.
/craft/craft—neoessentials.craftingOpen portable crafting table (alias)Алиас /crafting. Право neoessentials.crafting, не neoessentials.craft. Выключается ключом commands.crafting, отдельного commands.craft нет.
/crafting/crafting—neoessentials.crafting по соглашениюOpen portable crafting tableТолько игрок (консоль — player_only). Виртуальное меню stillValid=true, физического блока нет. Право neoessentials.crafting через PermissionValidator. Алиасы craft и workbench регистрируются тем же методом, если commands.crafting включён.
/crate/crate [list | open <crate> | preview <crate> | keys [player] | key give|take|giveitem <player> <crate> <amount> | admin create <id> <displayName> | admin delete <crate> | admin addreward <crate> <weight> | admin setanimation <crate> <animation> | admin setkey <crate> | admin setchatname <crate> <name> | admin setkeyname <crate> <name> | admin setblock <crate> | admin removeblock | admin reload]—neoessentials.crate.openOpen and manage cratesКорневой узел /crate целиком закрыт правом neoessentials.crate.open (без него не работает даже /crate preview, хотя у него есть собственное право neoessentials.crate.preview), ветки key и admin дополнительно требуют neoessentials.crate.admin, а все аргументы <player> ищутся только среди онлайн-игроков.
/createkit/createkit <kitname> [<displayname> [<cooldown> [<description>]]]—neoessentials.kits.createCreate a new kitТолько игрок (нужен инвентарь). <kitname> — слово [A-Za-z0-9_] длиной ≤ 32; в хранилище имя приводится к нижнему регистру. <displayname> — String (пробелы только в кавычках), <cooldown> — целые секунды ≥ 0 (в записи становятся миллисекундами), <description> — greedy. Копируется основной инвентарь без брони и второй руки. Повтор с тем же именем перезаписывает кит. В дереве также есть литералы makekit и addkit, в реестре справки их нет.
/cshop/cshop [list [player] | info | convert | remove [<x> <y> <z>] | setprice <buy|sell|both> <price> | stats | limit | export | import [create] | reload | pricing | hologram enable|disable|enablepos <x> <y> <z>|move <x> <y> <z>]—neoessentials.chestshopSign-based chest shop (alias)redirect на узел chestshop и только если в commands включены оба ключа chestshop и cshop. Если включён один cshop — не регистрируется ничего.
/ctext/ctext [<chapter> [<page>]]—neoessentials.customtextDisplay a custom server text page (alias)Алиас /customtext.
/customtext/customtext [<chapter> [<page>]]—neoessentials.customtext по соглашениюDisplay a custom server text pageФайл config/neoessentials/text/<chapter>.txt, по 10 строк на страницу. Без аргументов — chapter info, page 1. Имя главы режется до [a-zA-Z0-9_-]. `{player}` и `&` заменяются при выводе.
/dashboard/dashboard [start | stop | restart | status | url | pair <dashboardUrl> <code> | unpair]—neoessentials.admin.dashboardStart/stop/status/URL for the web dashboardКорень закрыт neoessentials.admin.dashboard через validateAdminPermission (консоль и OP уровня 2 проходят всегда). Голый /dashboard равен status. pair/unpair дополнительно требуют neoessentials.dashboard.pair (validatePermission, без admin-bypass). <dashboardUrl> — StringArgumentType.string(): URL с : и / нужно брать в кавычки, иначе Brigadier разрежет токен. start смотрит webDashboard.enabled и modules.webDashboardEnabled; autoStart в поставке false — HTTP сам не поднимается. Команда регистрируется, только если commands.dashboard включён.
/dashboardregister/dashboardregister [start | complete <username> <password> | discord | status]—neoessentials.dashboard.accessRegister a web dashboard accountИгроку нужен neoessentials.dashboard.access; консоль допускается при OP 2, но все ветки кроме справки отвечают players_only. Голый вызов печатает help. <password> — greedy (можно с пробелами), минимум 8 символов; <username> — word длиной 3–20. Токен start живёт 5 минут в памяти и не пишется в DataStore. discord требует готовый SDLink / Mc2Discord / DCIntegration и уже связанный Discord.
/day/day—neoessentials.time.setSet time to dayСтавит 1000 во все миры. Право neoessentials.time.set, не neoessentials.time.
/deletehome/deletehome <name> | /deletehome confirm | /deletehome deny—neoessentials.teleport.home.deleteDelete your home (alias)Тот же Brigadier-узел, что /delhome: registerDelHomeCommandWithName("deletehome"), если литерал ещё свободен. Право то же: neoessentials.teleport.home.delete.
/delhome/delhome <name> | /delhome confirm | /delhome deny—neoessentials.teleport.home.deleteDelete your homeПри homeSettings.requireConfirmationForDelete (по умолчанию true) удаление идёт только через /delhome confirm. Кнопки в чате шлют /delhome confirm и /delhome deny — имя читается из pending-map. Алиасы removehome и rhome пропускаются при конфликте с FTB/Essentials.
/deljail/deljail <name>—neoessentials.moderation.setjailDelete a jail locationПраво то же, что setjail. Сидящих не выпускает — только предупреждает, сколько их было. Пока локации нет, canPlayerMove возвращает true, но isPlayerJailed остаётся true до /unjail или входа (вход без локации сам снимает тюрьму).
/delkit/delkit <kitname> [confirm]—neoessentials.kits.deleteDelete a kitПервый вызов только печатает предупреждение; удаление — /delkit <kitname> confirm, без сохранённого «ожидания» и без таймаута. Цена kits.commandCosts.delkit списывается на confirm. Дополнительные литералы deletekit, removekit, rkit в дереве есть, в реестре справки — нет.
/delpwarp/delpwarp <name>—neoessentials.teleport.pwarp.deleteDelete a player warpУдаляет только свой player warp. Чужие точки этой командой не трогаются (для этого есть REST DELETE /api/warps/players/{uuid}/{name}).
/delwarp/delwarp <name>—neoessentials.teleport.warp.deleteDelete a warpТе же литералы: deletewarp, removewarp, rwarp. С консоли (OP 3) зовёт deleteWarpByAdmin, из игры — deleteWarp. Подсказки — текущие имена варпов.
/depth/depth [player]—neoessentials.depth по соглашениюShow your depthКорневой .requires — instanceof ServerPlayer: консоль не выполнит даже /depth <player>. Своё — neoessentials.depth; чужое EntityArgument.player() — depth.others. Море Y=63, бедрок Y=−64. Описания слоёв зашиты по-английски (Deepslate Level, Nether Floor…).
/direction/direction [player]—neoessentials.compassShow your compass direction (alias)Алиас /compass, право neoessentials.compass / compass.others.
/dispose/dispose [confirm|cancel]—neoessentials.item.disposeDispose of itemsБез аргумента открывает сундук 27 слотов. Предметы, положенные туда, держатся в pendingDisposals до confirm (уничтожить), cancel (вернуть) или выхода с сервера (вернуть). Закрытие GUI само по себе ничего не уничтожает.
/ec/ec <target>—neoessentials.enderchestView another player's ender chest (alias)Алиас /enderchest, право neoessentials.enderchest.
/ecedit/ecedit <target>—neoessentials.enderchest.editView and edit another player's ender chest (alias)Алиас /enderchestedit, право neoessentials.enderchest.edit.
/eco/eco give|take <player> <amount> | set <player> <amount> | reset <player> | history [player]—neoessentials.economy.ecoAdmin economy commandsКорень — OP 2 или neoessentials.economy.eco; голого /eco нет. give/take — сумма от 0.01, set — от 0.0 (отрицательное отсекается в execute). Имена резолвятся офлайн через профиль; строка на @ — ванильный селектор, только онлайн (квесты: /eco give @p 100). history без аргумента — своя лента; [player] дополнительно требует именно source.hasPermission(2), одного eco-узла мало. Алиас /economy — то же дерево. Процентный синтаксис 10% не поддерживается.
/effect/effect <target> clear | /effect <target> <effect> [duration] [amplifier]—neoessentials.effect по соглашениюApply potion effects to playersЦель обязательна (онлайн word). duration 1–1000000 с, по умолчанию 30; amplifier 0–255, по умолчанию 0. Эффект — path или namespace:path. Перекрывает ванильный /effect. Консоль проходит.
/enchant/enchant <enchantment> [<level>] | /enchant <player> <enchantment> [<level>]—neoessentials.item.enchantEnchant itemsПерекрывает ванильный /enchant. <enchantment> — ResourceLocation из реестра, <level> целое 1–32767 (без аргумента — 1). Ветка с игроком требует neoessentials.item.enchant.others (или OP 2). unsafe — neoessentials.item.enchant.unsafe или глобальный unsafe-enchantments; any — neoessentials.item.enchant.any. Предмет — основная рука цели. Литералы ench и enchanthand в дереве есть при своих флагах, в реестре справки их нет.
/enderchest/enderchest <target>—neoessentials.enderchest по соглашениюView another player's ender chestТолько чужой/указанный EC, своего без цели нет. В отличие от invsee, себя не запрещает — /ec <свой ник> откроет. Право neoessentials.enderchest.
/enderchestedit/enderchestedit <target>—neoessentials.enderchest.editView and edit another player's ender chestЖивой EC цели, замок один редактор. Право neoessentials.enderchest.edit, ключ commands.enderchestedit.
/exp/exp | /exp show [target] | /exp set <amount> [target] | /exp give <amount> [target]—neoessentials.exp по соглашениюManage player experienceПорядок — amount затем target, не наоборот. Bare /exp и show — свои XP (консоль без цели — player_only). set: neoessentials.exp.set, amount ≥ 0 (сначала обнуляет уровни/очки, потом giveExperiencePoints). give: exp.give, amount ≥ 1. Чужие set/give — exp.set.others / exp.give.others. Цель только онлайн.
/ext/ext [target]—neoessentials.ext по соглашениюExtinguish a playerrequires: p == null || узел — консоль и командный блок проходят без OP. Цель — word, только онлайн getPlayerByName. clearFire(). Чужой — ext.others.
/extinguish/extinguish [target]—neoessentials.extExtinguish a player (alias)Алиас /ext, право neoessentials.ext / ext.others.
/feed/feed [target]—neoessentials.feed по соглашениюRestore player hungerrequires: p == null || узел — консоль и командный блок проходят без OP. Цель — word, только онлайн getPlayerByName. Только голод и saturation 20, эффекты не трогает. Чужой — feed.others.
/fireball/fireball [type] [speed] [ride]—neoessentials.fireball по соглашениюShoot a projectileТолько игрок. По умолчанию type=fireball, speed=2.0, без ride. Типы-подсказки: fireball, small, large, arrow, skull, egg, snowball, expbottle, dragon, trident, windcharge. speed Double 0–10. ride — литерал, право fireball.ride. После корневого fireball execute дополнительно требует fireball.<type> или fireball.* — для голого /fireball это fireball.fireball (узла в реестре нет) либо fireball.*.
/firework/firework clear | /firework power <level> | /firework fire [amount] | /firework color <options>—neoessentials.firework по соглашениюEdit or fire held firework rocketsКорневого .executes нет — голый /firework не выполняется. Нужна ракета в основной руке. power Integer 0–127; fire 1–50 и отдельное neoessentials.firework.fire; color — greedyString: hex[,hex] и опционально fade:/shape (star, large, creeper, burst) / trail|twinkle|flicker. Только игрок.
/fix/fix—neoessentials.item.repairRepair items (alias)Тот же код, что /repair. Включается флагом commands.fix отдельно от commands.repair.
/fly/fly | /fly on | /fly off | /fly <target> | /fly <target> on | /fly <target> off—neoessentials.fly по соглашениюToggle flight moderequires: p == null || узел — консоль и командный блок проходят без OP. Цель — word, только онлайн getPlayerByName. Порядок не [on|off] [player], а сначала цель, либо голые on/off на себя. Чужой — neoessentials.fly.others на ветке target. Без on/off — invert mayfly, при выключении сбрасывает flying и fallDistance. Включённое состояние сохраняется по UUID и восстанавливается после входа, если у игрока по-прежнему есть neoessentials.fly.
/freeze/freeze <player> [reason]—neoessentials.moderation.freezeFreeze a playerТолько онлайн (getPlayerByName). Без причины — freezeSettings.defaultFreezeReason. Уже замороженный — ошибка. Пишет коллекцию freezes. Право neoessentials.moderation.freeze.
/freezeall/freezeall [reason]—neoessentials.moderation.freezeallFreeze all playersОпциональный greedy reason есть в дереве. Не трогает отправителя и уже замороженных. Право neoessentials.moderation.freezeall.
/freezelist/freezelist—neoessentials.moderation.freezelistList frozen playersПраво neoessentials.moderation.freezelist.
/fw/fw—neoessentials.fw по соглашениюEdit or fire held firework rockets (alias)Только запись каталога /help. Commands.literal("fw") нет — алиас не работает. Используйте /firework.
/gamemode/gamemode survival|creative|adventure|spectator [target] | /gamemode 0|1|2|3—neoessentials.gamemode по соглашениюChange player gamemodeИмена режимов — литералы, не word. Числа 0–3 = survival/creative/adventure/spectator и не принимают [target]. Чужой — gamemode.others. Консоль без цели — player_only. Перекрывает ванильный /gamemode. Цель — онлайн word.
/gc/gc—neoessentials.gc по соглашениюShow server memory and TPS infoАптайм JVM, TPS из getAverageTickTimeNanos (cap 20), used/total/max MB, сумма загруженных чанков. Консоль проходит.
/getpos/getpos [player]—neoessentials.getpos по соглашениюGet your current positionБез цели — игрок, neoessentials.getpos. С целью — getpos.others. Точные и блочные координаты, свет, блок под ногами, эквивалент Незер/Обычный мир. Дополнительный литерал pos в дереве есть, в каталоге нет.
/give/give <target> <item> [amount]—neoessentials.give по соглашениюGive items to a playerЦель и предмет обязательны. item — word (без NBT/компонентов); резолв WorthManager.resolveItem: namespace:path, иначе minecraft:path, иначе exact path любого мода, иначе contains. amount Integer 1–3456, по умолчанию 1; стопки режутся по maxStack, лишнее drop. Перекрывает ванильный /give. С /crate key give не пересекается — это подкоманда /crate.
/gma/gma [player]—neoessentials.gamemodeChange to adventure modeЯрлык Adventure. Та же схема прав и цели, что /gms.
/gmc/gmc [player]—neoessentials.gamemodeChange to creative modeЯрлык Creative. Та же схема прав и цели, что /gms.
/gms/gms [player]—neoessentials.gamemodeChange to survival modeЯрлык Survival. Включается commands.gamemode. Своё — neoessentials.gamemode, чужой EntityArgument.player() — gamemode.others. Уже в этом режиме — already_in_mode. Консоль без цели — player_only.
/gmsp/gmsp [player]—neoessentials.gamemodeChange to spectator modeЯрлык Spectator. Та же схема прав и цели, что /gms.
/god/god | /god on | /god off | /god <target> | /god <target> on | /god <target> off—neoessentials.god по соглашениюToggle god moderequires: p == null || узел — консоль и командный блок проходят без OP. Цель — word, только онлайн getPlayerByName. Включение дополнительно фулл-хилит и ставит голод 20, снимает с игрока цели ближайших мобов и не даёт мобам выбрать его новой целью. Чужой — god.others. Включённое состояние сохраняется по UUID и восстанавливается после входа, если у игрока по-прежнему есть neoessentials.god.
/grindstone/grindstone—neoessentials.grindstone по соглашениюOpen portable grindstoneТолько игрок (консоль — player_only). Виртуальное меню stillValid=true, физического блока нет. Право neoessentials.grindstone.
/hat/hat—neoessentials.hat по соглашениюWear held item as helmetТолько игрок. Меняет основную руку и слот брони 3 (шлем), даже если предмет «не шлем». Пустая рука — no_item.
/heal/heal [target]—neoessentials.heal по соглашениюRestore player health and hungerrequires: p == null || узел — консоль и командный блок проходят без OP. Цель — word, только онлайн getPlayerByName. Полное HP, голод 20, saturation 20, removeAllEffects. Мёртвого не лечит (heal.dead). Чужой — heal.others.
/help/help | /help <page_or_command> | /help <command> <page>—neoessentials.help по соглашениюShow available commandsПеред регистрацией рефлексией снимает ванильные узлы help и ?. Один word-аргумент: чистое число ≥ 1 — номер страницы (по 10 команд), иначе поиск по имени/описанию в каталоге CommandRegistry. Вторая страница только у /help <command> <page>, у /? её нет. Список фильтруется по реальному узлу из CommandPermissionRegistry; консоль и держатели neoessentials.admin / neoessentials.* видят всё. Описание сначала ищется по полному синтаксису без плейсхолдеров (например, cmd.rg.flag.clear.description), затем по корню (cmd.bb.description); поэтому отдельные ветки /rg показываются с разными русскими описаниями. Игрок может набрать корень любой команды NeoEssentials или её алиаса в любом регистре (/HOME, /Home, /home); регистр аргументов и подкоманд не меняется. Узел — neoessentials.help (не neoessentials.?).
/helpop/helpop <message>—neoessentials.helpop по соглашениюRequest help from staffБез аргумента — usage. Право отправителя neoessentials.helpop; получают только онлайн с neoessentials.helpop.receive. Заглушённый игрок режется. Кнопки [Reply] подставляют /msg <ник> ; телепорт на координаты / к игроку — если есть neoessentials.teleport.admin.tp / tphere. Это не staff-канал: /ac и /amsg — алиасы helpop, а не ChannelCommands.
/history/history <player>—neoessentials.moderation.historyView a player's moderation history (alias)dispatcher.redirect на узел modhistory. Регистрируется только если commands.modhistory включён. То же право neoessentials.moderation.history.
/hologram/hologram create <id> [<x> <y> <z> [world]] | delete <id> | rename <id> <newid> | copy <id> <newid> | addline <id> <text> | insertline <id> <index> <text> | setline <id> <index> <text> | removeline <id> <index> | moveline <id> <from> <to> | clearlines <id> | addframes <id> <lineIndex> <intervalTicks> <frames> | removeframes <id> <lineIndex> | moveto <id> <x> <y> <z> | movehere <id> | align <id> | tp <id> | near [radius] | setrefresh <id> <seconds> | toggle <id> | list | info <id> | reload | billboard <id> <fixed|vertical|horizontal|center> | textalign <id> <center|left|right> | spin <id> on [speed] [axis] | spin <id> off | spintrack <id> on|off | hover <id> on [amplitude] [speed] | hover <id> off | scale <id> <scale> | linespacing <id> <spacing> | shadow <id> on|off | seethrough <id> on|off | opacity <id> <0-255> | viewrange <id> <range> | linewidth <id> <pixels> | background <id> <transparent|#RRGGBB|#AARRGGBB>holoneoessentials.hologram.adminManage holographic displaysВесь корень закрыт hasPermission: OP 4, neoessentials.hologram.admin или neoessentials.admin.* (консоль всегда). Алиас /holo — redirect на тот же узел и регистрируется только если включены и commands.hologram, и commands.holo. id хранится в нижнем регистре. Номера строк 1-based. <text> и <frames> — greedyString. Нет подкоманды setscale: масштаб — scale. create без координат — позиция игрока, Y+1.5 (консоль так создать не может). near без радиуса = 20, радиус 1–1000. spin on по умолчанию speed 3.0 ось Y; hover on — амплитуда 0.08, скорость 1.5. Модуль modules.hologramEnabled выключает регистрацию целиком.
/home/home [<name>]—neoessentials.teleport.homeTeleport to your homeБез имени: ключ home, иначе первый ключ ConcurrentHashMap — не алфавит. Алиас /h не ставится, если загружен ftbessentials / ftb_essentials / essentials. В тюрьме при preventJailEscape команда молчит. Кулдаун homeTeleportCooldown, warmup — generalSettings.teleportDelay.
/homes/homes—neoessentials.teleport.home.listList your homesАлиасы listhomes, homelist. Семья регистрируется только если commands.listhomes=true, ключ commands.homes на дерево не влияет. Консоль не проходит requires().
/i/i <item> [<amount>]—neoessentials.itemGive yourself an item by name (alias)Алиас /item, то же дерево аргументов и то же право neoessentials.item.
/ice/ice [target]—neoessentials.ice по соглашениюFreeze a playersetTicksFrozen(getTicksRequiredToFreeze()+1) — механика порошкового снега, не ледяной блок. Своё — neoessentials.ice; чужой word онлайн — ice.others. Консоль без цели — player_only.
/ignore/ignore <target>—neoessentials.chat.ignoreIgnore a playerТо же дерево: /block (в реестре нет). <target> только онлайн. Нельзя игнорировать себя. Право neoessentials.chat.ignore. Цель с neoessentials.chat.ignore.exempt не игнорируется (узел в PermissionRegistry не объявлен, проверка в коде есть). Повторный ignore того же ника — ошибка. Список — коллекция DataStore ignore_lists, ключ = ник в нижнем регистре, не UUID. Публичный чат IgnoreManager не фильтрует.
/info/info—neoessentials.info по соглашениюGet player information (alias)Не алиас /whois, несмотря на описание в каталоге. Печатает header + активный MOTD (только {player}/{name}) + footer со ссылкой на /rules. Право neoessentials.info (default true). Консоль проходит (p == null).
/inv/inv <target>—neoessentials.invseeView another player's inventory (alias)Алиас /invsee, не redirect: своё requires. Режим определяется так же: `neoessentials.invsee` — просмотр, `neoessentials.invsee.edit` — редактирование.
/invsee/invsee <target>—neoessentials.invsee по соглашениюView another player's inventoryЦель EntityArgument.player() обязательна. Консоль проходит requires, но execute — getPlayerOrException (нужен игрок). Аудит — neoessentials/inventory_audit.log. С `neoessentials.invsee` открывается read-only окно (mayPickup/mayPlace=false); с `neoessentials.invsee.edit` — редактируемый живой инвентарь и замок «один редактор на цель». Нода `.edit` также даёт доступ к самой команде и имеет приоритет над просмотром. Свою инвентарь смотреть нельзя (invsee.self). Включается commands.invsee.
/item/item <item> [<amount>]—neoessentials.item по соглашениюGive yourself an item by nameВыдача себе по id. <item> — word (minecraft: префикс можно опустить), <amount> 1–64; без количества — defaultMaxStackSize. Только игрок, neoessentials.item. Не путать с /give из PlayerStateCommands (служебные команды).
/itemdb/itemdb [<item>]—neoessentials.itemdb по соглашениюLook up item registry infoБез аргумента — предмет в руке; иначе word-id. Печатает registry id, max stack, прочность.
/itemlore/itemlore add <text> | /itemlore set <line> <text> | /itemlore remove <line> | /itemlore clear—neoessentials.itemlore по соглашениюEdit held item lore<line> 1-based. add/set берут greedy text. Предмет в основной руке.
/itemname/itemname [<name>]—neoessentials.itemname по соглашениюRename held itemБез аргумента или имя `-` снимает CUSTOM_NAME. Иначе greedy-строка с `&`-цветами на предмет в руке. neoessentials.itemname.
/jail/jail <player> <jail> [duration_or_reason]—neoessentials.moderation.jailJail a player<jail> — имя локации. Хвост greedy, как у /mute: токен 30m/1h/… — срок, иначе вся строка — причина бессрочной посадки. Офлайн через кэш профилей. Право neoessentials.moderation.jail. Нужна существующая локация (и хотя бы одна, если requireJailLocation).
/jailfor/jailfor <player> <jail> <duration> [reason]—neoessentials.moderation.jailJail a player for a set duration<duration> обязателен и должен совпасть с тем же regexp, что у /jail, иначе invalid_duration. Доступ: neoessentials.moderation.jail.timed или neoessentials.moderation.jail (validateAnyPermission; в LuckPerms родительский узел не подразумевает .timed).
/jailinfo/jailinfo [jail]—neoessentials.moderation.jailinfoShow info about a jailБез имени — все локации; с именем — одна плюс число сидящих. Аргумент — имя клетки, не игрока. Право neoessentials.moderation.jailinfo.
/jaillist/jaillist—neoessentials.moderation.jaillistList all jail locationsВопреки каталогу /help это список посаженных игроков, не локаций. Локации — /jailinfo без аргумента. Право neoessentials.moderation.jaillist.
/jails/jails—neoessentials.moderation.jaillistList all jail locations (alias)Отдельный literal с тем же executeJailList, что /jaillist (посаженные, не локации). Право neoessentials.moderation.jaillist. Не redirect.
/jump/jump—neoessentials.teleport.jumpJump through wallsТот же execute, что /jumpto: луч 100 блоков, посадка на блок над хитбоксом. Сквозь стены «не прыгает», если луч упёрся в непрозрачный блок — телепорт на него сверху.
/jumpto/jumpto—neoessentials.teleport.jumptoTeleport to block you're looking atИдентичен /jump (оба register* зовут jumpToTargetBlock). Если над целью нет двух блоков воздуха — jumpto_failed.
/kick/kick <player> [reason]—neoessentials.moderation.kickKick a playerТолько онлайн. Себя кикнуть нельзя. Без [reason] в дереве зашито «Kicked by an operator», не defaultKickReason из конфига. Экран — kickSettings.kickMessage с {reason}/{kicker}. Пишет коллекцию kicks. Право neoessentials.moderation.kick.
/kickall/kickall [reason]—neoessentials.moderation.kickallKick all playersКикает всех, кроме отправителя. Без причины в дереве зашито «Server maintenance»; текст экрана — kickAllMessage. Право neoessentials.moderation.kickall.
/kill/kill <target>—neoessentials.kill по соглашениюKill a playerЦель обязательна — себя без ника не убить (в отличие от ванильного /kill). Только онлайн-игрок. exempt + отсутствие kill.force у игрока-отправителя блокирует; консоль обходит exempt. genericKill. Перекрывает ванильный /kill (сущности/селекторы больше не работают).
/killme/killme | /killme confirm—neoessentials.suicideKill yourself (alias)Алиас /suicide, право neoessentials.suicide. Включается commands.suicide.
/kit/kit [<kitname> [<player>]]—neoessentials.kits.useClaim a kitБез аргументов — список китов, на которые у вас есть per-kit право. Выдача другому требует neoessentials.kit.others на узле <player> (в автодополнении цель не появится без этого права). Консоль обязана указать <player>. Цель ищется только среди онлайн. Кулдаун и maxUses проверяются у получателя, per-kit право — у отправителя.
/kitreset/kitreset <kitname> [<player>]—neoessentials.kitreset по соглашениюReset a kit cooldownСбрасывает и кулдаун, и счётчик использований. Чужому игроку — neoessentials.kitreset.others на узле <player>. Консоль обязана указать цель. Цель только онлайн.
/kits/kits [page]—neoessentials.kits.listList available kitsТа же реализация, что /listkits: page ≥ 1, по 10 китов на страницу. Дерево регистрируется только если включён commands.listkits (флаг commands.kits сам по себе /kits не выключает). Игрок без neoessentials.kits.override видит лишь доступные ему киты, не полный админ-список.
/kittycannon/kittycannon—neoessentials.kittycannon по соглашениюLaunch an exploding baby cat Только игрок. Детёныш-кот (age −24000) с импульсом взгляда×2; через 20 тиков discard + explode power 0, ExplosionInteraction.NONE — блоков не ломает. Право neoessentials.kittycannon.
/language/language <code> | /language set <code> | /language list | /language reload | /language stats | /language info | /language template <code> | /language exportmissing | /language clearmissing | /language validate <code> | /language regenerate <code> | /language override set <key> <value> | /language override get <key> | /language override remove <key> | /language override list | /language override clear | /language override reload—vanilla:op-level-4Manage custom language filesКорень требует ванильный OP 4 (`source.hasPermission(4)`), не узел neoessentials.language. В реестре прав у команды записано vanilla:op-level-4. Bare `/language <code>` — сокращение для set. <value> у override set — greedyString (остаток строки). Консоль проходит проверку OP.
/leaderboard/leaderboard [<board> [page | gui] | reload | admin set <board> <player> <value> | admin add <board> <player> <delta> | admin reset <board> <player> | admin create <id> <displayName> | admin delete <board> | hologram create <board> <id> [lines]]lbneoessentials.leaderboard.viewView ranked leaderboards (money, kills, playtime, ...)Алиас `/lb` регистрируется тем же деревом. Корень — neoessentials.leaderboard.view (консоль проходит); `reload` / `admin` / `hologram` — neoessentials.leaderboard.admin. `<board>`/`<id>`/`<player>` — word; `<displayName>` greedy; `<value>`/`<delta>` — long; `<page>` ≥ 1; в чате страница по 10 строк, GUI — 45. `gui` и `hologram create` только от игрока. set/add/reset/delete работают лишь на type `custom`. Отдельного `modules.leaderboardEnabled` и ключа `commands.leaderboard` в поставке нет — команда регистрируется всегда. `/baltop` эту систему не вызывает.
/lightning/lightning [target]—neoessentials.lightning по соглашениюStrike lightning at a playerБез цели — удар в точку луча 100 блоков (нужен игрок). С целью — в ноги онлайн-игрока, право lightning.others. Консоль без цели — player_only.
/linkaccount/linkaccount <code>—neoessentials.dashboard.linkaccountLink your Minecraft account to an existing dashboard accountБез neoessentials.dashboard.linkaccount команда не в дереве. Консоль проходит .requires, но execute отвечает players_only. Код из POST /api/auth/link-minecraft/start, 8 символов из ABCDEFGHJKLMNPQRSTUVWXYZ23456789, TTL 5 минут; ввод приводится toUpperCase. Это обратное направление к /dashboardregister: привязать уже существующий dashboard-аккаунт к нику, а не создать новый.
/list/list—neoessentials.list по соглашениюList online playersНет аргументов. С ванишем без neoessentials.vanish.see скрытые не показываются. При загруженном LuckPerms — строки по primary group (вес убывает, default всегда снизу); иначе одна серая «Players:». Консоль проходит PermissionValidator при OP 2.
/listkits/listkits [page]—neoessentials.kits.listList available kits (alias)Идентично /kits. Право neoessentials.kits.list. Экономическая цена kits.commandCosts.listkits списывается при каждом вызове, в том числе при листании страниц.
/loom/loom—neoessentials.loom по соглашениюOpen portable loomПортативный ткацкий станок, neoessentials.loom.
/mail/mail | /mail read [page] | /mail send <player> <message> | /mail sendtemp <player> <duration> <message> | /mail sendall <message> | /mail sendtempall <duration> <message> | /mail delete <id> | /mail clear [index|player [index]] | /mail clearall—neoessentials.mail по соглашениюManage mail messagesКорневой /mail и read/delete — neoessentials.mail; send — neoessentials.mail.send; sendtemp — sendtemp; sendall/sendtempall — соответствующие admin-узлы; clear своё — neoessentials.mail.clear, чужое — clear.others; clearall — clearall. <player> в send — StringArgumentType.word() плюс profile cache, офлайн с известным UUID проходит. sendall рассылает только онлайн-списку. Ящик — config/neoessentials/mail_data.json, не DataStore. Лимит 100 писем, 1000 символов, 9 на страницу, глобальный rate limit 10/мин (mailsPerMinute в поставке нет).
/me/me <target> <message>—neoessentials.chat.msgSend a private message (alias)Алиас /msg: отправляет личное сообщение, а не действие в общий чат. Использует те же проверки права neoessentials.chat.msg, mute, ignore и /msgtoggle.
/mem/mem—neoessentials.gcShow server memory info (alias)Алиас /gc, право neoessentials.gc.
/message/message <target> <message>—neoessentials.chat.msgSend a private message (alias)Полная копия /msg: тот же registerCommand в MsgCommand.java, те же проверки neoessentials.chat.msg.
/mob/mob <mob> [amount]—neoessentials.spawnmobSpawn entities (alias)Алиас /spawnmob без ветки [target] — заспавнить у другого игрока этой командой нельзя. Право neoessentials.spawnmob.
/modhistory/modhistory <player>—neoessentials.moderation.historyView a player's full moderation history (bans/mutes/kicks/warns)Онлайн, иначе кэш профилей — как PublicModerationEndpoint. Секции банов, мутов, киков и предупреждений, по 5 строк. Показывает причину, выдавшего, дату, активность записи и бессрочный срок. Право neoessentials.moderation.history.
/more/more [amount]—neoessentials.more по соглашениюFill held stack to maxТолько игрок, основная рука. Без amount — maxStackSize; иначе Integer 1–3456 (можно больше максимума стопки). Пустая рука — no_item. Консоль: дерево видно (p == null), execute — player_only.
/motd/motd | /motd set <message> | /motd clear | /motd reload | /motd broadcast | /motd profile list | /motd profile create <name> <message> | /motd profile delete <name> | /motd profile switch <name> | /motd profile info [name] | /motd rotation enable <intervalMinutes> | /motd rotation disable | /motd rotation next—neoessentials.motdView message of the dayКорень закрыт allowsAny: neoessentials.motd / motd.set / motd.broadcast / motd.reload / motd.profile / motd.rotation — достаточно одного, чтобы увидеть дерево. Голый /motd всё равно проверяет neoessentials.motd внутри. set/clear — motd.set; reload — motd.reload; broadcast — motd.broadcast (шлёт только игрокам с motd); ветка profile — motd.profile; rotation — motd.rotation (интервал Integer 1–10080). set и create: greedyString, & → §, плейсхолдеры {player}/{online}/{max}/{time} и PlaceholderAPI.
/msg/msg <target> <message>—neoessentials.chat.msgSend a private messageBrigadier регистрирует то же дерево ещё как /tell, /w, /message, /me и /pm (последнего нет в реестре команд мода). <target> — EntityArgument.player(), только онлайн. Корень закрыт neoessentials.chat.msg (консоль проходит). Себе писать нельзя. Если цель игнорирует отправителя — отказ, SocialSpy не срабатывает. Если у цели включён /msgtoggle — отказ, кроме OP 4 и neoessentials.chat.msgtoggle.bypass. Заглушённый отправитель тоже режется. LastMessageManager записывает пару только у получателя. Форматы: chat.messaging.msgFormatTo / msgFormatFrom, иначе lang.
/msgtoggle/msgtoggle—neoessentials.chat.msgtoggleToggle receiving private messagesАргументов on|off нет — только переключатель. То же дерево: /togglemsg и /mt (их нет в реестре). Регистрируется только при chatEnabled и commands.msgtoggle. Право neoessentials.chat.msgtoggle, OP 4 обходит. Состояние в памяти MsgToggleManager, на диск не пишется.
/mute/mute <target> [duration_or_reason]—neoessentials.chat.muteMute a player<target> — EntityArgument.player(), только онлайн. Корень закрыт neoessentials.chat.mute (консоль проходит). duration_or_reason — greedy: первое слово вида 30m/1h/1d/2w снимается как срок, остальное — причина; без такого слова вся строка — причина, мут бессрочный. Цель с neoessentials.chat.mute.exempt (hasPermissionExplicit) не мьютится. Отдельный literal silence копирует это дерево, в этой странице не заявлен.
/mutelist/mutelist—neoessentials.chat.muteList muted playersБез аргументов. Корень закрыт neoessentials.chat.mute. Лениво протухает истекшие через isMuted. Консоль допускается.
/n/n <message>—neoessentials.noticeSend a configurable server noticeАвтоматически ставит перед текстом красный префикс §c[Объявление] §7>> §r. Аргумент — greedyString; поддерживаются цветовые коды & и плейсхолдеры PlaceholderAPI от отправителя, поэтому сам текст можно оформить любым цветом. Доступ: neoessentials.notice либо OP уровня 2; консоль также проходит. Сообщение рассылается напрямую как системное и не попадает в обработчики обычного чата.
/near/near [radius]—neoessentials.near по соглашениюFind nearby playersТолько игрок. Радиус Integer 1–500, по умолчанию 100. Та же размерность, ваниш — попарно canViewerSeeVanishedPlayer. Клик /tp в подсказке только при neoessentials.teleport.tp. Консоль не работает.
/nearby/nearby [radius]—neoessentials.nearby по соглашениюFind nearby players (alias)Отдельное дерево, те же 1–500 / 100. Проверка — neoessentials.near, не neoessentials.nearby. Включается ключом commands.nearby независимо от commands.near.
/neoe/neoe | /neoe reload | /neoe config split|validate|repair|status | /neoe <command> [args]—neoessentials.neoe по соглашению каталог /helpRandom teleportation (alias)Длинная форма /neoessentials регистрируется отдельно, если commands.neoessentials включён, и повторяет то же дерево. Корень требует neoessentials.use (консоль всегда проходит). reload и вся ветка config — neoessentials.admin.reload. greedy-аргумент после корня маршрутизирует к другим командам мода. Help-каталог содержит ещё /neoe tpr|randomtp|randomteleport как алиасы случайного тп — это не отдельные slash-команды.
/nick/nick | /nick <nickname> | /nick reset | /nick off—neoessentials.nick по соглашениюChange your nicknameПраво neoessentials.nick. Ник 3–16 символов без цветовых кодов, шаблон ^[a-zA-Z0-9_&§#]{1,32}$ — кириллица и пробелы не проходят. Цвета требуют neoessentials.nick.color. off/reset как литералы и как greedy-строка снимают ник. Хранение: config/neoessentials/nickname_data.json, не DataStore. Чужой ник — отдельная /setnick (neoessentials.nick.others), эта страница её не забирает.
/nickname/nickname …—neoessentials.nickname по соглашениюChange your nickname (alias)redirect на /nick, только если включены и commands.nick, и commands.nickname. Право то же: neoessentials.nick (в реестре у алиаса написано neoessentials.nickname — это выведенный node, Brigadier его не проверяет).
/night/night—neoessentials.time.setSet time to nightСтавит 13000 во все миры. Право neoessentials.time.set.
/note/note <player> <text>—neoessentials.moderation.noteAdd a staff note to a player's record<text> обязателен (greedy). Первый note офлайн-игроку без уже существующих notes не резолвится — кэш профилей не смотрят. Право neoessentials.moderation.note.
/notes/notes <player>—neoessentials.moderation.notesView staff notes for a playerДо 5 записей, страниц нет. Право neoessentials.moderation.notes (отдельный от note).
/npcshop/npcshop [create <name> | remove | additem <shopId> <item> <buyPrice> <sellPrice> <quantity> | removeitem <shopId> <index> | list | info <shopId> | reload | respawn <shopId> | entitytype <shopId> <entityType> <ai>]—neoessentials.shop.npc.manageNPC entity shop managementВесь узел — OP 3 или neoessentials.shop.npc.manage; голый /npcshop — справка. <name> у create — greedyString (пробелы можно). <shopId> — UUID или однозначный префикс из /npcshop list. additem: <item> — word(), в листинг всегда пишется "minecraft:" + item без префикса minecraft:; buy/sell от −1 (−1 отключает сторону), quantity от 1. remove — ближайшая сущность-магазин в 5 блоках. Покупка в GUI требует neoessentials.shop.use (ПКМ — купить, ЛКМ — продать).
/nuke/nuke [target]—neoessentials.nuke по соглашениюRain TNT on a playerНе удаление сущностей. Без цели — все онлайн; с целью — один ник. Над каждым 5×5 сетка PrimedTnt (шаг 5, −10..10) на maxBuildHeight, fuse 80 тиков. Право neoessentials.nuke. Консоль без цели бомбит всех.
/online/online—neoessentials.listList online players (alias)Алиас /list, право neoessentials.list.
/pay/pay <player> <amount>—neoessentials.economy.paySend money to another playerПраво neoessentials.economy.pay (узел .requires плюс повторная проверка в execute). <amount> — DoubleArgumentType от 0.01, проценты вроде 10% Brigadier не примет. Подсказки имён — только онлайн, но с neoessentials.economy.pay.offline перевод уходит в профиль из кэша. Алиас /p регистрируется в том же PayCommand, отдельной команды в этом файле у него нет. Кулдаун в конфиге отсутствует: ConfigManager.getPayCooldownSeconds() всегда возвращает 0.
/payconfirmtoggle/payconfirmtoggle—neoessentials.payconfirmtoggle по соглашениюToggle payment confirmation promptsРегистрирует MiscItemCommands, не EconomyCommands. Право neoessentials.payconfirmtoggle. Только игрок. Флаг живёт в in-memory Set и с рестартом сбрасывается. /pay этот флаг не читает — см. knownIssues.
/paytoggle/paytoggle—neoessentials.economy.paytoggleToggle receiving paymentsneoessentials.economy.paytoggle (или OP 2). Только игрок: getPlayerOrException. Значение пишется сразу в коллекцию pay_toggles. Пока записи нет, действует economy.json → paytoggleDefault (в шаблоне true — платежи принимаются).
/permissions/permissions [reload | list groups | list users | info group <group> | info user <player> | check user <player> <permission> | check group <group> <permission> | search <pattern> | create group <group> | delete group <group> | rename group <oldName> <newName> | clone group <source> <newGroup> | debug <player> | group <group> setprefix <prefix> | group <group> setsuffix <suffix> | group <group> setpriority <priority> | group <group> getpriority | group <group> add <permission> | group <group> remove <permission> | group <group> clear | group <group> inherit add <inheritGroup> | group <group> inherit remove <inheritGroup> | group <group> addtemp <permission> <duration> | group <group> removetemp <permission> | group <group> listtemp | group <group> context add <contextKey> <permission> allow|deny | group <group> context remove <contextKey> <permission> | group <group> context list | user <player> setgroup <group> | user <player> add <permission> | user <player> remove <permission> | user <player> clear | user <player> addtemp <permission> <duration> | user <player> removetemp <permission> | user <player> listtemp | user <player> context add <contextKey> <permission> allow|deny | user <player> context remove <contextKey> <permission> | user <player> context list]—neoessentials.permissions.adminManage permissionsКорень без .requires и без .executes — голый /permissions Brigadier отвергает как неполный; каждая ветка сама проверяет свой узел (reload → neoessentials.permissions.reload, add группы → .group.permissions, setgroup → .user.groups и т.д.). Каталог /help показывает дерево по neoessentials.permissions.admin. Ветки с validateAdminPermission пропускают оператора уровня 2 ещё до PermissionAPI, даже при opsBypassPermissions: false. <prefix>/<suffix> — greedy (до 64 символов); <permission> у add/remove — greedy, у addtemp — string, у context — word; <duration> — одно слово вида 1d12h30m, не 1d 12h; setpriority принимает целое от −999 до 999. Модуль modules.permissionsEnabled и флаги commands.permissions / commands.pex читаются при регистрации: оба выключены — дерева нет вовсе.
/pex/pex [reload | list groups | list users | info group <group> | info user <player> | check user <player> <permission> | check group <group> <permission> | search <pattern> | create group <group> | delete group <group> | rename group <oldName> <newName> | clone group <source> <newGroup> | debug <player> | group <group> setprefix <prefix> | group <group> setsuffix <suffix> | group <group> setpriority <priority> | group <group> getpriority | group <group> add <permission> | group <group> remove <permission> | group <group> clear | group <group> inherit add <inheritGroup> | group <group> inherit remove <inheritGroup> | group <group> addtemp <permission> <duration> | group <group> removetemp <permission> | group <group> listtemp | group <group> context add <contextKey> <permission> allow|deny | group <group> context remove <contextKey> <permission> | group <group> context list | user <player> setgroup <group> | user <player> add <permission> | user <player> remove <permission> | user <player> clear | user <player> addtemp <permission> <duration> | user <player> removetemp <permission> | user <player> listtemp | user <player> context add <contextKey> <permission> allow|deny | user <player> context remove <contextKey> <permission> | user <player> context list]—neoessentials.permissions.adminManage permissions (alias)Это не имитация PermissionsEX: PermissionsCommand.register вешает то же дерево createRoot на литерал pex, если commands.pex включён. Класс FakePermissionsEXCommand с «фейковым» /pex в рантайм не регистрируется — вызов registerFakePexCommand ниоткуда не идёт.
/ping/ping [player]—neoessentials.ping по соглашениюCheck your pingБез аргумента — свой ping (консоль получит player=null из PermissionValidator.success() и уйдёт в latency() — не вызывайте без цели). Чужой: EntityArgument.player() (только онлайн) и neoessentials.ping.others (по умолчанию true). Качество — английские строки Excellent…Terrible, не из lang.
/placeholder/placeholder [list | stats | info <identifier> | test <text>]—neoessentials.admin.placeholdersInspect and test the NeoEssentials placeholder systemКорень закрыт neoessentials.admin.placeholders через validateAdminPermission (OP 2 и консоль проходят). Голый /placeholder — справка. <identifier> — word с автодополнением из реестра; <text> — greedy, в том числе со скобками {neoessentials_balance}. test берёт контекст только у самого исполнителя: аргумента игрока в дереве нет (вопреки javadoc класса). С консоли player == null, персональные токены остаются нераскрытыми. Команда не регистрируется при commands.placeholder: false.
/playtime/playtime [target]—neoessentials.playtime по соглашениюCheck player play timeЦель — word + онлайн-ник (getPlayerByName). Счётчик: Stats.PLAY_TIME плюс миллисекунды текущей сессии из sessionStart (кладётся в onPlayerJoin). Консоль без цели — player_only. Чужой — neoessentials.playtime.others.
/pong/pong—neoessentials.pong по соглашениюCheck your ping (alias)Только запись каталога /help (registerCommand в NeoEssentials.java). Commands.literal("pong") в исходниках нет — в автодополнении Brigadier команды не будет, /pong ничего не выполнит. Смотрите /ping.
/potion/potion clear | /potion add <effect> [duration] [amplifier]—neoessentials.potion по соглашениюEdit potion effects on held potion itemНе /effect: правит POTION_CONTENTS предмета в руке (potion / splash / lingering / tipped_arrow). duration 1–1000000 с default 30; amplifier 0–255 default 0. Корневого .executes нет. Только игрок. Право neoessentials.potion.
/powertool/powertool list | /powertool remove | /powertool <command>—neoessentials.item.powertoolBind commands to itemsПривязка по типу предмета в основной руке, не по слоту. list/remove/<command> требуют neoessentials.item.powertool внутри executes. Строка, начинающаяся с «@p », не биндится, а сразу выполняет команду по всем онлайн кроме вас (нужен neoessentials.command.target). Корневого executes нет. В дереве также ptool (commands.ptool) и powertooltoggle/ptt — в реестре справки их нет. Привязки живут в HashMap процесса и пропадают при рестарте.
/powertoollist/powertoollist—neoessentials.powertoollist по соглашениюList all active powertool bindingsТолько свои привязки, право neoessentials.powertoollist (не item.powertool). Пустой список — ошибка empty.
/pt/pt—neoessentials.item.powertoolBind commands to items (alias)Голый /pt — это paytoggle: PayToggleCommand регистрирует literal("pt").executes раньше PowertoolCommand. После слияния Brigadier /pt list, /pt remove и /pt <command> принадлежат powertool (neoessentials.item.powertool), не экономике. Не считайте подкоманды частью paytoggle.
/ptime/ptime | /ptime reset [target] | /ptime <time> [target]—neoessentials.ptime по соглашениюSet per-player time overrideКлиентский ClientboundSetTimePacket, серверное время не меняет. Bare — показать. reset снимает; <time> — sunrise/day/morning/noon/afternoon/sunset/night/dusk/midnight или ticks; «reset» в word тоже даёт −1. Чужой — ptime.others. Карта в памяти, onPlayerQuit стирает.
/ptlist/ptlist—neoessentials.powertoollistList all active powertool bindings (alias)Алиас /powertoollist, то же право.
/pwarp/pwarp <name>—neoessentials.teleport.pwarpTeleport to your player warpname обязателен, голого /pwarp нет. Семья команд не регистрируется, если warpSettings.allowPlayerWarps=false. После проверки своего player warp обработчик зовёт teleportToWarp — то есть серверный варп с тем же именем, не точку игрока.
/pwarps/pwarps—neoessentials.teleport.pwarp.listList your player warpsСписок только своих имён плюс счётчик к личному максимуму (∞ при unlimited). Чужие варпы не показывает.
/pweather/pweather | /pweather reset [target] | /pweather sun [target] | /pweather clear | /pweather storm [target] | /pweather rain—neoessentials.pweather по соглашениюSet per-player weather overrideКлиентские RAIN/THUNDER_LEVEL_CHANGE. clear и rain — синонимы sun/storm, но без ветки [target]. Чужой — pweather.others. Состояние в памяти, при выходе сбрасывается. Грома отдельно нет.
/r/r <message>—neoessentials.chat.replyReply to last private message (alias)Алиас /reply, тот же ReplyCommand.
/realname/realname <player>—neoessentials.realname по соглашениюFind player by nicknameБез аргумента — usage. Ищет онлайн: точный ник, затем никнейм без &-кодов, затем contains. Несколько совпадений печатает список (до 10). Офлайн не ищет. Право neoessentials.realname.
/recipe/recipe [item]—neoessentials.recipe по соглашениюShow/unlock recipe for an itemТолько игрок. Без item — предмет в основной руке. Иначе word → minecraft:path. awardRecipes всем рецептам с этим результатом. Перекрывает ванильный /recipe (ветки give/take больше нет).
/remove/remove <type> [radius]—neoessentials.remove по соглашениюRemove entities in radiusТолько игрок. type: all, items, drops, mobs, animals, monsters, arrows, xp, paintings, boats, minecarts, tnt. Радиус Integer 1–10000, по умолчанию 200. Игроков не трогает. Неизвестный type совпадёт с 0 удалений. Не путать с /rules remove.
/removenote/removenote <player> <noteId>—neoessentials.moderation.noteRemove a specific note by IDПрефикс 8 символов, как у removewarn. Право neoessentials.moderation.note.
/removewarn/removewarn <player> <warnId>—neoessentials.moderation.warnRemove a specific warning by ID<warnId> — word; достаточно префикса в 8 символов из /warnings. Право neoessentials.moderation.warn.
/rename/rename [<name>]—neoessentials.itemnameRename held item (alias)Алиас /itemname.
/renamehome/renamehome <oldname> <newname>—neoessentials.renamehome по соглашениюRename a homeВторая ветка с тем же шаблоном двух word и правом neoessentials.renamehome.others разбирает первый аргумент как <player>:<old>, но только среди онлайн. HomeCommands перед вызовом менеджера делает toLowerCase обоим именам, тогда как /sethome кладёт ключ как ввели.
/repair/repair [all]—neoessentials.item.repairRepair itemsТолько игрок, право neoessentials.item.repair. Без аргумента чинит предмет в основной руке (setDamageValue(0)) и всегда пишет успех, даже если рука пустая или предмет без прочности. /repair all чинит все повреждённые предметы в основном инвентаре, броне и второй руке; ответ содержит число реально починенных предметов.
/reply/reply <message>—neoessentials.chat.replyReply to last private messageТо же дерево вешается на /r. Цель берётся из LastMessageManager: туда попадает только тот, кому написали, не отправитель исходящего /msg. Цель должна быть онлайн; выход обоих сторон чистит карту. Право neoessentials.chat.reply, плюс те же mute / ignore / msgtoggle, что у /msg. Форматы: chat.messaging.replyFormatTo / replyFormatFrom.
/report/report <player> <reason>—neoessentials.moderation.reportReport a player for staff reviewТолько игрок, не консоль; себя нельзя. Цель: онлайн или кэш профилей. Узел neoessentials.moderation.report по умолчанию выдан всем. Онлайн-стафф с neoessentials.moderation.reports получает английскую строку в чат, жалоба всё равно пишется в reports.
/reports/reports—neoessentials.moderation.reportsView the pending report queueОчередь PENDING, до 8 строк, страниц нет. Право neoessentials.moderation.reports.
/rest/rest [target]—neoessentials.rest по соглашениюReset your sleep timer (prevent phantoms)Не голосование за пропуск ночи. resetStat(TIME_SINCE_REST) — сбрасывает таймер фантомов. Своё — neoessentials.rest (default true); чужой — rest.others. Консоль без цели — player_only.
/reviewreport/reviewreport <id> accept|dismiss [notes]—neoessentials.moderation.reportsAccept or dismiss a player reportВетки — литералы accept и dismiss, не свободное слово. <id> резолвится через findById (короткий префикс, если менеджер так ищет). Статусы REVIEWED / DISMISSED. Право neoessentials.moderation.reports.
/rg/rg define <id> | /rg claim <id> | /rg redefine <id> | /rg remove <id> | /rg delete <id> | /rg list | /rg tp <id> | /rg clearowners <id> | /rg clearmembers <id> | /rg info [id] | /rg addowner <id> <player> | /rg addmember <id> <player> | /rg delowner <id> <player> | /rg delmember <id> <player> | /rg flag <id> list | /rg flag <id> <flag> <value> | /rg flag <id> clear <flag> [value]—neoessentials.rg по соглашению каталог /helpCreate a region from your current selectionhelpCatalogOnly: NeoEssentials не строит Brigadier для /rg. Дерево принадлежит моду приватов — Farmstead Claims («farmstead_claims») или исходному RegionGuard («regionguard»); эти 17 строк, а также /bb <player>, попадают в /help только если на старте загружен farmstead_claims или regionguard. В /help каждая ветка /rg получает своё переведённое описание (например, define, list и flag clear), а не общий текст для корня /rg. Без мода /rg и /bb в каталоге нет и NE их не регистрирует. Права и поведение — у мода приватов, не у узлов neoessentials.rg.
/rtoggle/rtoggle | /rtoggle on | /rtoggle off | /rtoggle <target> | /rtoggle <target> on | /rtoggle <target> off—neoessentials.rtoggle по соглашениюToggle /r reply-to-sender directionКуда отвечает /r: enabled (по умолчанию) — последнему, кому писали вы; disabled — последнему, кто писал вам. Чужой — rtoggle.others. Консоль без цели — player_only. Состояние в памяти процесса.
/rules/rules | /rules <page> | /rules add <rule> | /rules remove <number> | /rules edit <number> <newText> | /rules insert <number> <rule> | /rules clear | /rules reload—neoessentials.rules по соглашениюView server rulesПросмотр — neoessentials.rules (default true), по 10 строк, page Integer ≥ 1. Админ-ветки — rules.admin. add/edit/insert: greedyString, & → §. Нумерация с 1. Файл config/neoessentials/rules_data.json; устаревший rules.json мигрирует сам. PermissionValidator (консоль = OP 2).
/scoreboard/scoreboard [toggle | reload | enable | disable | info | preview | board list | set title <board> <text> | set line <board> <index> <text> | player <target> title <text> | player <target> line <index> <text> | player <target> reset | group <group> title <text> | group <group> line <index> <text> | group <group> reset]—neoessentials.scoreboard.adminManage the sidebar scoreboardКорень без .requires — голый `/scoreboard` печатает справку кому угодно; `toggle` закрыт отдельно neoessentials.scoreboard.toggle и только игроку; остальные ветки — neoessentials.scoreboard.admin (консоль проходит всегда); `<target>` — EntityArgument.player, только онлайн; `<board>`/`<group>` — word; `<text>` greedy; `<index>` Integer 0–14. `set`/`player`/`group` и `enable`/`disable` живут в памяти: `/scoreboard reload` и `/neoe reload` возвращают всё из scoreboard.json.
/seen/seen <player>—neoessentials.seen по соглашениюCheck when player was last seenБез аргумента корневой .executes отвечает usage и возвращает 0. Ищет онлайн по точному нику, иначе case-insensitive по seen_data.json (UUID → активность). Консоль: PermissionValidator, нужен source.hasPermission(2). Файл config/neoessentials/seen_data.json.
/sell/sell [hand [amount] | inventory|all|invent | <item> [amount]]—neoessentials.sell по соглашениюSell items for moneyКорень — neoessentials.sell. Голый /sell и ветка hand дополнительно требуют neoessentials.sell.hand; inventory/all/invent — neoessentials.sell.bulk. <item> — StringArgumentType.word() (пробелы нельзя, двоеточие можно). Множитель — config.json → economy.sellMultiplier плюс тиры neoessentials.economy.sellmultiplier.N. Переименованные предметы (CUSTOM_NAME) не продаются, пока economy.allowSellNamedItems не true.
/sethome/sethome <name> | /sethome confirm | /sethome deny—neoessentials.teleport.home.setSet your home locationГолого /sethome нет, имя обязательно. confirm и deny — соседние литералы корня, имя живёт в pending-map, не в командной строке. Перезапись существующего дома всегда спрашивает подтверждение (это не ключ requireConfirmationForDelete). Алиас createhome — только без конфликтующего мода. Имя: ^[a-zA-Z0-9_-]+$, до 20 символов, регистр как ввели. При флаге teleport-escape deny в Farmstead Claims (или исходном RegionGuard) дом в такой зоне не создаётся.
/setjail/setjail <name> [sphere <radius> | cuboid]—neoessentials.moderation.setjailSet jail locationТолько игрок. Голый /setjail <name>: WorldEdit cuboid → иначе сфера в ногах с jailSettings.defaultSphereRadius. sphere <radius> — Double ≥ 1.0 в текущей позиции. cuboid требует выделение WE. Право neoessentials.moderation.setjail.
/setpwarp/setpwarp <name>—neoessentials.teleport.pwarp.createCreate a player warpЛимит: meta neoessentials.warps, затем neoessentials.warp.limit.<1..100>, иначе warpSettings.maxPlayerWarps (по умолчанию 3). neoessentials.warp.limit.unlimited снимает потолок. Повтор того же имени не перезаписывает, а отвечает already_exists. Кулдаун warpSetCooldown не тратится, если создание отвергнуто.
/setspawn/setspawn [<pos>]—neoessentials.teleport.spawn.setSet spawn locationБез pos — текущие ноги. pos — BlockPosArgument, загруженный чанк. Не регистрируется, если spawnSettings.allowSpawnSet=false. Право neoessentials.teleport.spawn.set.
/setwarp/setwarp <name> [<pos>]—neoessentials.teleport.warp.createCreate a warpБез pos ставит варп в ногах. pos — BlockPosArgument (целые, ~ допустимы, чанк должен быть загружен). Точка сохраняется и используется строго в этих координатах: проверка безопасности не ищет замену и не меняет варп. Те же литералы: createwarp, addwarp. Потолок серверных варпов — поле maxWarps=50 в записи DataStore коллекции warps, не ключ config.json. Игрок-only.
/setworth/setworth <item> <price|remove>—neoessentials.setworth по соглашениюSet the sell price of an itemneoessentials.setworth. <item> — ResourceLocationArgument: diamond и minecraft:diamond оба валидны; литерала hand нет, строка hand нормализуется в minecraft:hand и тогда берётся основная рука. <price> — DoubleArgumentType от 0; 0 в WorthManager.setPrice удаляет цену так же, как литерал remove. Пишет в коллекцию item_worth сразу, /neoe reload для этого не нужен.
/showkit/showkit <kit>—neoessentials.showkit по соглашениюPreview kit contents without claimingАргумент — word, поэтому /showkit starter,vip (без пробелов) разобьётся по запятой и покажет несколько китов. Per-kit право не проверяется: достаточно neoessentials.showkit. Ничего не выдаёт. Регистрируется из MiscItemCommands, не из KitCommands.
/sign/sign | /sign <line> <text> | /sign clear [<line>]—neoessentials.sign по соглашениюEdit sign textТабличка под прицелом. Без аргументов — показать 4 строки. <line> 1–4. clear без номера чистит все строки.
/skull/skull [<player>]—neoessentials.skull по соглашениюGet a player head itemГолова с профилем: без аргумента — своя, иначе word-ник (можно офлайн, если есть в profile cache; иначе GameProfile со случайным UUID и этим именем). Только себе в инвентарь.
/smite/smite [target]—neoessentials.lightningStrike lightning (alias)Алиас /lightning, право neoessentials.lightning.
/smithing/smithing—neoessentials.smithing по соглашениюOpen portable smithing tableПортативный стол кузнеца, neoessentials.smithing.
/socialspy/socialspy—neoessentials.chat.socialspySpy on private messagesБез on|off. То же дерево: /ss и /spy (в реестре нет). Право neoessentials.chat.socialspy. Состояние — ConcurrentHashMap в памяти, рестарт сбрасывает. Рассылка идёт только после успешного /msg|/reply; отправитель с neoessentials.chat.socialspy.exempt не мониторится. Формат: chat.messaging.socialspyFormat.
/spawn/spawn—neoessentials.teleport.spawnTeleport to spawnАргумента <player> нет — чужого на спавн этой командой не увезти. Кулдаун spawnSettings.spawnCooldown пишется в lastSpawnUsage до teleportToSpawn: неудачный телепорт всё равно сжигает ожидание. spawninfo/spawni в инвентарь этой страницы не входят.
/spawner/spawner <mob>—neoessentials.spawner по соглашениюChange a spawner typeТолько игрок, луч 6 блоков, блок должен быть SPAWNER. Кроме neoessentials.spawner нужен spawner.<mob> или spawner.*. id без «:» → minecraft:. Меняет setEntityId, дропов нет.
/spawnmob/spawnmob <mob> [amount] [target]—neoessentials.spawnmob по соглашениюSpawn entitiesamount Integer 1–100, по умолчанию 1. Без target — у ног отправителя (консоль — player_only). Чужой — spawnmob.others. finalizeSpawn COMMAND. id без «:» → minecraft:.
/speed/speed <speed> [target] | /speed walk <speed> [target] | /speed fly <speed> [target]—neoessentials.speed по соглашениюSet walk or fly speedrequires: p == null || узел — консоль и командный блок проходят без OP. Цель — word, только онлайн getPlayerByName. Float 0–10 → Minecraft 0.0–1.0 (cap 1.0). Голый /speed <n> смотрит, летит ли цель сейчас (abilities.flying), а не mayfly. Walk — MOVEMENT_SPEED; fly — Abilities.flyingSpeed + onUpdateAbilities. Чужой — speed.others.
/stonecutter/stonecutter—neoessentials.stonecuttingOpen portable stonecutter (alias)Алиас /stonecutting. Право neoessentials.stonecutting.
/stonecutting/stonecutting—neoessentials.stonecutting по соглашениюOpen portable stonecutterТолько игрок (консоль — player_only). Виртуальное меню stillValid=true, физического блока нет. Право neoessentials.stonecutting. Дополнительно регистрируется литерал stonecut (в каталоге /help его нет — не отдельная claimed-команда).
/storm/storm—neoessentials.weatherSet weather to stormЯрлык /weather storm без длительности, право neoessentials.weather.
/sudo/sudo <target> <command> | /sudo * <command> | /sudo ** <command>—neoessentials.sudo по соглашениюRun a command as another playerЛитералы * и ** отдельные (word() не ест «*»). * — все кроме отправителя; ** — все включая. command — greedyString; префикс c: шлёт чат через ServerChatEvent (форматтер/мут/антиспам), иначе performPrefixedCommand без ведущего /. Себя по имени нельзя (sudo.self); exempt молча пропускается в bulk и блокирует одиночную цель, если отправитель — игрок (консоль обходит exempt).
/suicide/suicide | /suicide confirm—neoessentials.suicide по соглашениюKill yourselfТолько игрок. Первый вызов ставит окно 10 с; confirm убивает DamageTypes.GENERIC_KILL (не PvP). Кулдаун 30 с после успеха. Creative/Spectator — invalid_gamemode. Не алиас ванильного /kill.
/sun/sun—neoessentials.weatherSet weather to clearЯрлык /weather sun без длительности, право neoessentials.weather.
/tablist/tablist [reload | enable | disable | preview | info | animations list | independent [on|off] | layout [info|sort] | set <header|footer> <text> | player <target> <header|footer> <text> | player <target> nametag <prefix|suffix> <text> | player <target> reset | group <group> <header|footer> <text> | group <group> nametag <prefix|suffix> <text> | group <group> reset | proxy status | proxy setserver <server> <count> | fakeplayer <list|refresh> | fakeplayer add <id> <display> | fakeplayer remove <id>]—neoessentials.tablist.adminManage the player list header/footer/entriesВся команда целиком закрыта одним узлом neoessentials.tablist.admin (консоль проходит всегда); `<target>` — только онлайн-игрок; `<text>` и `<display>` — greedy-аргументы, то есть забирают весь остаток строки; всё, что задано через `set`, `player`, `group` и `fakeplayer add`, живёт только в памяти и теряется при `/tablist reload`, `/neoe reload` и рестарте.
/tell/tell <target> <message>—neoessentials.chat.msgSend a private message (alias)Полная копия /msg (ванила перекрывается тем же деревом).
/tempban/tempban <player> <duration> [reason]—neoessentials.moderation.tempbanTemporarily ban a player<duration> — word, не greedy: «30m», «2h», «1d», не «1h 30m». Разбор BanManager.parseDuration; 0 или неизвестный формат → invalid_duration. Цель как у /ban (онлайн, иначе кэш). Право neoessentials.moderation.tempban. enableTempBans: false блокирует выдачу.
/tempbanip/tempbanip <ip> <duration> [reason]—neoessentials.moderation.tempbanipTemporarily ban an IP addressТот же IPv4-фильтр, что /banip, та же <duration>-word, что /tempban. Кикает онлайн с этим IP. Хранится expireTime в ip_bans. Право neoessentials.moderation.tempbanip.
/thunder/thunder—neoessentials.weatherSet weather to thunderЯрлык /weather thunder без длительности, право neoessentials.weather.
/time/time | /time set <value> | /time add <value> | /time <value>—neoessentials.time по соглашениюGet or set world timeBare — текущие тики мира источника. set/add и shorthand value требуют neoessentials.time.set. Имена: sunrise=23000, day/morning=1000, noon=6000, afternoon=9000, sunset=12000, night/dusk=13000, midnight=18000, либо Long. Пишет setDayTime во ВСЕ измерения. Перекрывает ванильный /time.
/togglejail/togglejail <player>—neoessentials.moderation.jailToggle a player's jail stateТолько онлайн. Если уже в тюрьме — unjail; иначе сажает в getAllJailLocations().getFirst() с причиной «Toggled by staff» без срока. Пустой список локаций → ошибка. Право neoessentials.moderation.jail.
/togglevotebroadcast/togglevotebroadcast—neoessentials.votifier.togglebroadcastOpt out of vote broadcastsТолько игрок плюс neoessentials.votifier.togglebroadcast (из консоли не работает). Отключает лишь получение чужих оповещений: собственный голос игрока по-прежнему разошлёт броадкаст всем остальным.
/top/top—neoessentials.teleport.topTeleport to highest blockСканирует столбец от maxBuildHeight вниз только выше текущей Y: из пещеры вынесет на поверхность над собой, ниже себя не ищет. Без solid+air — ошибка no_solid_block.
/tp/tp <target> | /tp <player> <target> | /tp <x> <y> <z>—neoessentials.teleport.tpTeleport to a player or locationИгроки — EntityArgument.player() (только онлайн). Координаты — три DoubleArgumentType, без ~ и без мира. Ветки /tp <player> <x> <y> <z> в дереве нет. Себя к себе отклоняет. Пишет /back и зовёт player.teleportTo напрямую, минуя warmup TeleportUtil.
/tpa/tpa <player>—neoessentials.teleport.request.tpaRequest to teleport to a playerplayer — EntityArgument.player(), только онлайн. Себя отклоняет. Цель с выключенным tptoggle недоступна, если у отправителя нет neoessentials.teleport.tpo. У цели с tpauto запрос не создаётся — телепорт сразу. После /tpaccept запрос тоже переносит сразу, точно к текущей позиции цели: без warmup и без поиска соседней «безопасной» точки. Если посадка попадает в приват Farmstead Claims (или исходного RegionGuard) с teleport-escape deny, перенос отменяется. Одновременно одна исходящая заявка (sentRequests).
/tpaall/tpaall [<target>]—neoessentials.tpaall по соглашениюSend tpa-here to all online playersБез аргумента хаб — отправитель; <target> (онлайн, word) требует neoessentials.tpaall.others. Каждому онлайн кроме хаба шлётся TPAHERE, пропуская тех, у кого tptoggle выключен. Из-за sentRequests на UUID отправителя реально уходит только первый успешный запрос.
/tpaccept/tpaccept—neoessentials.teleport.request.acceptAccept a teleport requestБез имени игрока: принимается единственная входящая заявка (pendingRequests ключ — UUID цели). Выбрать из очереди нельзя.
/tpahere/tpahere <player>—neoessentials.teleport.request.tpahereRequest a player to teleport to youТа же мгновенная схема, что /tpa, тип TPAHERE: при accept едет цель, не отправитель, точно к текущей позиции отправителя. Назад (/back) пишется тому, кого реально двигают.
/tpall/tpall—neoessentials.teleport.admin.tpallTeleport all players to youВсех онлайн кроме себя к ногам. Право neoessentials.teleport.admin.tpall. Консоль не проходит: нужен игрок. Каждому пишется /back.
/tpauto/tpauto | /tpauto on|off | /tpauto <target> | /tpauto <target> on|off—neoessentials.tpauto по соглашениюAuto-accept all teleport requestsГолый вызов переключает себя. Литералы on/off важнее ника: игрока on этой командой не выбрать. Чужой target — neoessentials.tpauto.others. Состояние в ConcurrentHashMap, после рестарта все снова выключены. Не обходит tptoggle: при включении на выключенный toggle приходит предупреждение.
/tpcancel/tpcancel—neoessentials.teleport.request.cancelCancel your teleport requestСнимает свою исходящую заявку. Аргументов нет.
/tpdeny/tpdeny—neoessentials.teleport.request.denyDeny a teleport requestОтклоняет ту же единственную входящую заявку. Аргументов нет.
/tphere/tphere <player>—neoessentials.teleport.tphereTeleport a player to youEntityArgument.player(), только онлайн. /back пишется цели. Исполнитель обязан быть игроком (getPlayerOrException).
/tpo/tpo <player>—neoessentials.teleport.tpoTeleport override (bypass tptoggle)ServerAdminCommands: word, только онлайн через getPlayerByName, обход tptoggle, право neoessentials.teleport.tpo, /back не пишется. DirectTeleportCommands при commands.tpo регистрирует второй ребёнок tpo → argument("player") с правом neoessentials.teleport.admin.tpo и зовёт teleportToOfflinePlayer (lastLocation из PlayerData). Какой узел съест строку /tpo Steve — см. knownIssues.
/tpoffline/tpoffline <player>—neoessentials.teleport.tpofflineTeleport to offline player's last positionword, не EntityArgument: ник офлайн-игрока проходит. Если он онлайн — обычный teleportTo на живую сущность. Офлайн — ванильный playerdata NBT (Pos, Rotation, Dimension) через usercache; нет профиля или нет Pos — not_found / no_data. /back не пишется. Мир из Dimension, иначе overworld.
/tpohere/tpohere <player>—neoessentials.teleport.tpohereBring player here overrideword + онлайн getPlayerByName. Привозит цель, игнорируя tptoggle. /back цели не пишется. Консоль отвергается (player_only).
/tppos/tppos <coordinates>—neoessentials.teleport.tpposTeleport to coordinatesVec3Argument.vec3(): можно ~ ~ ~ и относительные смещения, в отличие от тройки double у /tp. Мир не меняется. Пишет /back.
/tpr/tpr [<locationName>]randomtp, randomteleportneoessentials.teleport.tprRandom teleportationБез имени берётся randomTeleportSettings.defaultLocation (шаблон {world}). При mode=gui голый /tpr открывает биом-GUI, а /tpr <locationName> GUI обходит. Алиасы rtp, randomtp, randomteleport — те же деревья. Под /neoe и /neoessentials висят голые tpr|rtp|randomtp|randomteleport без locationName (это каталог /neoe, не эта страница). Именованный центр ставит /settpr <locationName> (сюда не заявлена). Кулдаун randomTeleportSettings.cooldown, warmup тот же teleportDelay.
/tptoggle/tptoggle | /tptoggle on|off | /tptoggle <target> | /tptoggle <target> on|off—neoessentials.tptoggle по соглашениюToggle teleport request acceptanceПо умолчанию приём включён (нет записи = true). Чужой target — neoessentials.tptoggle.others. Тоже только в памяти. Закрывает /tpa, /tpahere и /tpaall, не закрывает /tp, /tphere, /tpall, /tpo, /tpohere.
/trash/trash—neoessentials.item.disposeDispose of items (alias)Только открытие GUI, без веток confirm|cancel. Право neoessentials.item.dispose.
/tree/tree <type>—neoessentials.tree по соглашениюGrow a tree at look targetТолько игрок, луч 20 блоков, сажает на блок выше попадания. Типы: oak, birch, spruce, jungle, acacia, darkoak, mangrove, cherry, azalea, bigoak, mega_spruce, mega_jungle. Право neoessentials.tree.
/unban/unban <player>—neoessentials.moderation.unbanUnban a playerИмя ищется в активных банах, затем в кэше профилей. Снимает по UUID, пишет unbannedBy/unbannedAt, запись остаётся в той же коллекции player_bans с active: false. Право neoessentials.moderation.unban.
/unbanip/unbanip <ip>—neoessentials.moderation.unbanipUnban an IP addressСнимает активный IP-бан, архивирует с unbannedBy. Автодополнение — текущие ключи ip_bans. Право neoessentials.moderation.unbanip.
/unfreeze/unfreeze <player>—neoessentials.moderation.unfreezeUnfreeze a playerСначала ищет в списке замороженных (офлайн тоже), иначе онлайн. Право neoessentials.moderation.unfreeze.
/unfreezeall/unfreezeall—neoessentials.moderation.unfreezeallUnfreeze all playersСнимает всех в freezes, в том числе офлайн. Право neoessentials.moderation.unfreezeall.
/unignore/unignore <target>—neoessentials.chat.unignoreUnignore a playerТо же дерево: /unblock. Корень закрыт neoessentials.chat.unignore; execute всё ещё проверяет neoessentials.chat.ignore — нужны оба узла. Цель должна быть онлайн. Если ника нет в списке — ошибка.
/unjail/unjail <player>—neoessentials.moderation.unjailRelease a player from jailОнлайн или кэш профилей. Телепорт на originalLocation, если она была записана (онлайн на момент посадки). Право neoessentials.moderation.unjail.
/unlimited/unlimited | /unlimited list [target] | /unlimited clear [target] | /unlimited <item> [target]—neoessentials.unlimited по соглашениюToggle unlimited item useBare и list печатают набор id. clear снимает всё. <item> тоглит id (minecraft: префикс или hand — id из руки отправителя). Чужой — unlimited.others. Набор в памяти, onPlayerQuit стирает. Пополнение стопки делает обработчик использования предмета.
/unmute/unmute <target>—neoessentials.chat.muteUnmute a playerСнова EntityArgument.player() — снять мут с офлайн-игрока командой нельзя, хотя запись живёт в mutes. Корень закрыт neoessentials.chat.mute. Регистрация пропускается, если чат или commands.unmute выключены.
/unvanish/unvanish [player]—neoessentials.moderation.vanishDisable vanish modeПринудительно выключает. Без аргумента — себе; чужой — vanish.others. Право корня neoessentials.moderation.vanish. Цель только онлайн.
/v/v [player]—neoessentials.moderation.vanishToggle vanish mode (alias)Полная копия /vanish, не Brigadier-redirect. Регистрируется вместе с vanish, отдельного commands.v нет.
/vanish/vanish [player]—neoessentials.moderation.vanishToggle vanish modeБез аргумента — себе (только игрок). Чужой <player> закрыт neoessentials.moderation.vanish.others, цель только онлайн. Корень — neoessentials.moderation.vanish. Переключатель: повторный вызов снимает ваниш. Состояние пишется в vanishes. /v копирует это дерево, если включён commands.vanish.
/vanishlist/vanishlist—neoessentials.moderation.vanishlistList vanished playersОфлайн, но ещё в vanishes, показывается UUID. Право neoessentials.moderation.vanishlist.
/vault/vault [info | convert <from> <to>]—neoessentials.vault.adminNeoEssentials Vault API info and managementРегистрация только если modules.vaultEnabled и commands.vault. .requires: ванильный OP уровня 3 **или** neoessentials.vault.admin (для консоли UUID нет, остаётся hasPermission(3)). Голый /vault равен info. convert сравнивает имена провайдеров без пробелов (case-insensitive) и требует минимум двух зарегистрированных VaultEconomy. Узел neoessentials.vault.admin в PermissionRegistry не объявлен — без OP 3 его нужно выдать явно, registry-default его не даст.
/vote/vote—neoessentials.votifier.voteShow vote site linksКорень требует neoessentials.votifier.vote (консоль проходит). Печатает пары ключ/значение из votifier.json → voteLinks обычным текстом (§e<название>§7: §f<ссылка>) — ссылки не кликабельные, цветовые коды и градиенты внутри voteLinks не обрабатываются; при пустом или отсутствующем voteLinks отвечает «No vote links are configured».
/voteparty/voteparty—neoessentials.votifier.voteShow vote party progressТот же узел, что /vote: neoessentials.votifier.vote. Счётчик общесерверный и кумулятивный, а не личный вклад игрока; при voteParty.enabled = false команда всё равно отвечает, просто показывает замороженное значение.
/votes/votes [player]—neoessentials.votifier.voteShow vote totalsБез аргумента показывает статистику отправителя команды (из консоли это игрок с именем «Server»). Отдельного права на чужую статистику нет — любой с neoessentials.votifier.vote видит счётчик любого ника; автодополнение предлагает только онлайн-игроков, но принимается любое слово, и неизвестный ник молча покажет 0 вместо ошибки.
/votifier/votifier reload | /votifier genkeys | /votifier testvote <site> [player]—neoessentials.votifier.adminManage the Votifier vote listenerКорень требует neoessentials.votifier.admin (консоль проходит). Без подкоманды команда не выполняется (у корневого узла нет .executes) и отдаёт подсказку по синтаксису. reload сбрасывает кеш всех конфигов мода, но не перезапускает сокет слушателя; genkeys ничего не генерирует, а только печатает инструкцию; testvote выдаёт настоящую награду и засчитывает голос в статистику и в vote party.
/w/w <target> <message>—neoessentials.chat.msgSend a private message (alias)Полная копия /msg (ванила перекрывается тем же деревом).
/warn/warn <player> [reason]—neoessentials.moderation.warnIssue a warning to a playerБез причины — «No reason given.». UUID: онлайн, иначе уже существующие warns (кэш профилей не используется — первого варна офлайн-игроку без истории нет). Право neoessentials.moderation.warn.
/warnings/warnings <player>—neoessentials.moderation.warningsView warnings for a player<player> обязателен. Печатает до 5 записей, листания нет. Право neoessentials.moderation.warnings.
/warp/warp | /warp <name> | /warp <name> <target>—neoessentials.teleport.warpTeleport to a warpГолый /warp печатает первую страницу списка (20 имён). Аргумент name — StringArgumentType.word(), отдельной ветки <page> нет: /warp 2 ищет варп с именем 2, а не страницу 2. Чужого игрока (только онлайн, getPlayerByName) везёт узел с правом neoessentials.teleport.warp.others. Корень пропускает и neoessentials.teleport.warp, и neoessentials.teleport.warp.list; сам телепорт всё равно требует teleport.warp. При perWarpPermission нужен ещё neoessentials.warps.<name>.
/warpinfo/warpinfo <warp>—neoessentials.warpinfo по соглашениюShow info about a warpПечатает имя, мир и координаты серверного варпа (getLocationString). Player warps не показывает. Право neoessentials.warpinfo. Регистрируется отдельно (registerWarpInfoCommand), не внутри WarpCommands.register.
/warps/warps [<page>]—neoessentials.teleport.warp.listList all warpspage — IntegerArgumentType.integer(1). Регистрация завязана на commands.listwarps, не на commands.warps. Алиасы: warplist, listwarps. Право neoessentials.teleport.warp.list.
/weather/weather sun|clear|rain|storm|thunder [duration]—neoessentials.weather по соглашениюSet world weatherduration Integer 1–1000000 секунд; 0 в коде → 6000 тиков (5 мин). clear=sun, rain=storm. Только измерения с hasSkyLight (Незер/Энд пропускаются). Перекрывает ванильный /weather.
/whereami/whereami [player]—neoessentials.getposGet your current position (alias)Алиас /getpos, право neoessentials.getpos.
/whisper/whisper <target> <message>—neoessentials.chat.msgSend a private message (alias)В NeoEssentials.java команда объявлена в реестре, но MsgCommand.register её не вызывает — литерала Commands.literal("whisper") в исходниках нет. В автодополнении Brigadier её не будет, пока её не начнут регистрировать рядом с msg/tell/w/message/pm.
/who/who—neoessentials.listList online players (alias)Алиас /list, право neoessentials.list.
/whois/whois <player>—neoessentials.whois по соглашениюGet player informationКорневого .executes нет. Две ветки: EntityArgument.player() (онлайн) и word playername. Offline-ветка вызывает getOfflinePlayerSeenInfo, который всегда Optional.empty() — офлайн-ник даст player_not_found. UUID/координаты/IP только при neoessentials.whois.detailed. Узел whois по умолчанию false. Не путать с /info.
/workbench/workbench—neoessentials.craftingOpen portable crafting tableАлиас /crafting. Право neoessentials.crafting. В каталоге объявлен с этим узлом явно.
/world/world | /world <dimension> [target]—neoessentials.world по соглашениюTeleport to a world/dimensionBare — список dimension().location(). Телепорт на shared spawn измерения; путь или полный id, case-insensitive. Чужой — world.others. Консоль без цели — player_only.
/worth/worth [hand [amount] | <item> [amount]]—neoessentials.worth по соглашениюCheck the sell value of an itemneoessentials.worth; без аргументов и /worth hand — предмет в основной руке (qty = размер стека, если amount не задан). Ветка <item> — greedyString: хвост-число читается как количество («diamond 64», «thermal:copper_ingot 16»), иначе qty = 1. Команда не регистрируется, если modules.economyEnabled выключен или commands.worth = false.
/xp/xp | /xp set <amount> | /xp give <amount>—neoessentials.expManage player experience (alias)Урезанный алиас /exp: те же права neoessentials.exp / exp.set / exp.give, но нет show и нет [target] на set/give — чужой XP этой командой не выдать. Ванильный /xp перекрыт.