Add PlayerNotificationSerializer

This commit is contained in:
nossr50 2019-06-12 10:01:18 -07:00
parent b03abcdee8
commit b0f09c8e7b
3 changed files with 36 additions and 1 deletions

View File

@ -16,6 +16,7 @@ import com.gmail.nossr50.config.hocon.metrics.ConfigMetrics;
import com.gmail.nossr50.config.hocon.mobs.ConfigMobs; import com.gmail.nossr50.config.hocon.mobs.ConfigMobs;
import com.gmail.nossr50.config.hocon.motd.ConfigMOTD; import com.gmail.nossr50.config.hocon.motd.ConfigMOTD;
import com.gmail.nossr50.config.hocon.notifications.ConfigNotifications; import com.gmail.nossr50.config.hocon.notifications.ConfigNotifications;
import com.gmail.nossr50.config.hocon.notifications.PlayerNotification;
import com.gmail.nossr50.config.hocon.particles.ConfigParticles; import com.gmail.nossr50.config.hocon.particles.ConfigParticles;
import com.gmail.nossr50.config.hocon.party.ConfigParty; import com.gmail.nossr50.config.hocon.party.ConfigParty;
import com.gmail.nossr50.config.hocon.party.data.ConfigPartyData; import com.gmail.nossr50.config.hocon.party.data.ConfigPartyData;
@ -272,6 +273,7 @@ public final class ConfigManager {
customSerializers.registerType(TypeToken.of(SkillCeiling.class), new SkillCeilingSerializer()); customSerializers.registerType(TypeToken.of(SkillCeiling.class), new SkillCeilingSerializer());
customSerializers.registerType(TypeToken.of(SkillRankProperty.class), new SkillRankPropertySerializer()); customSerializers.registerType(TypeToken.of(SkillRankProperty.class), new SkillRankPropertySerializer());
customSerializers.registerType(TypeToken.of(MaxBonusLevel.class), new MaxBonusLevelSerializer()); customSerializers.registerType(TypeToken.of(MaxBonusLevel.class), new MaxBonusLevelSerializer());
customSerializers.registerType(TypeToken.of(PlayerNotification.class), new PlayerNotificationSerializer());
} }
/** /**

View File

@ -20,7 +20,6 @@ public class MinecraftMaterialWrapperSerializer implements TypeSerializer<Minecr
@Override @Override
public void serialize(TypeToken<?> type, MinecraftMaterialWrapper obj, ConfigurationNode value) { public void serialize(TypeToken<?> type, MinecraftMaterialWrapper obj, ConfigurationNode value) {
value.setValue(obj.getName()); //Name value.setValue(obj.getName()); //Name
value.getNode(FULLY_QUALIFIED_NAME).setValue(obj.getFullyQualifiedName()); value.getNode(FULLY_QUALIFIED_NAME).setValue(obj.getFullyQualifiedName());
value.getNode(BUKKIT_MATERIAL_NAME).setValue(obj.getBukkitMaterialName()); value.getNode(BUKKIT_MATERIAL_NAME).setValue(obj.getBukkitMaterialName());

View File

@ -0,0 +1,34 @@
package com.gmail.nossr50.config.hocon.serializers;
import com.gmail.nossr50.config.hocon.notifications.PlayerNotification;
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 PlayerNotificationSerializer implements TypeSerializer<PlayerNotification> {
private static final String ENABLED_NODE = "Enabled";
private static final String SEND_TO_CHAT_NODE = "Send-To-Chat";
private static final String SEND_TO_ACTION_BAR_NODE = "Send-To-Action-Bar";
@Nullable
@Override
public PlayerNotification deserialize(@NonNull TypeToken<?> type, @NonNull ConfigurationNode value) throws ObjectMappingException {
Boolean enabled = value.getNode(ENABLED_NODE).getValue(TypeToken.of(Boolean.class));
Boolean sendTochat = value.getNode(SEND_TO_CHAT_NODE).getValue(TypeToken.of(Boolean.class));
Boolean sendToActionBar = value.getNode(SEND_TO_ACTION_BAR_NODE).getValue(TypeToken.of(Boolean.class));
PlayerNotification playerNotification = new PlayerNotification(enabled, sendTochat, sendToActionBar);
return playerNotification;
}
@Override
public void serialize(@NonNull TypeToken<?> type, @Nullable PlayerNotification obj, @NonNull ConfigurationNode value) throws ObjectMappingException {
value.getNode(ENABLED_NODE).setValue(obj.isEnabled());
value.getNode(SEND_TO_CHAT_NODE).setValue(obj.isSendToChat());
value.getNode(SEND_TO_ACTION_BAR_NODE).setValue(obj.isSendToActionBar());
}
}