public JsonObject Serialize() { JsonObject obj = new JsonObject { { NameTag, Name }, { IDTag, ID } }; string colorName = ChatColor.GetName(Color); if (colorName != null) { obj.Add(ColorTag, colorName); } if (Prefix.Length > 0) { obj.Add(PrefixTag, Prefix); } obj.Add(AgBlocksTag, AntiGriefBlocks); obj.Add(AgSecondsTag, AntiGriefSeconds); if (DrawLimit > 0) { obj.Add(DrawLimitTag, DrawLimit); } if (IdleKickTimer > 0) { obj.Add(IdleKickTag, IdleKickTimer); } if (ReservedSlot) { obj.Add(ReserveTag, ReservedSlot); } if (AllowSecurityCircumvention) { obj.Add(SecurityCircTag, AllowSecurityCircumvention); } obj.Add(CopyTag, CopySlots); obj.Add(FillTag, FillLimit); List <PermissionJsonObject> perms = new List <PermissionJsonObject>(); for (int i = 0; i < Enum.GetValues(typeof(Permission)).Length; i++) { PermissionJsonObject pt = new PermissionJsonObject(); if (Permissions[i]) { pt.PermissionValue = i; if (PermissionLimits[i] != null) { pt.PerissionLimitString = "max: " + GetLimit((Permission)i).FullName; } } perms.Add(pt); } return(obj); }