Unicopia/src/main/java/com/minelittlepony/unicopia/WorldTribeManager.java

42 lines
1.2 KiB
Java

package com.minelittlepony.unicopia;
import net.minecraft.nbt.CompoundTag;
import net.minecraft.server.world.ServerWorld;
import net.minecraft.world.PersistentState;
import net.minecraft.world.dimension.DimensionType;
public class WorldTribeManager extends PersistentState {
private Race defaultRace = Unicopia.getConfig().preferredRace.get();
public WorldTribeManager(ServerWorld world) {
super(nameFor(world.getDimension()));
}
public Race getDefaultRace() {
return defaultRace;
}
public Race setDefaultRace(Race race) {
return defaultRace = race;
}
@Override
public void fromTag(CompoundTag tag) {
defaultRace = Race.fromName(tag.getString("defaultRace"));
}
@Override
public CompoundTag toTag(CompoundTag tag) {
tag.putString("defaultRace", defaultRace.name());
return tag;
}
public static String nameFor(DimensionType dimension) {
return "unicopia:tribes" + dimension.getSuffix();
}
public static WorldTribeManager forWorld(ServerWorld world) {
return world.getPersistentStateManager().getOrCreate(() -> new WorldTribeManager(world), nameFor(world.getDimension()));
}
}