Commit Graph

65 Commits

Author SHA1 Message Date
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
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
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
7f5d81e0b0 SPIGOT-5158: Add SuspiciousStewMeta
By: ShaneBeee <shanebolenback@me.com>
2019-09-08 02:49:12 -07: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
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
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
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
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
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
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
0de14a04dd SPIGOT-4399: Add attribute modifier equality test
By: Nathan Wolf <nathan@elmakers.com>
2018-09-26 17:21:53 -07:00
CraftBukkit/Spigot
f578d94680 Update to Minecraft 1.13.1
By: md_5 <git@md-5.net>
2018-08-26 12:00:00 +10:00
CraftBukkit/Spigot
be907fd21b SPIGOT-4030: Improve CraftItemStack.hasItemMeta
By: md_5 <git@md-5.net>
2018-07-17 17:13:55 +10:00
CraftBukkit/Spigot
7e0a66fdd5 Update to Minecraft 1.13-pre7
By: md_5 <git@md-5.net>
2018-07-15 10:00:00 +10:00
CraftBukkit/Spigot
dfa7c9eedb SPIGOT-2892: Fix some clone implementations and add unit test
By: md_5 <git@md-5.net>
2017-12-16 10:18:34 +11:00
CraftBukkit/Spigot
9a2cfd9957 Add ChunkDataTest from PR #157
By: Antony Riley <antony@cyberiantiger.org>
2017-12-08 19:37:15 +11:00
CraftBukkit/Spigot
40c8954e17 Update to Minecraft 1.12-pre2
By: md_5 <git@md-5.net>
2017-05-14 12:00:00 +10:00
CraftBukkit/Spigot
dd89db67a5 SPIGOT-1592: Implement ItemMeta for Spawn Eggs
The Minecraft implementation of spawn eggs is able to construct an entity using all data that is present in the save format, however since the Bukkit API has no such way to construct an entity unattached to a world, and it appears creating such a way is a very challenging task, the decision was instead made to add this API now that 1.11 has entities which may not be represented by data values.
In the future it may be possible to implement a more expanded API cognate with this one.

By: Matthew <stteg@hotmail.com>
2016-12-06 21:15:10 +11:00
CraftBukkit/Spigot
a00951dd57 SPIGOT-2871: Improve BlockStates + BlockStateMeta
By: md_5 <git@md-5.net>
2016-12-02 09:29:33 +11:00
CraftBukkit/Spigot
7e4dfe78e5 SPIGOT-2787: Keep performing getter null conversion at call sites
By: md_5 <git@md-5.net>
2016-11-18 11:07:02 +11:00
CraftBukkit/Spigot
a75c80e93d Remove unit test based on now incorrect assumptions
By: md_5 <git@md-5.net>
2016-11-18 09:11:17 +11:00
CraftBukkit/Spigot
104519f08f SPIGOT-1638 / SPIGOT-1673: Rework Potions API
By: t00thpick1 <t00thpick1dirko@gmail.com>
2016-03-02 20:43:58 -05:00
CraftBukkit/Spigot
21d4bf5d1f Update to Minecraft 1.9
By: md_5 <git@md-5.net>
2016-03-01 08:32:46 +11:00
CraftBukkit/Spigot
7d1aaec723 Rewrite book handling, Fixes SPIGOT-182 and part of SPIGOT-164
By: Thinkofdeath <thinkofdeath@spigotmc.org>
2014-12-11 19:38:09 +00:00
CraftBukkit/Spigot
6ee362dcff Add CraftMetaTileEntity, fixes the previously broken tests
By: Thinkofdeath <thinkofdeath@spigotmc.org>
2014-12-07 13:22:56 +00:00
CraftBukkit/Spigot
1c82ce69db Disable some tests whilst issues with them are looked into
By: Thinkofdeath <thinkofdeath@spigotmc.org>
2014-12-07 11:50:45 +00:00
CraftBukkit/Spigot
a419776f3c Update to Minecraft 1.8
For more information please see http://www.spigotmc.org/

By: Thinkofdeath <thinkofdeath@spigotmc.org>
2014-11-26 08:32:16 +11:00
CraftBukkit/Spigot
79e5718f39 Update CraftBukkit to Minecraft 1.7.10
By: Travis Watkins <amaranth@ubuntu.com>
2014-06-26 13:05:08 -05:00
CraftBukkit/Spigot
42f39726c3 Handle profiles in SkullMeta, they don't store a string anymore.
By: Travis Watkins <amaranth@ubuntu.com>
2014-04-17 14:04:12 -05:00
CraftBukkit/Spigot
75d5bdc98c Add failing unit test for ItemMeta-repairability
By: Wesley Wolfe <weswolf@aol.com>
2014-01-14 17:56:49 -06:00
CraftBukkit/Spigot
5783df9d13 Update CraftBukkit to Minecraft 1.7.2
By: mbax <matt@phozop.net>
2013-11-04 07:07:38 -06:00