Добавлена поддержка 1.19.4
Хоть это и короткая новость, но, скорее всего, это то, что ищут многие: Теперь мы поддерживаем 1.19.4!
В этом обновлении мы также наконец-то перешли на использование отображений Mojang вместо устаревших Spigot. Это в основном означает, что нам приходится тратить меньше времени на "поиск" определенных функций NMS, что обеспечивает небольшую производительность для улучшения некоторых интеграций и снижает вероятность появления ошибок. Равные изменения были внесены в поддержку 1.19.3, однако, скорее всего, улучшения не будут заметны, так как она и так работала отлично.
Мастер новой установки
Это особенный, который вы, скорее всего, никогда не видели ни в одном другом плагине. Теперь можно легко установить плагин, посетив веб-сайт!
Это работает путем создания уникальной и безопасной ссылки для вашего сервера, когда вы устанавливаете плагин в первый раз. Есть инструкции, которые помогут вам с каждым шагом, чтобы сделать весь процесс максимально простым и быстрым.
Мы уверены, что старый традиционный способ и так был довольно простым, однако причина разработки этой функции заключалась в том, чтобы представить вам наиболее важные конфигурации, так как для новичков это может оказаться непосильной задачей.
Теперь также можно легко установить полный макет плагина! Теперь вы можете выбирать между макетом MBedwars Vanilla, который у нас был по умолчанию, и макетом под названием "HyPixel". Раньше вам нужно было установить соответствующий zip, извлечь файлы и установить необходимые зависимости. Теперь весь этот процесс берет на себя плагин.
Возможность просто пропустить весь процесс (обычный способ) сохранена. Вас спросят, хотите ли вы использовать мастер установки или нет.
Улучшения производительности
Производительность плагина и до этого обновления была идеальной. Однако были некоторые части плагина, которые мы нашли и улучшили.
Одним из них является улучшенная многопоточность. Поток, в двух словах, это процесс, который выполняет определенные алгоритмы в определенном порядке. Благодаря многопоточности вы можете одновременно выполнять несколько процессов, при этом один из них не будет сильно влиять на работу других. Логика тиков сервера имеет свой собственный поток, и выполнение слишком большого количества действий в этом потоке может повлиять на TPS, поэтому правильное использование потоков является ключевым для отсутствия лагов.
MBedwars и раньше прекрасно использовал эти возможности, однако мы улучшили некоторые алгоритмы, чтобы теперь он использовал их лучше, эффективно используя меньшее их количество. Мы также нашли решения для того, чтобы некоторые процессы не запускались в потоке сервера, что было сделано ранее из соображений стабильности. Это изменение в основном означает, что вы будете испытывать меньше мелких заминок, особенно когда матч закончился.
Некоторые алгоритмы также были переписаны, чтобы быть более эффективными.
Переход от config.cm2 к config.yml
В прошлом мы широко использовали формат файлов .cm2. Причина этого заключалась в том, что этот формат файлов имеет определенный синтаксис, более удобный для пользователя и менее подверженный случайным проблемам, которые потенциально могут иметь дальнейшие последствия.
Однако после того, как люди спросили нас, мы решили перейти на формат YAML (.yml). Как правило, потому что большинство уже привыкло к нему. Мы также использовали эту возможность для реструктуризации некоторых внутренних частей плагина, чтобы, во-первых, сделать включение дополнительных функций более простым, а во-вторых, включить дополнительные предупреждения, которые должны значительно улучшить опыт пользователя, так как теперь легче отлаживать и исправлять определенные проблемы для пользователя, поскольку плагин точно скажет вам, что вы делали неправильно.
Плагин автоматически конвертирует файлы. Вам не нужно беспокоиться об этом.
Добавлена поддержка MongoDB
MongoDB - это NoSQL-DBMS, которая технически работает совершенно иначе, чем обычные SQL-базы данных, такие как MySQL. Раньше я постоянно говорил людям, что наша реализация SQL уже чрезвычайно эффективна, поскольку мы пошли по пути реализации некоторых уникальных функций и алгоритмов SQL, которые не используются другими плагинами (Bedwars), поэтому MBedwars обычно превосходит их. Однако, люди просили об этом, и я рад сообщить вам, что мы наконец-то поддерживаем и это

Мы по-прежнему рекомендуем пользователям не использовать MongoDB, если вы никогда с ней не работали, так как ее работа сильно отличается от работы, например, MySQL. Придется потратить некоторое время на установку самого программного обеспечения MongoDB, так как большинство хостинг-провайдеров обычно предоставляют только MySQL или MariaDB. Однако если вы все равно хотите использовать его, вы можете просто воспользоваться новыми конфигурациями в файле config.yml. Конфигурирование так же просто, как и при работе с SQL.
Некоторые улучшения были внесены в код внутренних систем хранения данных. Эти изменения обеспечивают дополнительную стабильность, расширяемость, а также имеют побочный эффект: мы изменили структуру конфигураций, чтобы сделать их более понятными.
Эти изменения также позволили нам реализовать команду /bw tools migrate для других типов хранилищ, таких как MongoDB. Это означает, что вы всегда можете переключаться с локального, SQL или MongoDB туда и обратно, не беспокоясь о потере данных, поскольку MBedwars позаботится об этом.
Улучшение пользовательского интерфейса SetupGUI
SetupGUI - это функция, позволяющая пользователям легко создавать, настраивать и изменять арены.
В прошлом некоторые важные функции не существовали, особенно те, которые не имеют прямого отношения к аренам, например, возможность порождать жителей (торговцев и торговцев улучшениями), определять, какие арены находятся в вашем текущем положении, а также возможность легко конкретизировать углы WorldEdit прямо в графическом интерфейсе.
Мы заменили старое место удаления арен на инструменты. Удалить арены по-прежнему можно, просто сначала нужно перейти к списку арен. Я бы предположил, что большинство уже делали это таким образом, и почти никто не использовал страницу удаления арен.
Весь журнал изменений
Это были только самые значительные изменения. Также было внесено множество мелких изменений, которые вы можете найти здесь:
Добавлена поддержка для:
Добавлены функции:
- Кнопки спавна SetupGUI (для спавна дилеров, определения арены и установки углов)
- Теперь можно удалять предметы из быстрой покупки HyPixel
- Добавить сообщение, когда игрок получает удар из лука
- Теперь можно использовать PAPI в большем количестве сообщений
- Песок больше не падает во время регенерации для региональных арен в версиях 1.8.8 - 1.12.2
Добавлены команды:
- /bw tools openshop
- /bw tools openupgradeshop
- /bw tools migrate storage mongodb
Добавлены плэйсхолдеры:
- %mbedwars_playerarena-authors%
- %mbedwars_arena-<arena>-displayname%
- %mbedwars_arena-<arena>-authors%
- %mbedwars_playerarena-minplayers%
- %mbedwars_arena-<arena>-minplayers%
Изменения в конфигурации:
- Добавлено:
- Различные "mongodb-*"
- blocked-commands-mode (Теперь вы можете составлять белый список вместо черного списка команд)
- force-slot в магазин обновлений
- Разное:
- Перемещено в config.yml из config.cm2
- Добавлены конфигурации ""
- Заменены конфиги "sql-enabled" и "sql-type" на "storage-type" (в рамках подготовки к поддержке MongoDB)
- Добавлен заполнитель {team-initials} в конфиг customchatmessage-message
- GUI селектора команд теперь сортируется в порядке команд, которые вы настроили
Различные изменения:
- Добавлено место {player} для команд, выполняемых при использовании предметов в лобби/зрителе
- Теперь ловушки больше не срабатывают после выбывания команды
- Теперь при завершении раунда закрываются графические интерфейсы всех игроков
- Обновлен XSeries до версии 9.3.1
- Перемещена версия 1.19R2 в маппинг Mojang
- Во время регенерации больше не будут выпадать предметы
- Переработан алгоритм ударов зрителей
- Улучшен процесс сохранения и загрузки арены
- Улучшена производительность
Изменения в API
- Пополнения
- MigrationProcess.Origin#MONGO_DB
- MigrationProcess.Origin#isStorage()
- AddPlayerCause#END_LOBBY
- KickSpectatorReason#END_LOBBY
- Arena#getUpgradeState(Team)
- Arena#saveAsync()
- Arena#saveNow()
- RoundEndEvent#getQuitWinners()
- RoundEndEvent#getLosers()
- RoundEndEvent#getQuitLosers()
- Helper#getPlayerSkinData(Player)
- NMSHelper#getEntityDamageSound(Entity)
- NMSHelper#getEntityDeathSound(Entity)
- NMSHelper#getSoundByMinecraftName(Entity)
- NMSHelper#getEntityWidth(Entity)
- NMSHelper#getEntityHeight(Entity)
- RemoteArena#getDisplayedAuthors()
- RemoteArena#getDisplayedAuthors(@Nullable CommandSender sender)
- Helper#getBukkitChatColorFromBungee(ChatColor)
- SpawnerDropEvent#getDroppingMaterials()
- SpawnerDropEvent#setDroppingMaterials(ItemStack[])
- Spawner#drop(boolean, ItemStack[])
- Spawner#getNearbyItemsCount()
- Spawner#setMaxNearbyItems(int)
- GameAPI#getUpgrades()
- Upgrade#getMaxLevel()
- #isClone(), #getOriginal(), #clone() to BuyGroup, ShopItem and ShopPage
- ShopItem#setName(String)
- ShopItem#addPriceItem(ItemStack, int)
- ShopItem#addPriceSpawner(DropType, int)
- ShopItem#addProductCommand(String, boolean)
- ShopItem#addProductItem(ItemStack, int)
- ShopItem#addProductSpawner(DropType, int)
- ShopItem#addProductSpecialItem(SpecialItem, int)
- ShopItem#getRestriction()
- ShopItem#setRestriction(ArenaConditionGroup)
- ShopPage#addItem(String, ItemStack)
- ShopPage#removeConnectedItems(ShopItem)
- Deprecated PlayerOpenShopEvent#getPage()
- Added PlayerShopEvent#getClonedPage()
- Фиксы багов:
- Error when using GUI#closeAll()
- Not being able to add null entries to PlayerProperties#setShopHypixelV2QuickBuyItems
- Прочее:
- Класс команды: Исправлены методы Spigot ChatColor и заменены новыми методами Bungee ChatColor
- Исправлено Arena#getQueuedUpgradeTraps(Team) -> перенесено в класс UpgradeState
- Deprecated Arena#addQueuedUpgradeTrap(Team, UpgradeLevel, boolean) -> перемещено в класс UpgradeState
- Arena#save() -> заменен новыми методами
- Исправлено ShopOpenCause#DEBUG
- Устаревшие UpgradeShopOpenCause#DEBUG
- BuyGroup, ShopItem и ShopPage теперь расширяют Cloneable
Исправлены ошибок:
- Магазин обновлений нельзя открыть вне матча (Спасибо @MetallicGoat)
- Исправление NPE, если не настроены арены и открыт магазин (через команду или API) (Спасибо @MetallicGoat)
- Исправлено, что магазин обновлений не открывался вне матча (через команду или API) (Спасибо @MetallicGoat)
- Исправлено, что финальные убийства не отслеживались (Спасибо @MetallicGoat)
- PlayerUpgradeTriggerEvent не вызывается (в некоторых случаях), а PlayerBuyUpgradeEvent вызывается дважды (Спасибо @MetallicGoat)
- Исправлена ошибка, нарушающая правила игры, которая позволяла наблюдать за игрой, находясь в игре
- Исправлена ошибка https://cdn.emilinadaniel27.dev/files/1672144495314.png
- Исправлена ошибка https://pastebin.com/HZJXC90p
- Исправлены различные ошибки, связанные с понижением группы покупки, сохранением после смерти и одноразовой покупкой
- Исправлена ошибка с конфигурацией customchatmessage-message. Игроки могли использовать различные заполнители, когда использовался заполнитель {message}
- Исправлено удаление воспоминаний игрока при выходе из игры, когда игрок был уничтожен, но игра не была завершена + другие ошибки, связанные с этим
- Исправлено, что погода и время на арене не сбрасывались, когда на арене еще не было матча и были активны либо всегда день, либо отсутствие дождя
- Исправлено, что игроки, которые умерли и стали зрителями, не добавлялись в качестве игроков в конце лобби
- Исправлено, что количество игроков в сообщении "игрок присоединился к арене" было неверным, если несколько игроков присоединялись за очень короткий промежуток времени
- Исправлен редкий случай, когда экран респауна после смерти не исчезал (необходимо отключить расширенный метод)
- Исправлено, что NPC могли быть видны на вкладке в 1.19.3
- Исправлено, что свечи не окрашивались в цвет команды (спасибо @MetallicGoat)
- Исправлена отсутствующая панель действий при повторном присоединении игроков
- Исправлено, что NPC не показывали все части кожи в 1.19.3 - 1.19
В версии 5.2.1
- В этом обновлении исправлены некоторые серьезные ошибки:
- Исправлено возможное исключение NumberFormatException при сохранении/загрузке достижений на локальное хранилище
- Исправлено возможное исключение NullPointerException при открытии магазина с HyPixelV2
- Исправлено исключение InvalidDescriptionException при запуске при наличии аддонов
- Исправлено, что потоки File IO блокировались и приводили сервер в состояние мягкой блокировки при выполнении перезагрузки /bw в запущенном матче