Команда //undo является одной из ключевых функций плагина WorldEdit, позволяющей отменить последнее выполненное действие. Это незаменимый инструмент для безопасного редактирования мира, который даёт возможность быстро исправить ошибки, экспериментировать с постройками и не бояться случайных разрушений.
Базовый синтаксис команды //undo
//undo [количество] [игрок]
[количество] (не обязательно) — количество отмен, которые нужно выполнить
[игрок] (не обязательно) — ник игрока, команды которого нужно отменить
Команда отменяет последнее действие WorldEdit, выполненное вами или указанным игроком. Поддерживается множественная отмена через ввод количества необходимых отмен.
Также эту команду можно вводить с одним слешем:
/undo [количество] [игрок]
Права для команды
Требуемые права доступа:
worldedit.history.undo
или
worldedit.history.undo.self
Как работает система отмены
WorldEdit ведёт историю действий для каждого игрока в отдельном буфере. Каждое изменение региона, установка блоков, копирование или вставка записывается как отдельная операция, которую можно отменить.
По умолчанию история хранит последние 15 действий. Это значение можно изменить в конфигурации плагина через параметр max-history-size.
Отмена действий другого игрока
Администраторы могут отменять действия других игроков, указав их никнейм:
//undo Notch
Для использования этой функции требуется право worldedit.undo.other. Будьте осторожны: отмена чужих действий может повлиять на работу других игроков на сервере.
Повторное выполнение: команда //redo
Если вы отменили действие по ошибке, его можно вернуть с помощью команды //redo:
//redo [игрок]
Команда работает аналогично //undo, но в обратном порядке — возвращает отменённые изменения.
Ограничения и особенности
- Размер истории: Количество сохраняемых действий ограничено настройками сервера
- Перезагрузка: При перезагрузке сервера история отмены сбрасывается
- Производительность: Отмена очень больших операций может занять время и создать нагрузку
Примеры использования
Отмена последнего действия
//undo
Отменяет последнее выполненное вами действие WorldEdit.
Многократная отмена
//undo 5
Отменяет 5 последних действий
Отмена действия другого игрока
//undo PlayerName
Администратор отменяет последнее действие указанного игрока.
Возврат отменённого действия
//redo
Отменяет отмену (повторяет последнее действие)
Интеграция с FastAsyncWorldEdit
В форке FastAsyncWorldEdit система отмены обладает дополнительными преимуществами:
- Асинхронная обработка: Отмена выполняется в фоновом режиме без лагов
- Экономия памяти: Оптимизированное хранение истории изменений
- Сохранение между перезагрузками: При включённой опции история не сбрасывается
- Пакетная отмена: Возможность отменять несколько операций одной командой
Для включения сохранения истории между перезагрузками добавьте в конфигурацию FAWE: history: { persistent: true }
Решение распространённых проблем
Команда //undo не работает: «No permission»
Причина: Отсутствие права worldedit.undo у игрока.
Решение: Выдайте право через менеджер привилегий (LuckPerms, PermissionsEx) или проверьте конфигурацию WorldEdit.
Отмена не возвращает мир в исходное состояние
Причина: После выполнения команды мир был изменён другими плагинами или игроками.
Решение: WorldEdit отменяет только свои действия. Убедитесь, что между командой и отменой не было сторонних изменений.
Сервер зависает при отмене большой операции
Причина: Синхронная обработка в стандартном WorldEdit при работе с большими объёмами данных.
Решение: Установите FastAsyncWorldEdit для асинхронной обработки или разбейте операцию на меньшие части.
История отмены сбрасывается после перезагрузки
Причина: По умолчанию WorldEdit не сохраняет историю между сессиями.
Решение: В FAWE включите опцию persistent: true в конфигурации истории.
Рекомендации по безопасному использованию
- Тестируйте команды: Перед масштабными изменениями проверяйте действия на малой области
- Используйте //undo сразу: Чем больше действий выполнено после ошибки, тем сложнее её исправить
- Настраивайте лимиты: Ограничьте размер истории через
max-history-size для экономии памяти
- Резервное копирование: Для критически важных изменений создавайте снапшоты мира
Не полагайтесь только на //undo при работе с важными данными. Регулярное резервное копирование мира — единственный надёжный способ защиты от потери прогресса.
Связанные команды
Вопросы и ответы
Как отменить команду или последнее действие в WorldEdit?
Используйте команду //undo — она отменяет последнее выполненное вами действие. Для отмены нескольких действий подряд выполните команду несколько раз.
Можно ли отменить действие другого игрока?
Да, администраторы могут использовать //undo <ник> для отмены действий указанного игрока. Требуется право worldedit.undo.other.
Что делать, если //undo не работает?
Проверьте наличие права worldedit.undo, убедитесь, что история не пуста, и что действие было выполнено через WorldEdit. В FAWE также проверьте настройки асинхронной обработки.
Сохраняется ли история отмены после перезагрузки сервера?
В стандартном WorldEdit — нет. В FastAsyncWorldEdit история может сохраняться при включении опции persistent: true в конфигурации.
Как вернуть отменённое действие?
Используйте команду //redo — она возвращает последнее отменённое действие. Работает аналогично //undo, но в обратном порядке.
Сколько действий хранится в истории отмены?
По умолчанию — 15 действий. Это значение настраивается в конфигурации WorldEdit через параметр max-history-size.
Можно ли очистить историю отмены?
Да, команда //clearhistory очищает историю отмены для текущего игрока. Требуется право worldedit.clearhistory.
Почему отмена занимает много времени?
Большие операции требуют обработки множества блоков. В стандартном WorldEdit это происходит синхронно. Для ускорения используйте FastAsyncWorldEdit с асинхронной обработкой.