Forge Mod
ChunkBanMod
Vytvoř mi minecraft mod na chunk ban hemmer.Mod pojmenuj jen chunk ban mod a jak chunk ban mod funguje když někoho praštím ban hemmer nějaký hrač tak hrrač ktereho tím praští dostane ban v danem chunku v kterím stojí,pokud hrač stojí mezi 2 chanky tak jeden z nich se zapne a bouchnutí hrač se teleportuje do něho.Hrač v chunku muže bít hodně dlouho dokud ho hrač jakýkoliv nebouchne zas chank ban hemmerem.Hrač se z daneho chunku nemuže dostat do jíneho daní hrač muže se pohybovat v daním chanku.Daní hrač v ban chunku nemuže bojovat ani dělat pvp.
src/main/java/eu/codexe/chunkbanmod/chunk/BanChunkManager.java
package eu.codexe.chunkbanmod.chunk;
import eu.codexe.chunkbanmod.ChunkBanMod;
import net.minecraft.core.BlockPos;
import net.minecraft.server.level.ServerLevel;
import net.minecraft.server.level.ServerPlayer;
import net.minecraft.world.level.ChunkPos;
import net.minecraft.world.level.Level;
import net.minecraftforge.event.entity.living.LivingAttackEvent;
import net.minecraftforge.event.entity.living.LivingEvent;
import net.minecraftforge.event.level.BlockEvent;
import net.minecraftforge.event.entity.player.AttackEntityEvent;
import net.minecraftforge.eventbus.api.SubscribeEvent;
import net.minecraftforge.fml.common.Mod;
import net.minecraft.world.phys.Vec3;
import net.minecraft.world.entity.Entity;
import java.util.Map;
import java.util.Set;
import java.util.UUID;
import java.util.concurrent.ConcurrentHashMap;
@Mod.EventBusSubscriber(modid = ChunkBanMod.MOD_ID)
public final class BanChunkManager {
private static final Map<UUID, ChunkPos> PLAYER_BANNED_CHUNK = new ConcurrentHashMap<>();
private static final Set<String> ACTIVE_CHUNKS = ConcurrentHashMap.newKeySet();
private BanChunkManager() {
}
public static void toggleChunkBan(Level level, ChunkPos chunkPos, ServerPlayer owner) {
String key = key(level, chunkPos);
if (ACTIVE_CHUNKS.contains(key)) {
ACTIVE_CHUNKS.remove(key);
} else {
ACTIVE_CHUNKS.add(key);
}
PLAYER_BANNED_CHUNK.put(owner.getUUID(), chunkPos);
}
public static boolean isChunkBanned(Level level, ChunkPos chunkPos) {
return ACTIVE_CHUNKS.contains(key(level, chunkPos));
}
public static boolean isPlayerRestricted(ServerPlayer player) {
return PLAYER_BANNED_CHUNK.containsKey(player.getUUID());
}
public static ChunkPos getRestrictedChunk(ServerPlayer player) {
return PLAYER_BANNED_CHUNK.get(player.getUUID());
}
public static void clearRestriction(ServerPlayer player) {
PLAYER_BANNED_CHUNK.remove(player.getUUID());
}
@SubscribeEvent
public static void onPlayerTick(LivingEvent.LivingTickEvent event) {
if (!(event.getEntity() instanceof ServerPlayer player)) {
return;
}