Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package fr.mosca421.worldprotector.utils;
- import java.util.ArrayList;
- import java.util.HashMap;
- import net.minecraft.nbt.NBTTagCompound;
- import net.minecraft.nbt.NBTTagList;
- import net.minecraft.util.math.AxisAlignedBB;
- import net.minecraft.world.WorldSavedData;
- import net.minecraft.world.storage.MapStorage;
- import net.minecraftforge.common.util.Constants.NBT;
- import net.minecraftforge.common.util.INBTSerializable;
- import net.minecraftforge.fml.common.event.FMLServerStartingEvent;
- public class Saver extends WorldSavedData {
- private static Saver INSTANCE;
- private static final HashMap<String, Region> regions = new HashMap<String, Region>();
- public static void save() {
- if (INSTANCE != null) {
- INSTANCE.markDirty();
- }
- }
- public Saver(String name) {
- super(name);
- }
- @Override
- public void readFromNBT(NBTTagCompound nbt) {
- regions.clear();
- NBTTagList regionsList = nbt.getTagList("regions", NBT.TAG_COMPOUND);
- for (int i = 0; i < regionsList.tagCount(); i++) {
- Region area = new Region();
- area.deserializeNBT(regionsList.getCompoundTagAt(i));
- regions.put(area.getName(), area);
- }
- }
- @Override
- public NBTTagCompound writeToNBT(NBTTagCompound compound) {
- NBTTagList regionsList = new NBTTagList();
- for (Region area : regions.values()) {
- regionsList.appendTag(area.serializeNBT());
- }
- compound.setTag("regions", regionsList);
- return compound;
- }
- public static void onServerStarting(FMLServerStartingEvent event) {
- if (!event.getServer().getEntityWorld().isRemote) {
- MapStorage storage = event.getServer().getEntityWorld().getMapStorage();
- Saver data = (Saver) storage.getOrLoadData(Saver.class, "worldprotector");
- if (data == null) {
- data = new Saver("worldprotector");
- storage.setData("worldprotector", data);
- }
- INSTANCE = data;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement