Top.Mail.Ru
Ответы

Ядро для майнкрафт сервера

Здравствуйте. Настраивал я сервер для игры впятером, накатил моды, датапаки, плагины, все работает. Но еще хотелось сделать, чтобы изначально энд был закрыт и можно было открыть его позже. Это делается довольно таки просто, надо только в файле bukkit.yml около allow-end поставить false. Но, как оказалось, это не работает на Fabric и Forge, энд все равно прекрасно фурычит. Плагинов для этого для 1.21 пока не завезли, а сделать все надо срочно. Есть решение?

По дате
По рейтингу
Аватар пользователя
Мудрец

Здравствуйте! Да, есть несколько способов заблокировать доступ к Эндер-миру на сервере Minecraft с использованием Fabric или Forge. Вот один из подходов:

### 1. Использование командных блоков
Можно использовать командные блоки для телепортации игроков обратно в основной мир, если они попытаются войти в Эндер-мир.

1. **Создайте командный блок** на спауне в Эндер-мире.
2. **Вставьте следующую команду** в командный блок:
```plaintext
tp @a[distance=..10] 0 64 0
```
Это будет телепортировать всех игроков, находящихся в радиусе 10 блоков от командного блока, обратно в основной мир (координаты 0, 64, 0 — измените их при необходимости).

### 2. Использование модов или скриптов
Можно создать небольшой мод или скрипт, который будет блокировать доступ к Эндер-миру. Вот пример простого скрипта для Fabric с использованием API Minecraft.

#### Для Fabric:
1. Создайте новый мод с использованием Fabric API.
2. Напишите следующий код в главном классе мода:

```java
import net.fabricmc.api.ModInitializer;
import net.minecraft.server.network.ServerPlayerEntity;
import net.fabricmc.fabric.api.event.lifecycle.v1.ServerTickEvents;
import net.minecraft.util.math.Vec3d;

public class EndBlockerMod implements ModInitializer {
@Override
public void onInitialize() {
ServerTickEvents.START_SERVER_TICK.register(server -> {
for (ServerPlayerEntity player : server.getPlayerManager().getPlayerList()) {
if (player.world.getRegistryKey() == net.minecraft.world.World.END) {
player.teleport(server.getWorld(net.minecraft.world.World.OVERWORLD), 0, 64, 0, player.getYaw(), player.getPitch());
}
}
});
}
}
```

#### Для Forge:
1. Создайте новый мод с использованием Forge API.
2. Напишите следующий код в главном классе мода:

```java
import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.event.TickEvent;
import net.minecraftforge.event.entity.player.PlayerEvent;
import net.minecraftforge.eventbus.api.SubscribeEvent;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.fml.event.lifecycle.FMLClientSetupEvent;
import net.minecraftforge.fml.event.lifecycle.FMLCommonSetupEvent;
import net.minecraftforge.fml.event.server.FMLServerStartingEvent;
import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext;
import net.minecraft.entity.player.ServerPlayerEntity;
import net.minecraft.util.math.vector.Vector3d;
import net.minecraft.world.World;

@Mod("endblockermod")
public class EndBlockerMod {
public EndBlockerMod() {
FMLJavaModLoadingContext.get().getModEventBus().addListener(this::setup);
MinecraftForge.EVENT_BUS.register(this);
}

private void setup(final FMLCommonSetupEvent event) {
// Initialize mod setup
}

@SubscribeEvent
public void onServerStarting(FMLServerStartingEvent event) {
// Initialize server setup
}

@SubscribeEvent
public void onPlayerTick(TickEvent.PlayerTickEvent event) {
if (event.player.world.getDimensionKey() == World.THE_END) {
ServerPlayerEntity player = (ServerPlayerEntity) event.player;
player.teleport(event.player.getServerWorld().getServer().getWorld(World.OVERWORLD), 0, 64, 0, player.rotationYaw, player.rotationPitch);
}
}
}
```

### Заключение
Эти методы помогут вам заблокировать доступ к Эндер-миру, пока вы не захотите его открыть. Если у вас возникнут трудности с реализацией этих решений, пожалуйста, дайте знать, и я помогу вам с более подробными инструкциями.

Аватар пользователя
Ученик

Чел легенда

Аватар пользователя
Ученик

Ты через нейронку это все пишешь? соклько раз видел.

Аватар пользователя
Мастер

Это должно работать. Лучше не использовать ядра франкенштейны

Аватар пользователя
Мастер

Джава

Аватар пользователя
Ученик

Найди портал и заблокируй платформу в энде

Аватар пользователя
Ученик

хз

Аватар пользователя
Ученик

Сделай плагин, ломающий блоки портала

Аватар пользователя
Ученик

А нельзя уже в самом мире его отключить?



Видео по теме