MinecrafterCrafting
Новичок
- Баллы
- 18
Допустим у меня есть две точки. Как сделать регенерацию этого региона средствами WorldEdit API?
Следуйте инструкциям в видео ниже, чтобы узнать, как установить наш сайт как веб-приложение на главный экран вашего устройства.
Примечание: Эта функция может быть недоступна в некоторых браузерах.
public boolean regenerate(Region region, EditSession editSession)
{
BaseBlock[] history = new BaseBlock[256 * (getMaxY() + 1)];
for (Vector2D chunk : region.getChunks())
{
Vector min = new Vector(chunk.getBlockX() * 16, 0, chunk.getBlockZ() * 16);
for (int x = 0; x < 16; x++) {
for (int y = 0; y < getMaxY() + 1; y++) {
for (int z = 0; z < 16; z++)
{
Vector pt = min.add(x, y, z);
int index = y * 16 * 16 + z * 16 + x;
history[index] = editSession.getBlock(pt);
}
}
}
try
{
this.world.regenerateChunk(chunk.getBlockX(), chunk.getBlockZ());
}
catch (Throwable t)
{
t.printStackTrace();
}
for (int x = 0; x < 16; x++) {
for (int y = 0; y < getMaxY() + 1; y++) {
for (int z = 0; z < 16; z++)
{
Vector pt = min.add(x, y, z);
int index = y * 16 * 16 + z * 16 + x;
if (!region.contains(pt)) {
editSession.smartSetBlock(pt, history[index]);
} else {
editSession.rememberChange(pt, history[index], editSession.rawGetBlock(pt));
}
}
}
}
}
return true;
}
fromgate, у меня мощный сервер. помогите плиз
Чтобы уже не создавать тему: как сделать //set id в определенном параллелепипеде без выделения его игроком? На кого повесить сессию? Можно ли на Bukkit.getOfflinePlayer("FakePlayer")?
Где её получить? Мне нужно, чтобы игрок не мог ничего выделять и заменять, но когда он что-то делает (например, нажимает кнопку), блоки на определённых координатах заменяются на другие (а именно на воздух, а потом обратно).EditSession не привязана к игроку, не надо тут.
Амплитуду чего? Тип я знаю.Max_VALUE
Открой исходники и погляди, как это используется в его плагине?Амплитуду чего? Тип я знаю.
О каком плагине идёт речь? Если б я знал, то давно бы уже посмотрел.Открой исходники и погляди, как это используется в его плагине?
Неужели это так сложно?
В мире не существует ни одного плагина для регенерации территории с помощью WG\WE? К примеру плагины от Свевчика, у него есть плагин, который делает данную функцию.О каком плагине идёт речь? Если б я знал, то давно бы уже посмотрел.
О Боже, какая регенерация?В мире не существует ни одного плагина для регенерации территории с помощью WG\WE? К примеру плагины от Свевчика, у него есть плагин, который делает данную функцию.
Чтобы уже не создавать тему: как сделать //set id в определенном параллелепипеде без выделения его игроком? На кого повесить сессию? Можно ли на Bukkit.getOfflinePlayer("FakePlayer")?
EditSession не привязана к игроку, не надо тут.
Где её получить? Мне нужно, чтобы игрок не мог ничего выделять и заменять, но когда он что-то делает (например, нажимает кнопку), блоки на определённых координатах заменяются на другие (а именно на воздух, а потом обратно).
EditSession es = new EditSession(new BukkitWorld(world), Integer.Max_VALUE)
Извиняюсь за тупой вопрос, но что передавать вторым аргументом?
Я тебе привёл пример, где это можно поглядеть.О Боже, какая регенерация?
Она нужна автору темы, а я задал свой ничтожно малый вопрос здесь, дабы не создавать новую тему.