Добавлена поддержка:
1.21.9, 1.21.10 и 1.21.11
ItemJoin — для предотвращения возможных проблем совместимости из-за неправильной конфигурации
Последняя версия AdvancedSlimePaper
ViaRewind (1.19R2+)
Хотфикс: NPC не удалялись из TABДобавлены функции:
Теперь можно использовать компоненты MiniMessage в скорбордах (только Paper 1.20.1+)
Добавлена новая команда: Magenta
— по умолчанию скрыта в интерфейсе выбора команд
— становится видимой только после включения остальных 15 команд
Аддоны теперь могут объявлять собственные режимы через API
Новая переменная условия custom_mode — единое решение для всех аддонов
Предмет наблюдателя «следующий раунд» теперь принудительно использует одинаковый custom modeИзменения конфигурации:
Добавлено:
- lobby-printmapinfo-time
- logs-strippable
Удалено:
- "lobby-countdowntitle-arena" (объединено с "lobby-countdowntitles")
Изменено:
- "max-nearby-items" (spawns.yml) теперь может быть выражением
- Конфигурация "interacting" была разделена (спасибо @MetallicGoat)
- "interacting-gui" — false по умолчанию
- "interacting_physical" — true по умолчанию
Общие улучшения:
Если лидер пати заходит в игру — предпочтение отдаётся командам, где уже есть участники пати
PaF Bungee: сокращено время получения информации о пати (если игрок только что зашёл)
Теперь возвращается символ бесконечности, если "timer-enabled" отключён для {countdown} в скорбордах и PAPI-плейсхолдерах
Апгрейд множителя спавнера теперь учитывает и командный спавн (а не только кровать) как радиус
Авто-окраска (& → §) результатов PAPI-плейсхолдеров
Игроки больше не могут снимать кору с любых брёвен (раньше могли делать это с блоками, поставленными игроками)
Добавлено новое сообщение об ошибке, если не найдена арена, подходящая под указанный picker (спасибо @MetallicGoat)Улучшения производительности:
Значительно снижена нагрузка на GC за счёт уменьшения использования regex
Повышена общая эффективность плагина за счёт новой системы замены плейсхолдеров
Улучшена производительность PaF Bungee за счёт уменьшения количества запросов к p####i
Небольшое улучшение производительности для жёстко форкнутых версий Paper (начиная с 1.21.4) за счёт отказа от reflection
Общая оптимизация для лучшей работы JIT при кросс-версийной обработке
Добавлена поддержка AsyncPlayerSpawnLocationEvent от Paper (повышает производительность и стабильность)Изменения API:
Добавлено:
- PlayerCustomKnockbackEvent
- Helper#replaceFirst(str, target, replacement)
- Helper#replaceLast(str, target, replacement)
- GameAPI#registerSpecialItem(type, plugin, name, item)
- GameAPI#isProcessingRejoin(Player)
- GameAPI#isCrossServerRejoining(UUID)
- Helper#getPlayerSkin(Player)
- NPCHologramSkin#getSkin()
- NPCHologramSkin#setSkin(Skin)
- Skin (класс)
- NPCHologramSkin#setPlayerSpecificSkinSupplier(supplier)
- NPCHologramSkin#hasPlayerSpecificSkinSupplier()
- NPCHologramSkin#updatePlayerSpecificSkins()
- NPCHologramSkin#updatePlayerSpecificSkin(Player)
- NPCHologramSkin#getPlayerSpecificSkinSupplier()
- NPCHologramSkin#setSelfSkinSupplier()
- NPCHologramSkin#getInternalType()
- ArenaOutOfTimeEvent#setEndlessTime()
- Arena#setIngameTimeDisabled()
- PlayerBuyUpgradeEvent#getUpgradeState()
- NMSHelper#useFireworkBoost(Player, ItemStack)
- Helper#takeItems(Player, Predicate<ItemStack>, amount)
- Helper#isTransparent(Material)
- GameAPI#getHubLocation()
- GameAPI#setHubLocation(Location)
- Team#DARK_BLUE
- Team#isHidden()
- QuitPlayerMemory#constructMidgame(Player, Team)
Изменено:
- GameAPI#unregisterSpecialItem(SpecialItem): больше нельзя удалять встроенные типы. Используйте новый метод регистрации для замены
- Теперь можно включить игровой таймер, если он был отключён, через Arena#setIngameTimeRemaining(timeInSeconds)
Устарело:
- Helper#getPlayerSkinData(Player)
- NPCHologramSkin#setSkin(texture, signature)
- NPCHologramSkin#getSkinTexture()
- NPCHologramSkin#getSkinSignature()
Изменения из-за того, что "max-nearby-items" теперь может быть выражением:
- Deprecated: DropType#getMaxNearbyItems()
- Добавлено:
- DropType#getMaxNearbyItems(Arena)
- DropType#getMaxNearbyItemsExpression()
- DropType#setMaxNearbyItemsExpression(String)
- Ломающее изменение: Spawner#set/getMaxNearbyItems теперь сбрасывается при каждом начале матча
Новая система custom mode добавляет:
- Классы CustomMode и CustomModeType
- Arena#hasCustomMode()
- Arena#getCustomMode()
- RemoteArena#hasCustomMode()
- RemoteArena#getCustomModeName()
- GameAPI#getCustomModes()
- GameAPI#getCustomMode(CustomModeType)
- GameAPI#registerCustomMode(CustomMode)
- GameAPI#unregisterCustomMode(CustomMode)
- ArenaPropertyChangeEvent.Property.CUSTOM_MODE
- RemoteArenaPropertiesChangeEvent.Property.CUSTOM_MODE
- ArenaConditionVariableType.CUSTOM_MODE
Исправления ошибок:
- Исправлено, что "spawn-at-start" в spawners.yml не учитывал предметы для "max-nearby-items"
- Исправлен NPE, связанный с lore предметов в магазине улучшений
- Исправлено взаимодействие с железным големом / псом-стражем (например, лечение железом)
- Исправлено дёрганье фаербола на 1.21+ при включённом fireball-fly-speed-constant
- Исправлена некорректная работа XReplay
- Исправлен ArrayIndexOutOfBoundsException при наличии более 7 типов спавнеров при открытии GUI спавнеров в инструменте настройки
- Исправлена отправка сообщений с префиксами, если они были заданы пустыми
- Исправлено применение улучшения «плавное падение» ко всем частям брони
- Исправлена возможная ошибка при сохранении повреждённых tile entities в региональных аренах на 1.21.6+
- Исправлено влияние световых блоков на safe-respawn и двойной прыжок фаерболом
- Исправлен NPE, вызванный асинхронной загрузкой миров на современных версиях Paper
- Исправлена возможность наблюдать за игроками во время респавна при отключённом "spectator-permit-other-player-view"
- Исправлено редкое глючное поведение при попытке наблюдения за игроком с отключённым "spectator-permit-other-player-view" (фикс доступен только для Paper 1.13+)
- Исправлена потенциальная ошибка «must be Methodref constant» на 1.12+
🔹 Добавлена поддержка
– Minecraft 1.21.8
🔹 Новая функция
– Теперь можно выйти из команды в лобби, кликнув по ней повторно
🔹 Новый звук
– LOBBY_SELECTTEAM_UNDO
🔹 Улучшения
– Улучшена обработка реальных имён игроков и их ников — снижена путаница между ними в разных частях плагина
🔹 Изменения API
– Добавлено: Helper#getPlayerByName()
– Добавлено: Arena#leaveTeamDuringLobby(player)
– RemotePlayer#getName() теперь возвращает Helper#getNickedPlayerRealName(player), а не Player#getName()
– NicknamingHook#getRealName(player) теперь возвращает null, если раньше вернуло бы Player#getName()
🔹 Исправления
– Плагин не запускался на версии 21R5
– В редких случаях нельзя было зайти в арену при быстром движении (если включён kick-outofarena)
– При выключенном балансировщике команд выбирались команды только с 2+ игроками, вместо 1+
– Исправлена MongoQueryException при попытке получить ранг игрока
Поддержка:
Добавлена поддержка версий 1.21.6 и 1.21.7 (спасибо @MetallicGoat)
Добавлена поддержка Spigot-Party-API-PAF (можно использовать бесплатную версию вместо платной расширенной)
EssentialsX: добавлено предупреждение при обнаружении конфликта
Улучшения:
TAB и FeatherBoard теперь избегают конфликтов со скорбордами
Обновлена поддержка CloudNetV4 до RC12
Новая функция:
Настраиваемая защита после возрождения — игрок не получает урон от врагов в течение заданного времени, если сам не атакует
Новый параметр конфига:
respawn-protection
Оптимизация:
Файлы конфигурации, использующие YamlConfigurationDescriptor API, теперь сохраняются эффективнее
Устранено лишнее потребление памяти вышедшими игроками из-за сильной ссылки на их объект Player в приватном инвентаре
Прочие улучшения:
Предметы теперь выдаются игрокам сразу после возрождения, без задержки в 2 тика
Функция "Punch to Deposit" теперь включена в шаблон "HyPixel"
Изменения в API:
Добавлены:Важное изменение:
- PlayerUseSpecialItemEvent#addSessionListener(callback)
- PlayerUseSpecialItemEvent#getSessionListeners()
- PlayerStopSpecialItemEvent
- Arena#getSpecialItemSessions()
- GameAPI#getLastTeleporterSpecialItemUse(Player)
- PlayerQuitArenaEvent#hasLeaveMessage()
- PlayerQuitArenaEvent#setHasLeaveMessage(boolean)
- RemoteAPI#getReservationsCount(Arena)
- RemoteAPI#hasReservation(UUID, Arena)
- PlayerIngameRespawnEvent#getSpawnLocation()
- PlayerIngameRespawnEvent#setSpawnLocation(Location)
- PlayerIngamePostRespawnEvent
PlayerIngameRespawnEvent теперь вызывается до возрождения игрока (в прошлом вызывался и до, и после). Используйте PlayerIngamePostRespawnEvent для обработки после возрождения.
Исправления:
- Исправлена миграция bw1058 для миров swm
- Исправлена неработающая функция магнитных ботинок
- Отменена проверка кастомных улучшений команды, мешающая нестандартным чарам
- Исправлена возможность активации ловушек в endlobby
- Исправлена утечка памяти при выходе игрока во время действия задержки предмета выхода
- Исправлена невозможность покупки предметов в интерфейсах магазина с использованием UI жителя
- Хотфикс утечки памяти в расширенном API PaF
- Исправлена возможная ошибка "Cannot measure distance between world" при использовании трекера и TNT овцы
- Исправлена ошибка взаимодействия, если предмет зрителя содержит только команды без обработчика
- Исправлена ошибка миграции из bw1058 при использовании неинициализированной SQLite
- Исправлено открытие интерфейса наковальни на 1.21.5+
Добавлена поддержка:
– Minecraft 1.21.5 (спасибо @MetallicGoat)
– Конфигурации:
• mongodb-authdb
• hologram-title-vertical-spacings (спасибо @MetallicGoat)
• actionbar-ingame-text (спасибо @MetallicGoat)
• auto-cloning-lobby-arenas-exclude-full
Улучшения производительности:
– Снижено использование sqrt (спасибо @MetallicGoat)
Улучшения:
– В .region-файлы арен теперь сохраняются ключи типов сущностей (1.14+), улучшая кросс-версионную поддержку
– Таблицы очков теперь отображаются сразу после входа, даже если статистика ещё не загружена (спасибо @MetallicGoat)
– Настройка performance теперь также влияет на частоту обновления ловушек: уровень normal увеличивает частоту с 20 до 15 тиков
– Унифицирован разбор enum по имени в конфигурации — теперь терпим к мелким ошибкам написания
Изменения API:
Добавлено:
– PlayerUseSpecialItemEvent#getInventorySlot()
– GameAPI#isSpectator(Player)
– RemoteServer#getPlayers()
– RemoteArena#isCloned()
– RemoteArena#getCloneParent()
– RemoteArena#getClones()
– PlayerDataAPI#registerAchievementType(id, plugin, name, description)
– NMSHelper#setFireballDirection(fireball, direction, speed)
– ArenaSaveBlocksStopEvent
– Arena#getDataFolder()
– Arena#getDataRegenFile()
– Arena#isPlaying(Player)
– Arena#isSpectating(Player)
– Upgrade#isApplicable(Arena)
– PlayerTriggerUpgradeEvent#isAPICall()
– PlayerTriggerUpgradeEvent#hasPlayer()
Изменено:
– UpgradeState#doUpgrade(level, player) теперь позволяет player = null
Ломающие изменения:
– PlayerTriggerUpgradeEvent больше не наследуется от PlayerEvent
– PlayerTriggerUpgradeEvent#getPlayer() теперь может возвращать null, если улучшение вызвано через API
Исправления:
– Хотфикс трекера для 1.21.4 (вызван клиентским багом Minecraft)
– Улучшено автообновление .region-файлов с более старых версий для 1.20R4+ (исправлены сбои с головами игроков и др.)
– Исправлен баг, позволяющий гличить телепортатор путём смены руки во время отсчёта
– В drops-killer-auto-pickup: убийца больше не получает предметы, если умирает раньше убитого
– Исправлено достижение kill_with_half_heart
– Исправлен потенциальный NPE, связанный с экшн-барами (спасибо @MetallicGoat)
– Плейсхолдеры {countdown} и {running-time} теперь корректно обновляются в табличке, даже если не используются в заголовке (спасибо @MetallicGoat)
– Исправлены редкие случаи, когда drops-killer-auto-pickup всё же оставлял дроп
– Исправлена ошибка с минимальным радиусом видимости голограмм при значениях выше sqrt(2^32-1) (переполнение int)
Поддержка:
• Добавлена поддержка Minecraft 1.21.5
Исправления:
• Улучшена задержка при отображении табло при входе на арену
• Исправлен баг с телепорт-итемом, возникавший при его смене во время обратного отсчёта
Прочее:
• Добавлено автоматическое обновление блоков для REGION на версии 1.20R4+
• Автообновление файлов региона теперь работает и для сущностей
Improvements:Performance improvements:
- Players now get teleported to the main world's spawn instead of a random location if no hub position was set
API changes:
- Slightly improved efficiency by avoiding code execution in certain events early
- Improved client-side caching for custom skull textures
Fixed bugs:
- It is now possible to create custom TeamEnchantment targets
- Added Constructor TeamEnchantment(Predicate<ItemStack>, String targetId, Enchantment, int lvl)
- Added TeamEnchantment#isApplicable(ItemStack)
- Added TeamEnchantment#getTargetId()
- Added TeamEnchantment.Target#CUSTOM
- Deprecated TeamEnchantment.Target#byMaterial(Material) is now deprecated for removal
- Added
- Helper#takeItems(player, is, amount)
- Helper#giveItems(player, is, dropOverflow)
- RejoinPlayerIssue.ALREADY_INSIDE
- Fixed NPE when starting the plugin for the first time
- Fixed race-condition if player gets teleported to the lobby after the match started. This only happened on paper and was related to async tp
- Fixed accidentally obfuscating base.json fields, whereby the hubPosition would get reset with every update
- Fixed being able to participate in two arenas at the same time by attempting a rejoin while already joining another one
- Fixed bugs (potentially only for ProxySync + paper 1.21.4) where players would turn into a buggy state when leaving as a spectator
- Fixed being able to swap offhand items in lobby phase
- Fixed steve skulls when applying (legacy) NBT on custom skulls for 1.20.5+
We released a new and free addon! Check it out: Level Shop
Added features:Added support:
- Bypass blocked-commands using new permission "mbedwars.bypassblockedcommands"
- Added ability to make spawners drop a given amount of items at the start of the match
- Added feather fall upgrade
- Traps may now be removed by the original buyer of the trap
Config changes:
- GeyserMC without Floodgate (prior we only supported Floodgate, now both)
Performance improvements:
- Config "floor-foliage-simplified-destruction" will now also function in non-build areas
- Config "interacting" set to false now also prevents flower pot interaction
- Added config to spawners.yml: "spawn-at-start"
- Changes for "drops-killer-auto-pickup":
- Nothing will drop at all if there is no responsible killer
- It now also works for exp besides items
- For upgrade-shop.yml:
- Configured levels config must now start with 1 and increment one-by-one
- Any upgrades with a different schema will be ignored
- This change shouldn't break anything for anyone
- For upgrade-shop.yml:
- The order of configured upgrades is now being respected and properly displayed in the GUI
Improvements:
- Slightly improved efficiency of spawner dropping items
- Improved efficiency of logic that checks whether a block is interactable
- Slightly improved efficiency of messaging system
- Slightly improved efficiency of metadata storage
- Reduced memory footprint of our NBT system
- Improved efficiency of getting arenas by their name
- Improved efficiency of hook manager
- Improved efficiency of upgrade state handling
- Improved efficiency of actionbar text + it's now async
- Improved efficiency (both RAM and CPU) of hologram logic
API changes:
- Now using related player (and not receiving) for papi placeholders when somebody joins or leaves
- Reworked endlobby rejoin (spectators turning into players)
- Prior, we would use the regular “player joining arena” logic. However, that caused a wide array of unexpected problems, whereby we are now adapting on the regular rejoin system.
- Improved system that lookups for legacy block types when using a match-blocks file for REGION arenas from older spigot versions
- Reverted change where all spawners would drop an item at the start of the round
- BEST arena picker selector now fallbacks to a random arena if any is full instead of none (useful for spectating arenas)
- "HyPixelV2" Upgrade shop layout: Now displaying next roman tier in the name
- Updated default "HyPixel" template
Fixed bugs:
- Changed the meaning of QuitPlayerMemory
- Previously, it would only exist if the player was able to rejoin (e.g. his team was not eliminated)
- This would be problematic, as that would prevent losses from being counted
- Now, QuitPlayerMemory always get constructed when the player leaves, unless the match hasn’t started yet (status != LOBBY)
- All memories get cleared once the status changes to RESETTING.
- Added QuitPlayerMemory#isRejoinPermitted()
- Added QuitPlayerMemory#setRejoinPermitted(boolean)
- Added RejoinPlayerIssue.NOT_PERMITTED
- Added:
- enum RejoinPlayerCause
- PlayerRejoinArenaEvent#getCause()
- Permissions.BYPASS_BLOCKED_COMANDS
- KickReason#isRageQuit()
- PlayerOpenArenaChestEvent.ChestType enum
- PlayerOpenArenaChestEvent.OpenPurpose enum
- PlayerOpenArenaChestEvent#getChestType()
- PlayerOpenArenaChestEvent#getPurpose()
- Arena#getChestType(Block)
- Arena#getChestInventory(Block, Player)
- Upgrade#getMinLevel()
- UpgradeState#setCurrentUpgradeLevel(UpgradeLevel)
- UpgradeState#clearUpgrade(Upgrade)
- UpgradeTriggerHandlerType.FEATHER_FALL
- QueuedTrap class
- PlayerRemoveTrapEvent class
- UpgradeState#removeTrap(QueuedTrap, Player)
- HologramEntity#setPerPlayerVisibility(Predicate<Player>)
- HologramEntity#getPerPlayerVisibility()
- HologramEntity#updatePerPlayerVisibility()
- Helper#isInteractableBlock(Material)
- DropType#getSpawnAtStart()
- DropType#setSpawnAtStart(int)
- Deprecated:
- AddPlayerCause#END_LOBBY
- Helper#parseSNBTAsJson(String)
- Helper#composeJsonAsSNBT(JsonObject)
- PlayerOpenArenaChestEvent#isTeamChest()
- PlayerOpenArenaChestEvent#isPrivateChest()
- Breaking:
- Upgrade#getLevels() now returns a List instead of a Set
- UpgradeState#getNextUpgradeLevel(Upgrade) may now return null if max was reached
- UpgradeState#getActiveUpgrades() new returns Collection instead of List
- UpgradeState#getQueuedTraps() now returns Queue<QueuedTrap> instead of List<UpgradeLevel>
- UpgradeState#queueTrap(UpgradeLevel, boolean) now expects a QueuedTrap parameter instead of the UpgradeLevel
- PlayerOpenArenaChestEvent now also gets called for vanilla chests (e.g. shulker boxes, but excluding furnaces etc)
- Fixed PlayerTriggerUpgradeEvent's cancellation not being respected
- Fixed error when migrating from MongoDB
- Fixed that MongoDB storage would look for users in the configured db and not the "admin" db
- Fixed broken TNT sheep&QuickBuy for 1.21 - 1.21.2
- Fixed spectators not becoming visible if "endlobby-tptolobby" was enabled
- Fixed losses not being counted for players not-rejoinable players
- Fixed "blocked-commands" may as well block "allowcommand-stats" and "hubcommands"
- Fixed dropped items potentially not stacking in the inventory for 1.20.4 and older
- Fixed not properly saving & clearing 1.17+ entities folder in vanilla worlds for arenas of type WORLD. As a result, dropped spawners, iron golems etc. would remain for the next match
- Fixed error when running /bw backup list
- Fixed odd warnings when trying to join a full arena while in party
- Fixed bedrock players getting stuck on respawn screen (1.15+)
- Fixed being able to pickup items when leaving as spectator with ProxySync addon
- Fixed various rare CME related to the registry
- Fixed that leaving a server (without /leave command) wasn't considered as a rage quit
- Fixed not properly displaying upgrade amounts for 1.20R4 for "HyPixelV2" Upgrade shop layout
- Fixed not respecting WorldUnloadEvent's cancellation, and thus potentially causing unexpected behavior
Добавлена поддержка:
- MC 1.21.4 (Спасибо @MetallicGoat).
Улучшена поддержка:
- SWM: Добавлена поддержка асинхронной генерации миров (нужно включить в конфиге). ASWM этого не имеет.
Добавлено:
- Двойной прыжок для фаерболов (по умолчанию отключен).
- Возможность настройки погоды и времени для каждой арены (в GUI арен, спасибо @MetallicGoat).
- Добавлен звук телепорта жемчужины края из 1.20.3 для старых версий.
- Компаратор (~) для выбора арены.
Изменения в конфигурации:
- Добавлен параметр custom-handler-config для спаунеров.
- Пользовательские обработчики спаунеров теперь могут использовать свои конфиги.
- Новые параметры:
- customchatmessage-message-lobby
- fireball-air-jump
- fireball-air-jump-ticks
- fireball-multiplier-knockback-enemy
- fireball-multiplier-damage-enemies
- explosion-destroys-items
- redye-blocks-onpickup (Спасибо @MetallicGoat).
- auto-clone-mode-types теперь позволяет задавать режимы для каждого типа арены отдельно (Спасибо @MetallicGoat).
Улучшения производительности:
- SQL-хранилище: улучшена эффективность при загрузке таблиц лидеров.
- Оптимизирован поиск ближайших предметов для спаунеров.
- Уменьшено максимальное количество предметов, выпадающих при отключённом слиянии, с 50 до 20.
Улучшения:
- В случае невозможности выгрузить мир определяется виновный плагин.
- Запрещена установка позиций хаба внутри арен.
- Добавлено новое уведомление об ошибке, если мир арены не загружен.
- Улучшена обработка регенерации в случае выгрузки мира.
- Название арены теперь отображается в заголовке GUI.
- Добавлены звуки к инструментам настройки.
- Взрывы больше не уничтожают выпавшие предметы.
- Устранена задержка появления голограмм.
- Поддержка игроков (макс/мин) выше 16 до 99 в GUI настроек арен.
- Улучшена система спауна предметов на старте раунда (Спасибо @MetallicGoat).
Изменения API:
- Удалены устаревшие элементы API.
- Изменены возвращаемые типы для методов (например, long → Duration).
- Добавлены новые события, классы и методы, включая:
- ArenaWinningDetermineEvent,
- Новые причины киков,
- Расширенные методы для статистики игроков,
- Новый класс ExecutionChain и другие.
Исправления:
- Исправлена сломанная наковальня в 1.21.2–1.21.3 (Спасибо @MetallicGoat).
- Устранена утечка памяти в системе метаданных игроков.
- Исправлены ошибки, связанные с GUIs, сбросом инструментов настройки, ошибками SQL, неправильным выгрузом миров и многим другим.
- Множество багов, связанных с покупкой предметов, нестандартными ID, работа с ProtocolLib и отображением игроков, также исправлены.
- Исправления для работы с 1.8.8 и выше.
Поддержка:
- Добавлена поддержка 1.21.4
- Добавлена поддержка асинхронной генерации мира SWM (необходимо включить в конфигах)
- Добавлена поддержка асинхронной загрузки данных для SWM для улучшения использования TPS
Дополнения:
- Возможность индивидуального изменения времени/погоды арены
- Добавлен параметр /bw arena info <arena> picker для отображения всех значений параметра
- Добавлено «customchatmessage-message-lobby»
- Добавлена более специфическая настройка для режимов клонирования арены
Исправления:
- Исправлена поломка графического интерфейса Anvil на 1.21.2/3
- Исправлена утечка памяти, связанная с мета-системой нового игрока
- Исправлена поломка предметов магазина с пользовательскими идентификаторами при перезагрузке и дублирование предметов магазина, хранящихся в памяти при перезагрузке
- Исправлено нарушение количества недостающих материалов в сообщении при покупке предметов
- Исправлена очень редкая ошибка «PROCEDURE * уже существует» при запуске нескольких серверов с помощью SQL
- Исправлен сбой в настройках множителя урона охранных собак
- Исправлены ошибки с TNT овцами и мини магазином на 1.21.3+
- Исправлено удаление предметов игрока при входе в end-lobby в качестве зрителя
- Еще...
Много чего еще, что не поместится. (А я ленивый, посмотрите на Trello).
Добавлено:Изменения в конфигурации:
- Поддержка версий 1.21.2 и 1.21.3 (благодарность @MetallicGoat).
Улучшение выбора арен:
- Добавлен параметр hanging-interactable.
- Добавлен параметр id для настроек предметов магазина.
- Добавлены параметры для изменения стандартных настроек быстрого доступа к предметам магазина:
- quickbuy-generate-automatic
- quickbuy-default-items
- В файле spawners.yml параметр spawner-delay теперь может быть математическим выражением, что позволяет задавать различные задержки для разных режимов.
Улучшение производительности:
- Полностью переписан парсер условий.
- Теперь можно экранировать символы ", используя \\".
- Переменные и статические значения можно использовать по обе стороны выражения.
- Новый парсер автоматически добавляет недостающие скобки.
- Ошибки парсера теперь показывают точное положение проблемы.
Другие улучшения:
- Оптимизировано получение команды по расположению её кровати.
Изменения API:
- Запрещено взаимодействие с висящими объектами (если не отключено).
- Добавлена переменная выбора арен remaining_slots.
- При вступлении в арену проверяется, чтобы все участники группы могли разместиться.
- Добавлен плейсхолдер PAPI %mbedwars_activity%.
Исправления:
- Исправлено:
- Неправильные данные ServerInfoDto в JavaDoc.
- Ошибки добавленных через API товаров по сравнению с конфигурируемыми.
- Неправильная ошибка клонирования ShopItem при использовании ShopPage#addItem(ShopItem).
- События LobbyCountdown не вызывались (благодарность @MetallicGoat).
- Добавлено:
- Класс LazyReference.
- Асинхронные методы получения частей кровати команды.
- Методы работы с идентификаторами ShopItem и получения их из API.
- Возможность задавать продолжительность дропа спавнеров в виде формулы.
- Изменения в выборщиках арен:
- Удалены устаревшие методы в ArenaConditionComparative.
- Добавлен класс ArenaConditionInput.
- Появились методы для сериализации условий и выборщиков арен.
- Различные ошибки (отсутствие предметов в лобби и т.д.) при использовании без PaperMC.
- Исправлена проверка на возможность строительства для платформы спасения и мостов.
- Проблема с плейсхолдером {arena} при отправке сообщения "мир не существует".
- Автозагрузка мира при совместном использовании арены с одним регионом.
- Ошибка с началом арены, если максимальное количество игроков становилось меньше минимального.
- Проблема с ошибкой NoSuchFieldError CraftMagicNumbers в версии 1.21.1.
- Исправления в работе взрывчатки и их взаимодействии с кроватями и картой.
- Устранение проблем с некорректными данными лидербордов и статистикой при использовании MySQL и MongoDB.
- Обновлена поддержка последней версии ASWM.