Data hosted with ♥ by Pastebin.com - Download Raw - See Original
  1. public class ... {
  2.     private HashSet<Message> messages = new HashSet<>();
  3.  
  4.     void init(ConfigurationLoader<CommentedConfigurationNode> localLoader) {
  5.         try {
  6.             TypeSerializerCollection serializers = TypeSerializers.getDefaultSerializers().newChild();
  7.             serializers.registerType(TypeToken.of(Message.class), new MessageSerializer());
  8.             ConfigurationOptions options = ConfigurationOptions.defaults()
  9.                     .setSerializers(serializers);
  10.             CommentedConfigurationNode node = localLoader.load(options);
  11.  
  12.             this.messages.add(new Message(1, 600, "msg1"));
  13.             this.messages.add(new Message(2, 600, "msg2"));
  14.             this.messages.add(new Message(3, 600, "msg3"));
  15.             this.messages.add(new Message(4, 600, "msg4"));
  16.  
  17.             node.getNode("messages").setValue(this.messages);
  18.  
  19.             localLoader.save(node);
  20.         } catch (IOException e) {
  21.             this.logger.warn("Error saving default config!", e);
  22.         }
  23.     }
  24. }
  25.  
  26. public class MessageSerializer implements TypeSerializer<Message> {
  27.  
  28.     public MessageSerializer() {
  29.     }
  30.  
  31.     @Override
  32.     public Message deserialize(TypeToken<?> typeToken, ConfigurationNode value) throws ObjectMappingException {
  33.         int id = value.getNode("id").getInt();
  34.         int interval = value.getNode("interval").getInt();
  35.         String message = value.getNode("message").getString();
  36.         return new Message(id, interval, message);
  37.     }
  38.  
  39.     @Override
  40.     public void serialize(TypeToken<?> typeToken, Message message, ConfigurationNode value) throws ObjectMappingException {
  41.         value.getNode("id").setValue(message.getId());
  42.         value.getNode("interval").setValue(message.getInterval());
  43.         value.getNode("message").setValue(message.getMessage());
  44.     }
  45.  
  46. }