{"action":"created","issue":{"url":"https://api.github.com/repos/SpongePowered/SpongeCommon/issues/8","repository_url":"https://api.github.com/repos/SpongePowered/SpongeCommon","labels_url":"https://api.github.com/repos/SpongePowered/SpongeCommon/issues/8/labels{/name}","comments_url":"https://api.github.com/repos/SpongePowered/SpongeCommon/issues/8/comments","events_url":"https://api.github.com/repos/SpongePowered/SpongeCommon/issues/8/events","html_url":"https://github.com/SpongePowered/SpongeCommon/issues/8","id":70594791,"number":8,"title":"Implement DataProcessors","user":{"login":"gabizou","id":1203877,"avatar_url":"https://avatars2.githubusercontent.com/u/1203877?v=4","gravatar_id":"","url":"https://api.github.com/users/gabizou","html_url":"https://github.com/gabizou","followers_url":"https://api.github.com/users/gabizou/followers","following_url":"https://api.github.com/users/gabizou/following{/other_user}","gists_url":"https://api.github.com/users/gabizou/gists{/gist_id}","starred_url":"https://api.github.com/users/gabizou/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gabizou/subscriptions","organizations_url":"https://api.github.com/users/gabizou/orgs","repos_url":"https://api.github.com/users/gabizou/repos","events_url":"https://api.github.com/users/gabizou/events{/privacy}","received_events_url":"https://api.github.com/users/gabizou/received_events","type":"User","site_admin":false},"labels":[{"id":201461130,"url":"https://api.github.com/repos/SpongePowered/SpongeCommon/labels/help%20wanted","name":"help wanted","color":"fef2c0","default":true},{"id":201460990,"url":"https://api.github.com/repos/SpongePowered/SpongeCommon/labels/system:%20data","name":"system: data","color":"10E7E8","default":false},{"id":201461275,"url":"https://api.github.com/repos/SpongePowered/SpongeCommon/labels/type:%20major%20feature","name":"type: major feature","color":"bfd4f2","default":false}],"state":"open","locked":false,"assignee":{"login":"gabizou","id":1203877,"avatar_url":"https://avatars2.githubusercontent.com/u/1203877?v=4","gravatar_id":"","url":"https://api.github.com/users/gabizou","html_url":"https://github.com/gabizou","followers_url":"https://api.github.com/users/gabizou/followers","following_url":"https://api.github.com/users/gabizou/following{/other_user}","gists_url":"https://api.github.com/users/gabizou/gists{/gist_id}","starred_url":"https://api.github.com/users/gabizou/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gabizou/subscriptions","organizations_url":"https://api.github.com/users/gabizou/orgs","repos_url":"https://api.github.com/users/gabizou/repos","events_url":"https://api.github.com/users/gabizou/events{/privacy}","received_events_url":"https://api.github.com/users/gabizou/received_events","type":"User","site_admin":false},"assignees":[{"login":"gabizou","id":1203877,"avatar_url":"https://avatars2.githubusercontent.com/u/1203877?v=4","gravatar_id":"","url":"https://api.github.com/users/gabizou","html_url":"https://github.com/gabizou","followers_url":"https://api.github.com/users/gabizou/followers","following_url":"https://api.github.com/users/gabizou/following{/other_user}","gists_url":"https://api.github.com/users/gabizou/gists{/gist_id}","starred_url":"https://api.github.com/users/gabizou/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gabizou/subscriptions","organizations_url":"https://api.github.com/users/gabizou/orgs","repos_url":"https://api.github.com/users/gabizou/repos","events_url":"https://api.github.com/users/gabizou/events{/privacy}","received_events_url":"https://api.github.com/users/gabizou/received_events","type":"User","site_admin":false}],"milestone":null,"comments":158,"created_at":"2015-04-24T05:49:08Z","updated_at":"2017-11-16T08:24:03Z","closed_at":null,"author_association":"OWNER","body":"Given that Data API is rather large when it comes to the amount of data it is supposed to handle, this is a checklist of the data that is implemented.\r\n\r\nIf you'd like to implement one, please follow these guidelines by copy pasting this code block into your PR description and check mark as necessary:\r\n\r\n----------\r\n\r\nImplementation of `REPLACE_WITH_DATA_MANIPULATOR`.\r\n- [ ] Registration of field getters and setters\r\n- [x] Accurately used the appropriate `AbstractData` implementation\r\n\r\nImplementation of `REPLACE_WITH_IMMUTABLE_MANIPULATOR`\r\n- [ ] Accurately extended the appropriate `AbstractImmutableData` implementation\r\n- [ ] Accurately instantiating final instance fields with an `ImmutableValue` counter part for any value getters\r\n- [x] If necessary, creating a new `ImmutableValue` for a value that should not be cached, or, using the existing caching utils.\r\n\r\nImplementation of the `VALUE_PROCESSOR`(s):\r\n- [x] Appropriately extended `AbstractSpongeValueProcessor`\r\n- [ ] Individual processors for each source type possible (one for `ItemStack`/`TileEntity`/`Entity` as necessary).\r\n\r\nRegistration:\r\n- [ ] Registered the `Key` correctly by `FIELD_NAME` in the `KeyRegistry`\r\n- [ ] Registered the `DataProcessor`s and `DataManipulatorBuilder` in `SpongeSerializationRegistry`\r\n- [x] Registered the `ValueProcessor`s in the `SpongeSerializationRegistry`\r\n\r\nYou should create and include a test plugin in your pull request. Preferably, it should test all possible value related methods with your `DataManipulator`s and also test the serialization and deserialization of your `DataManipulator`s.\r\n\r\n----------\r\n\r\nThe Checklist:\r\n\r\n**TileData**\r\n- [x] BannerData (@gabizou)\r\n- [x] BeaconData (@Rain336)\r\n- [ ] BedData \r\n- [x] BrewingStandData (@Feeliiix)\r\n- [x] CooldownData (@Rain336)\r\n- [x] EndGatewayData (@kashike)\r\n- [x] FurnaceData (@Feeliiix)\r\n- [x] LockableData (@JBYoshi)\r\n- [x] NoteData (@ZephireNZ)\r\n- [x] SignData (@gabizou)\r\n- [x] StructureData (@kashike)\r\n\r\n**EntityData**\r\n- [x] AbsorptionData (@kashike)\r\n- [x] AchievementData (@ST-DDT / @windy1) - No longer relevant past 1.11\r\n- [x] AffectsSpawningData (@kashike)\r\n- [x] AgeableData (@Maxqia)\r\n- [x] AgentData (@clienthax)\r\n- [x] AggressiveData (@sanman00)\r\n- [x] AngerableData (@sanman00)\r\n- [x] AreaEffectCloudData (@gabizou)\r\n- [x] ArmorStandData (@gabizou)\r\n- [x] ArtData (@saladoc)\r\n- [x] BodyPartRotationalData (@sanman00)\r\n- [x] BreathingData\r\n- [x] BreedableData (@oliverdunk)\r\n- [x] CareerData\r\n- [x] ChargedData (@clienthax)\r\n- [x] CriticalHitData (@Rain336)\r\n- [x] CustomNameVisibleData (@kashike)\r\n- [ ] DamageableData - Requires hooking into the CombatTracker\r\n- [ ] DamagingData - Requires hooking into attacking.\r\n- [x] DespawnDelayData (@kashike)\r\n- [ ] DominantHandData\r\n- [x] ElderData (@ZephireNZ) - No longer existing\r\n- [x] ExperienceHolderData (@lucdon)\r\n- [x] ExpirableData (@gabizou)\r\n- [x] ExplosiveRadiusData (@windy)\r\n- [x] ExpOrbData (@clienthax)\r\n- [x] EyeLocationData (@DDoS)\r\n- [x] FallDistanceData (@ZephireNZ)\r\n- [x] FallingBlockData (@clienthax)\r\n- [x] FlammableData (@JBYoshi)\r\n- [x] FlyingAbilityData (@hsyyid)\r\n- [x] FlyingData (@hsyyid)\r\n- [x] FoodData (@gabizou)\r\n- [x] FuseData (@windy1) \r\n- [x] GameModeData (@jamierocks)\r\n- [x] GlowingData (@ZephireNZ)\r\n- [x] GriefingData (@Cybermaxke)\r\n- [x] HealingSourceData (@JBYoshi - replaced with `EnderDragon.getHealingCrystal()`)\r\n- [x] HealthData\r\n- [x] HealthScalingData (@gabizou)\r\n- [x] HorseData (@Aaron1011)\r\n- [x] IgniteableData (@hsyyid)\r\n- [x] InvisibilityData (@hsyyid)\r\n- [x] InvulnerabilityData (@JBYoshi)\r\n- [x] JoinData (@gabizou)\r\n- [x] KnockbackData (@sanman00)\r\n- [ ] LeashData\r\n- [x] MinecartBlockData (@ZephireNZ)\r\n- [x] MovementSpeedData (@clienthax)\r\n- [x] OcelotData (@sanman00)\r\n- [ ] ParrotData (@meronat) - https://github.com/SpongePowered/SpongeCommon/pull/1495\r\n- [x] PassengerData (@me4502)\r\n- [x] PersistingData (@oliverdunk)\r\n- [x] PigSaddleData (@clienthax)\r\n- [x] PlayerCreatedData (@clienthax)\r\n- [x] PlayingData (@clienthax)\r\n- [x] RabbitData (@sanman00)\r\n- [x] RespawnLocationData (@simon816)\r\n- [x] ScreamingData (@Grinch)\r\n- [x] ShatteringData (@clienthax)\r\n- [x] ShearedData (@clienthax)\r\n- [x] SittingData (@clienthax)\r\n- [ ] SizeData (@hsyyid / @meronat) - https://github.com/SpongePowered/SpongeCommon/pull/1492\r\n- [x] SkeletonData (@sanman00)\r\n- [x] SkinData (@simon816)\r\n- [ ] SleepingData (@sanman00) - https://github.com/SpongePowered/SpongeCommon/pull/1488\r\n- [x] SlimeData (@Aaron1011)\r\n- [x] SneakingData\r\n- [x] SprintData (@kashike)\r\n- [x] StatisticData (@ST-DDT / @windy1)\r\n- [x] StuckArrowsData (@kashike)\r\n- [ ] TagData (@meronat) - https://github.com/SpongePowered/SpongeCommon/pull/1490\r\n- [x] TameableData (@gabizou)\r\n- [x] TargetLivingData (@Me4502)\r\n- [x] TradeOfferData (@Rain336)\r\n- [x] VehicleData (@hsyyid)\r\n- [x] VelocityData (@gabizou)\r\n- [x] VillagerZombieData (@Aaron1011)\r\n\r\n**ItemData**\r\n- [x] AuthorData (@lucdon)\r\n- [x] BlockItemData (@kenzierocks)\r\n- [x] BreakableData (@JBYoshi)\r\n- [x] CoalData (@JBYoshi)\r\n- [x] CookedFishData (@JBYoshi)\r\n- [x] DurabilityData (@Rain336)\r\n- [x] EnchantmentData (@gabizou)\r\n- [x] FishData (@JBYoshi)\r\n- [x] GenerationData (@JBYoshi)\r\n- [x] GoldenAppleData (@Aaron1011)\r\n- [x] HideData (@Rain336)\r\n- [ ] InventoryItemData - Requires Inventory implementation\r\n- [x] LoreData (@lucdon)\r\n- [ ] MapItemData (@modwizcode)\r\n- [x] PagedData\r\n- [x] PlaceableData (@JBYoshi)\r\n- [x] SpawnableData (@Rain336)\r\n- [x] SplashPotionData\r\n- [x] StoredEnchantmentData (@Rain336)\r\n\r\n**BlockData**\r\n- [x] AttachedData (@lucdon)\r\n- [x] AxisData (@lucdon)\r\n- [x] BigMushroomData (@lucdon)\r\n- [x] BrickData (@lucdon)\r\n- [x] ComparatorData (@lucdon)\r\n- [x] ConnectedDirectionData (@lucdon)\r\n- [x] DecayableData (@lucdon)\r\n- [x] DelayableData (@lucdon)\r\n- [x] DirectionalData (@lucdon)\r\n- [x] DirtData (@lucdon)\r\n- [x] DisarmedData (@lucdon)\r\n- [x] DisguisedBlockData (@lucdon)\r\n- [x] DoublePlantData (@lucdon)\r\n- [x] DropData (@lucdon)\r\n- [x] ExtendedData (@lucdon)\r\n- [x] FilledData (@Me4502)\r\n- [x] FluidLevelData (@Me4502)\r\n- [x] GrowthData (@lucdon)\r\n- [x] HingeData (@lucdon)\r\n- [x] InWallData (@lucdon)\r\n- [x] LayeredData (@lucdon)\r\n- [x] LogAxisData (@gabizou)\r\n- [x] MoistureData (@Me4502)\r\n- [x] OccupiedData (@lucdon)\r\n- [x] OpenData (@lucdon)\r\n- [x] PistonData (@lucdon)\r\n- [x] PlantData (@lucdon)\r\n- [x] PortionData (@lucdon)\r\n- [x] PoweredData (@lucdon)\r\n- [x] PrismarineData (@lucdon)\r\n- [x] QuartzData (@lucdon)\r\n- [x] RailDirectionData (@lucdon)\r\n- [x] RedstonePoweredData (@lucdon)\r\n- [x] SandData (@lucdon)\r\n- [x] SandstoneData (@lucdon)\r\n- [x] SeamlessData (@lucdon)\r\n- [x] ShrubData (@lucdon)\r\n- [x] SlabData (@lucdon)\r\n- [x] SnowedData (@lucdon)\r\n- [x] StairShapeData (@lucdon)\r\n- [x] StoneData (@lucdon)\r\n- [x] SuspendedData (@lucdon)\r\n- [x] TreeData (@lucdon)\r\n- [x] WallData (@lucdon)\r\n- [ ] WireAttachmentData - Partially done\r\n\r\n**Common Data**\r\n- [x] ColoredData (@kenzierocks)\r\n- [x] CommandData (@sanman00)\r\n- [x] DisplayNameData\r\n- [x] DyeableData (@Rain336)\r\n- [x] FireworkEffectData (@ZephireNZ)\r\n- [x] FireworkRocketData (@ZephireNZ)\r\n- [x] MobSpawnerData (@ZephireNZ)\r\n- [x] PotionEffectData (@gabizou)\r\n- [x] RepresentedItemData\r\n- [x] RepresentedPlayerData (@saladoc)\r\n- [x] RotationalData (@Rain336)\r\n- [x] SkullData\r\n- [x] TargetedLocationData (@kashike)\r\n- [x] WetData (@sanman00)\r\n\r\nUpdated as of August 18th, 2017"},"comment":{"url":"https://api.github.com/repos/SpongePowered/SpongeCommon/issues/comments/344849227","html_url":"https://github.com/SpongePowered/SpongeCommon/issues/8#issuecomment-344849227","issue_url":"https://api.github.com/repos/SpongePowered/SpongeCommon/issues/8","id":344849227,"user":{"login":"Meronat","id":18372958,"avatar_url":"https://avatars0.githubusercontent.com/u/18372958?v=4","gravatar_id":"","url":"https://api.github.com/users/Meronat","html_url":"https://github.com/Meronat","followers_url":"https://api.github.com/users/Meronat/followers","following_url":"https://api.github.com/users/Meronat/following{/other_user}","gists_url":"https://api.github.com/users/Meronat/gists{/gist_id}","starred_url":"https://api.github.com/users/Meronat/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Meronat/subscriptions","organizations_url":"https://api.github.com/users/Meronat/orgs","repos_url":"https://api.github.com/users/Meronat/repos","events_url":"https://api.github.com/users/Meronat/events{/privacy}","received_events_url":"https://api.github.com/users/Meronat/received_events","type":"User","site_admin":false},"created_at":"2017-11-16T08:24:03Z","updated_at":"2017-11-16T08:24:03Z","author_association":"CONTRIBUTOR","body":"Working on it as time allows. Have a few PRs open implementing various data that should be good to go. Will be opening a PR to add disabled slot control to ArmorStandData soon, then I'll look into bed and leashes. Then from there we will see, I may look into the missing combat ones. "}}
{"actor":{"display_login":"Meronat"}}