Commit graph

135 commits

Author SHA1 Message Date
CraftBukkit/Spigot
a13bf3a57f SPIGOT-5900: Add test for the order of Material enum entries
By: Ben Woodworth <ben@benwoodworth.net>
2020-07-02 09:34:13 +10:00
CraftBukkit/Spigot
c6249c09b0 SPIGOT-5908: CompassMeta for new lodestone compass data
By: md_5 <git@md-5.net>
2020-07-01 10:48:37 +10:00
CraftBukkit/Spigot
178090a153 SPIGOT-5907: Item Frame NBT data disappears
By: md_5 <git@md-5.net>
2020-07-01 10:00:24 +10:00
CraftBukkit/Spigot
24a247fce5 SPIGOT-5845: ChatColor.RESET does not work in ItemMeta to reset italics
By: md_5 <git@md-5.net>
2020-06-27 10:37:33 +10:00
CraftBukkit/Spigot
fff84f2f22 CraftChatMessageTest does not need AbstractTestingBase
By: md_5 <git@md-5.net>
2020-06-27 09:28:17 +10:00
CraftBukkit/Spigot
e388fab4fe SPIGOT-5805: NPE when getting an Attribute from a Player
By: md_5 <git@md-5.net>
2020-06-25 13:19:24 +10:00
CraftBukkit/Spigot
50503fd516 Update to Minecraft 1.16.1
By: md_5 <git@md-5.net>
2020-06-25 10:00:00 +10:00
CraftBukkit/Spigot
a1cc6a4683 SPIGOT-4441: Fix serializing Components to and from Legacy
While 9862a0135d might of semi helped being able to save black text
lore, it actually took a fundamental problem with the legacy serialization
code and expanded it to break even more aspects of the server when dealing
with Component to Legacy conversion.

This is causing data loss in Spigot with cases such as setting an item name
to white gets stripped resulting in it being italic.

Additionally, things such as book pages have been returning black formatting
codes for the end of the line even when the user doesn't have colors in the book.

The root issue is that the "Default Color" system is fundamentally wrong.

Components do not and should not care about what element of the game they
are being used by, and that's what the default color system did.

It results in components that if obtained from 1 source such as a Book
where the default / rendered color is black, is then copied to another
source such as an Entity name, the black is carried forward and shown
in the Entity name, when in reality it should have been white.

This commit reverts 9862a0135d and fixes the underlying serialization
issues when it comes to Legacy to and From conversions.

There was quite a number of issues with this code overall, in how
it handles inserting color codes, new line parsing and such.

Books was using mojangs own "getLegacyString" which doesn't match behavior.
We also do not want to use Mojangs method as there is no guarantee they don't
remove that in future.
Plus, everything about books uses the CB implementation anyways, and it should
be consistent (this was mandatory to avoid serialization format changes on old vs new)

These changes as is results in Item Stacks already serialized will not
change contents when they go to component and back, so this won't impact
any existing data.

Newly created books though for example will change behavior in that they
will no longer insert black color codes in the serialized data and will
only represent intentional color changes by the creator of the book.
This will result in cleaner data on them, and books are the only thing
I'm aware of that has a behavioral shift due to the likelyhood of the
default color system kicking in on other parts of the string.

A unit test has been added to verify integrity of serialization to
ensure that any legacy string that is converted into Components will
always re-encode back in the same way when going back to Legacy.

By: Aikar <aikar@aikar.co>
2020-06-01 19:19:42 +10:00
CraftBukkit/Spigot
515509a1a9 #665: Add test for Material#getCraftingRemainingItem()
By: ben <ben@benwoodworth.net>
2020-05-28 19:31:27 +10:00
CraftBukkit/Spigot
18886036f4 Misc checkstyle fixes
By: md_5 <git@md-5.net>
2020-04-14 12:34:43 +10:00
CraftBukkit/Spigot
e18fd0cff5 #639: Deep clone itemmetas persistent container on clone
After this commit, spigot now creates a deep copy of the
itemmeta's persistent data container when the itemmeta
instance is cloned.

This change fixes the bug that, after cloning itemmeta, the container
instance the cloned meta would point to was equal to the original one.
This resulted in two itemmeta instances sharing a single persistent
container.

By: Bjarne Koll <LynxPlay101@gmail.com>
2020-03-01 17:23:54 +01:00
CraftBukkit/Spigot
153bdf9192 Improve legacy conversion of some materials that changed post flattening
By: md_5 <git@md-5.net>
2020-02-21 12:13:05 +11:00
CraftBukkit/Spigot
13b8a2aea1 #624: Add an API for passing the heightmap to getHighestBlockAt* method
By: ysl3000 <yannicklamprecht@live.de>
2020-02-09 10:31:07 +11:00
CraftBukkit/Spigot
77bc265e5b SPIGOT-5536: Material.values() causes legacy data init
By: md_5 <git@md-5.net>
2020-01-23 08:53:36 +11:00
CraftBukkit/Spigot
b978d253d9 Only load legacy support data if something uses it
By: md_5 <git@md-5.net>
2020-01-22 11:15:58 +11:00
CraftBukkit/Spigot
2b704c8cf9 SPIGOT-5516: Correct EnchantmentTarget values
By: md_5 <git@md-5.net>
2020-01-15 14:20:14 +11:00
CraftBukkit/Spigot
0e142c7f03 Update to Minecraft 1.15
By: md_5 <git@md-5.net>
2019-12-11 09:00:00 +11:00
CraftBukkit/Spigot
cf59b7f501 SPIGOT-5362: Suspicious stews fail isSimilar check
By: ShaneBeee <shanebolenback@me.com>
2019-10-14 21:03:30 +11:00
CraftBukkit/Spigot
20283452c6 SPIGOT-5341: Add Material.isAir
By: md_5 <git@md-5.net>
2019-10-06 18:41:56 +11:00
CraftBukkit/Spigot
7f5d81e0b0 SPIGOT-5158: Add SuspiciousStewMeta
By: ShaneBeee <shanebolenback@me.com>
2019-09-08 02:49:12 -07:00
CraftBukkit/Spigot
a4b8e8ce68 Update to Minecraft 1.14.4
By: md_5 <git@md-5.net>
2019-07-20 09:00:00 +10:00
CraftBukkit/Spigot
020a6a58b2 SPIGOT-5105: The EntityTag nbt tag disappears from preset armor_stand items.
By: md_5 <git@md-5.net>
2019-06-29 16:55:36 +10:00
CraftBukkit/Spigot
a8155d2399 Update to Minecraft 1.14.3-pre4
By: md_5 <git@md-5.net>
2019-06-21 20:00:00 +10:00
CraftBukkit/Spigot
672c7bfa97 SPIGOT-2000: Picking up items to shield slot working inconsistently when inventory is full
By: PurkkaKoodari <purkka@purkka.codes>
2019-06-06 01:32:32 +03:00
CraftBukkit/Spigot
569660215f Update to Minecraft 1.14.2
By: md_5 <git@md-5.net>
2019-05-28 06:30:00 +10:00
CraftBukkit/Spigot
acd04ff0d0 SPIGOT-4833: Allow access to LivingEntity memories
By: Yannick Lamprecht <yannicklamprecht@live.de>
2019-05-19 19:58:41 +10:00
CraftBukkit/Spigot
4f21c71d98 SPIGOT-4880: Potion effects with unknown names.
By: md_5 <git@md-5.net>
2019-05-07 09:22:45 +10:00
CraftBukkit/Spigot
1915b49ec3 SPIGOT-4872: LootTables missing a few loot tables
By: md_5 <git@md-5.net>
2019-05-06 08:40:15 +10:00
CraftBukkit/Spigot
e413f6ef8f SPIGOT-4871: Manually opened double chest doesn't have close animation
By: md_5 <git@md-5.net>
2019-05-05 18:39:58 +10:00
CraftBukkit/Spigot
12ecbc64a0 SPIGOT-4802: Add CrossbowMeta
By: md_5 <git@md-5.net>
2019-05-01 20:18:01 +10:00
CraftBukkit/Spigot
a3c770141e SPIGOT-4818: Unit test banner patterns
By: md_5 <git@md-5.net>
2019-04-30 15:20:11 +10:00
CraftBukkit/Spigot
bfea9a3269 Add Override annotations where appropriate
By: md_5 <git@md-5.net>
2019-04-28 11:38:01 +10:00
CraftBukkit/Spigot
c9a23d73a0 Replace ItemTag API with new API that also expands to Tiles and Entities
By: Bjarne Koll <LynxPlay101@gmail.com>
2019-04-25 14:36:46 +10:00
CraftBukkit/Spigot
2f808394c5 SPIGOT-4736: Serialized ItemStack Lore Doesn't Deserialize
By: md_5 <git@md-5.net>
2019-04-25 10:06:40 +10:00
CraftBukkit/Spigot
4e5e39eda9 SPIGOT-4727: Fix CraftEvil for legacy plugins
By: md_5 <git@md-5.net>
2019-04-24 09:40:42 +10:00
CraftBukkit/Spigot
b15c3451a2 Fix weird test import in EnderDragonPhaseTest
By: md_5 <git@md-5.net>
2019-04-23 21:28:41 +10:00
CraftBukkit/Spigot
09673c1a03 Apply import ordering rules to CraftBukkit classes
By: md_5 <git@md-5.net>
2019-04-23 14:54:36 +10:00
CraftBukkit/Spigot
7afe4d02f8 Begin implementation of CheckStyle style checking
By: md_5 <git@md-5.net>
2019-04-23 14:00:30 +10:00
CraftBukkit/Spigot
a0f2b74c8d Update to Minecraft 1.14-pre5
By: md_5 <git@md-5.net>
2019-04-23 12:00:00 +10:00
CraftBukkit/Spigot
3d88c2acc0 Remove the Damage tag from items when it is 0.
CraftBukkit (and Minecraft as well in some cases, such as when getting
an item from the creative inventory menu) will omit the Damage tag when
it is zero. However, minecraft will add the tag in some situations
nevertheless, such as when loading the ItemStack, or when explictly
setting the item undamaged.

These items (with and without the Damage tag for undamaged items) will
be considered as different by minecraft and CraftBukkit in various
situations, even though they should not. In CraftBukkit these items will
actually only be considered unsimilar if the items' metadata is not
'empty' (if it contains other additional metadata, such as enchantments,
etc.).

If the item's tag is empty after removing the Damage tag, it gets
completely removed. The setRepairCost function was adapted to behave in
the same way (removal of the tag if it becomes empty).

By: blablubbabc <lukas@wirsindwir.de>
2019-04-18 11:56:42 +02:00
CraftBukkit/Spigot
dcc541a4a0 Mappings Update
By: md_5 <git@md-5.net>
2019-03-17 11:48:53 +11:00
CraftBukkit/Spigot
6846b3d2d9 SPIGOT-4646: Test + fix InventoryWrapper.getContents
By: md_5 <git@md-5.net>
2019-03-05 16:59:40 +11:00
CraftBukkit/Spigot
a6ec0de609 Fix EntityPickupItemEvent getRemaining / PlayerInventory#canHold
Without this change the calculation of fitting items was incorrect, so event.getRemaining() did return 0 when it should not be 0.

By: Brokkonaut <hannos17@gmx.de>
2019-02-12 04:49:24 +01:00
CraftBukkit/Spigot
1f4d52d582 SPIGOT-4577: Fix loss of int/double custom tags when serialized to yaml
By: Bjarne Koll <LynxPlay101@gmail.com>
2019-01-13 16:25:17 +01:00
CraftBukkit/Spigot
42831b84cd Add BlockData#getAsString(boolean) to hide unspecified states
By: Parker Hawke <hawkeboyz2@hotmail.com>
2018-12-16 18:21:29 -05:00
CraftBukkit/Spigot
83baf22bde Mappings Update
By: md_5 <git@md-5.net>
2018-12-13 11:00:00 +11:00
CraftBukkit/Spigot
b69f1de549 SPIGOT-4347: Add API to allow storing arbitrary values on ItemStacks
By: Bjarne Koll <LynxPlay101@gmail.com>
2018-12-01 20:26:23 +11:00
CraftBukkit/Spigot
699739c7f0 SPIGOT-4489: NOTE_BLOCK incorrectly has BlockStateMeta
By: md_5 <git@md-5.net>
2018-11-16 15:18:28 +11:00
CraftBukkit/Spigot
43b017f431 SPIGOT-4455: ChunkData.getType returns legacy material
By: md_5 <git@md-5.net>
2018-10-29 07:17:59 +11:00
CraftBukkit/Spigot
a194267323 Update to Minecraft 1.13.2
By: md_5 <git@md-5.net>
2018-10-23 06:00:00 +11:00