mirror of
				https://github.com/mcMMO-Dev/mcMMO.git
				synced 2025-11-04 11:03:43 +01:00 
			
		
		
		
	Custom Serializer for DamageProperty
This commit is contained in:
		@@ -3,7 +3,7 @@ Version 2.2.0
 | 
			
		||||
    !!!!!!!!!!!!!!!!!!!!!!!!
 | 
			
		||||
    This changelog is not complete, I'll be going over it and cleaning it up once 2.2 is close to release
 | 
			
		||||
    !!!!!!!!!!!!!!!!!!!!!!!!
 | 
			
		||||
    !!!!!!!!!!!!!!!!!!!!!!!!
 | 
			
		||||
    !!!!!!!!!!!!!!!!!!!!!!!!mvn clea
 | 
			
		||||
    mcMMO's config system has been rewritten
 | 
			
		||||
    Nearly every config setting has been renamed and most have brand new comments
 | 
			
		||||
    You can now add an unlimited number of custom XP perks with custom defined XP boosts
 | 
			
		||||
 
 | 
			
		||||
@@ -5,9 +5,9 @@ import com.gmail.nossr50.datatypes.party.PartyFeature;
 | 
			
		||||
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
 | 
			
		||||
import com.gmail.nossr50.locale.LocaleLoader;
 | 
			
		||||
import com.gmail.nossr50.party.PartyManager;
 | 
			
		||||
import com.gmail.nossr50.util.commands.CommandUtils;
 | 
			
		||||
import com.gmail.nossr50.util.player.UserManager;
 | 
			
		||||
import com.google.common.collect.ImmutableList;
 | 
			
		||||
import com.gmail.nossr50.util.commands.CommandUtils;
 | 
			
		||||
import org.bukkit.ChatColor;
 | 
			
		||||
import org.bukkit.command.Command;
 | 
			
		||||
import org.bukkit.command.CommandExecutor;
 | 
			
		||||
 
 | 
			
		||||
@@ -48,6 +48,7 @@ import com.gmail.nossr50.datatypes.experience.CustomXPPerk;
 | 
			
		||||
import com.gmail.nossr50.datatypes.experience.FormulaType;
 | 
			
		||||
import com.gmail.nossr50.datatypes.party.PartyFeature;
 | 
			
		||||
import com.gmail.nossr50.datatypes.skills.PrimarySkillType;
 | 
			
		||||
import com.gmail.nossr50.datatypes.skills.properties.DamageProperty;
 | 
			
		||||
import com.gmail.nossr50.mcMMO;
 | 
			
		||||
import com.gmail.nossr50.skills.repair.repairables.Repairable;
 | 
			
		||||
import com.gmail.nossr50.skills.salvage.salvageables.Salvageable;
 | 
			
		||||
@@ -260,6 +261,7 @@ public final class ConfigManager {
 | 
			
		||||
        customSerializers.registerType(TypeToken.of(Salvageable.class), new SalvageableSerializer());
 | 
			
		||||
        customSerializers.registerType(TypeToken.of(MinecraftMaterialWrapper.class), new MinecraftMaterialWrapperSerializer());
 | 
			
		||||
        customSerializers.registerType(TypeToken.of(CustomXPPerk.class), new CustomXPPerkSerializer());
 | 
			
		||||
        customSerializers.registerType(TypeToken.of(DamageProperty.class), new DamagePropertySerializer());
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
 
 | 
			
		||||
@@ -0,0 +1,31 @@
 | 
			
		||||
package com.gmail.nossr50.config.hocon;
 | 
			
		||||
 | 
			
		||||
import com.gmail.nossr50.datatypes.skills.properties.AbstractDamageProperty;
 | 
			
		||||
import com.gmail.nossr50.datatypes.skills.properties.DamageProperty;
 | 
			
		||||
import com.google.common.reflect.TypeToken;
 | 
			
		||||
import ninja.leaping.configurate.ConfigurationNode;
 | 
			
		||||
import ninja.leaping.configurate.objectmapping.ObjectMappingException;
 | 
			
		||||
import ninja.leaping.configurate.objectmapping.serialize.TypeSerializer;
 | 
			
		||||
import org.checkerframework.checker.nullness.qual.NonNull;
 | 
			
		||||
import org.checkerframework.checker.nullness.qual.Nullable;
 | 
			
		||||
 | 
			
		||||
public class DamagePropertySerializer implements TypeSerializer<DamageProperty> {
 | 
			
		||||
 | 
			
		||||
    public static final String PVP_NODE = "PVP";
 | 
			
		||||
    public static final String PVE_NODE = "PVE";
 | 
			
		||||
 | 
			
		||||
    @Nullable
 | 
			
		||||
    @Override
 | 
			
		||||
    public DamageProperty deserialize(@NonNull TypeToken<?> type, @NonNull ConfigurationNode value) throws ObjectMappingException {
 | 
			
		||||
        Float pvp = value.getNode(PVP_NODE).getValue(TypeToken.of(Float.class));
 | 
			
		||||
        Float pve = value.getNode(PVE_NODE).getValue(TypeToken.of(Float.class));
 | 
			
		||||
        DamageProperty damageProperty = new AbstractDamageProperty(pve, pvp);
 | 
			
		||||
        return damageProperty;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public void serialize(@NonNull TypeToken<?> type, @Nullable DamageProperty obj, @NonNull ConfigurationNode value) throws ObjectMappingException {
 | 
			
		||||
        value.getNode(PVP_NODE).setValue(obj.getPVPModifier());
 | 
			
		||||
        value.getNode(PVE_NODE).setValue(obj.getPVEModifier());
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@@ -1,6 +1,5 @@
 | 
			
		||||
package com.gmail.nossr50.config.hocon.skills.axes;
 | 
			
		||||
 | 
			
		||||
import com.gmail.nossr50.datatypes.skills.SubSkillType;
 | 
			
		||||
import com.gmail.nossr50.datatypes.skills.properties.AbstractDamageProperty;
 | 
			
		||||
import com.gmail.nossr50.datatypes.skills.properties.AbstractMaximumProgressionLevel;
 | 
			
		||||
import com.gmail.nossr50.datatypes.skills.properties.DamageProperty;
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user