Копируйте большие регионы с помощью Spigot

В настоящее время я работаю над обучающим плагином, в котором каждый игрок получит свой регион, например, для изучения бриджа. Поэтому, когда игрок присоединяется, плагин должен автоматически генерировать новую область для этого игрока и удалять ее, когда он уходит.

Я создал SetupCommand, в котором вы должны установить начало и конец копируемой области.

Теперь остается только скопировать регион и телепортировать в него игрока, однако я не нашел хороших способов сделать это. Единственное решение, которое я нашел до сих пор, - это перебрать все блоки и скопировать их один за другим. Но я могу себе представить, что это не лучшее решение и приведет к лагам не только на стороне сервера, но и на стороне клиента.

Есть ли лучшие способы клонирования региона, чем этот? Я читал, что вы должны использовать схемы, но они не вдавались в подробности.

2 ответа

Если у вас есть опыт работы с java и вы чувствуете себя комфортно в своих навыках, вы можете попытаться получить блоки в списке как список и сохранить его как base64 в своей базе данных или как-то еще. Вы можете каждый раз анализировать его обратно в список блоков и заменять его. Я бы скорее порекомендовал вам создать собственный блочный класс с инструментами. Serializeableа затем добавьте некоторые значения, такие как Location, Materialа также BlockDataк этому.

Используйте FAWE или WorldEdit для копирования/вставки разделов.

Если вы используете Block#setType, производительность будет очень низкой, поэтому, если вы не хотите использовать API, вам следует использовать NMS, но использование NMS не рекомендуется.

Недостатки NMS: Большинство методов NMS запутаны. В одной версии метод называется f(), в следующей может быть c().

Как копировать/вставлять с помощью FAWE:https://www.spigotmc.org/threads/how-to-paste-a-schematic-with-fawe.402950/

Как скопировать/вставить с помощью worldedit:https://www.spigotmc.org/threads/worldedit-api-schematic-copy-save-load-and-paste.498476/

В заключение рекомендуется использовать API

Другие вопросы по тегам