Ugleh
02518f92ab
Make setPersistent also control player saving
2018-10-03 20:45:21 +10:00
md_5
68588dac4f
SPIGOT-4405: Chunk generation problem
2018-10-02 23:00:16 +10:00
md_5
c8f68670f5
Save server version
2018-10-02 20:52:57 +10:00
Parker Hawke
7a2f486768
Implement PlayerRecipeDiscoverEvent and methods to (un/)discover recipes
2018-10-01 19:15:12 +10:00
md_5
1cf8b5dc1b
SPIGOT-4400: Populators running on existing chunks
2018-09-27 21:41:24 +10:00
md_5
eea4387034
MC-134115: Fix issues converting tile entities
2018-09-27 11:11:53 +10:00
md_5
1a7f2d109e
SPIGOT-4397: isChunkGenerated API
2018-09-26 17:19:16 +10:00
Aikar
40aed54d11
SPIGOT-4396: Improve vehicle movement
2018-09-26 17:19:16 +10:00
md_5
020b495274
SPIGOT-4392: Stem updates even if BlockGrowEvent cancelled
2018-09-25 14:34:05 +10:00
Senmori
dcb43ef83d
MC-136886: locate command loads chunks without needing to.
...
Thanks Aikar for the report
2018-09-24 09:55:18 +10:00
Senmori
88a5346fea
Add API to locate structures.
2018-09-22 17:11:17 +10:00
md_5
26c89277cb
SPIGOT-4385: Clearer error for invalid generator-settings
2018-09-19 18:32:21 +10:00
Parker Hawke
a222e4a252
Implement BatToggleSleepEvent
2018-09-17 16:49:45 +10:00
md_5
79ada744cb
SPIGOT-4382: Fix damage_absorbed statistic
2018-09-17 16:40:35 +10:00
md_5
6166843699
SPIGOT-4378: Fix mistakenly included code
2018-09-16 08:16:03 +10:00
md_5
a4bdecff65
SPIGOT-4372: LightningStrikeEvent cause API
2018-09-15 19:16:42 +10:00
md_5
34caaf6d68
SPIGOT-4371: Trident damaged when event cancelled
2018-09-15 19:07:03 +10:00
md_5
97315374fb
SPIGOT-4369: Handle cancelled trident event
2018-09-15 15:31:39 +10:00
md_5
bf1c82731c
SPIGOT-4370: Remove vehicle if its passenger spawn event was cancelled
2018-09-15 15:25:27 +10:00
simpleauthority
953e1d601a
SPIGOT-4314: Ability to change item in frame without playing sound
2018-09-11 20:39:58 +10:00
md_5
7033f180e0
Hoist out synchronisation from ChunkRegionLoader
2018-09-10 19:13:03 +10:00
md_5
022b8c350a
SPIGOT-4361: BlockFadeEvent for regular coral
2018-09-10 08:30:13 +10:00
md_5
3123a069bf
SPIGOT-4352: MoistureChangeEvent
2018-09-09 18:56:38 +10:00
Parker Hawke
226db0eae7
Add BlockDispenseArmorEvent
2018-09-09 18:44:55 +10:00
md_5
cd367fa4d8
Fix bad thread safety in ChunkRegionLoader
2018-09-09 09:39:23 +10:00
md_5
3f5ca5f2a4
SPIGOT-4355: Improve cancelling VehicleEnterEvent
2018-09-09 09:32:11 +10:00
Pante
19d654bd5e
Add ServerLoadEvent
2018-09-08 13:40:42 +10:00
md_5
228a5cd59d
Remove vanilla command ambiguity warning
...
Needless support burden
2018-09-07 20:51:57 +10:00
md_5
0ddd67b0a9
SPIGOT-4350: Expand EntityTeleportEvent to /teleport command
2018-09-07 20:32:57 +10:00
md_5
632449b6c4
SPIGOT-4349: End portal has wrong TeleportCause
2018-09-07 07:14:59 +10:00
md_5
c88ae6b195
SPIGOT-4342: Fix PlayerMoveEvent from pitch/yaw incorrect
2018-09-04 20:57:55 +10:00
md_5
3037eb3e7c
BlockSpreadEvent for Kelp
2018-09-03 08:43:48 +10:00
md_5
6cf60193b0
SPIGOT-4340: Improve client bug workaround
2018-09-03 08:00:50 +10:00
md_5
60d7982024
SPIGOT-4338: breedCause API
2018-09-01 19:28:12 +10:00
md_5
4c219e2a12
Expand Recipe API to allow multiple Materials per slot
2018-09-01 11:04:48 +10:00
md_5
6304ccd95f
SPIGOT-4116: Tweak tab complete spam since the client appears to be duplicating packets
2018-08-29 22:30:16 +10:00
Senmori
1486c29516
API to prevent PlayerBedLeaveEvent from changing a player's spawn location
2018-08-29 19:08:58 +10:00
md_5
9636bb8d77
SPIGOT-4319: Conduit damage should be a block event
2018-08-28 21:00:24 +10:00
md_5
c2cbdc5ab4
SPIGOT-4316: Do even less processing when block placement without physics requested
2018-08-27 18:29:28 +10:00
md_5
479ec05e3b
SPIGOT-4310: Reset villager career level with trades
2018-08-27 07:00:56 +10:00
md_5
6dee81a6f7
SPIGOT-4302: Use defaults when setting unplaced furnaces
2018-08-27 06:50:15 +10:00
md_5
997d378dab
Fix client stall in specific teleportation scenarios
2018-08-26 19:44:10 +10:00
md_5
5d0d83bb90
SPIGOT-4309: Add "forced" display of particles
2018-08-26 18:27:19 +10:00
md_5
ce1af0c348
Update to Minecraft 1.13.1
2018-08-26 12:00:00 +10:00
md_5
1bc24337d1
SPIGOT-4304: Turtle helmet overrides water breathing potion
2018-08-24 20:56:58 +10:00
md_5
3418f8d7a1
SPIGOT-4298: Block command sender returns wrong block
2018-08-22 08:52:17 +10:00
md_5
bfb9131494
SPIGOT-4283: Allow setting recipe groups
2018-08-17 20:40:54 +10:00
md_5
06112946da
Fix whitespace issue in previous commit
2018-08-16 20:48:00 +10:00
md_5
5bf0abb3ae
SPIGOT-4281: Fix looting enchantment
2018-08-16 20:39:29 +10:00
md_5
b865db3b2a
SPIGOT-4278: EntityChangeBlockEvent for turtles laying eggs
2018-08-16 20:27:16 +10:00
md_5
1728eb298e
SPIGOT-4279: Move turtle egg interact event
2018-08-16 20:23:17 +10:00
md_5
7c341e9beb
Fix StructureGrowEvent originating from dispensers
2018-08-15 18:05:04 +10:00
Senmori
c0df4b82d3
SPIGOT-1936: LootTable API
2018-08-12 18:40:03 +10:00
md_5
0e1d79b449
Correct error in previous patch
2018-08-10 19:43:15 +10:00
Amosar
eb36029f1c
SPIGOT-2719: Comparator and Observer don't trigger BlockRedstoneEvent
2018-08-10 08:39:18 +10:00
md_5
4487c1f9d9
SPIGOT-4245, MC-128441: use target world as teleport destination
2018-08-08 18:59:20 +10:00
Christos Miniotis
c4220dc24f
Add Unit Tests for geHardness and getBlastResistance
2018-08-08 18:07:02 +10:00
md_5
53d3ac0a97
SPIGOT-4238: Sometimes buckets are leaky client side when empty event is cancelled
2018-08-07 21:17:49 +10:00
md_5
a9c796f12c
SPIGOT-4184: Fix furnaces not matching Vanilla smelt or animations
2018-08-05 11:21:01 +10:00
md_5
195f071e3d
SPIGOT-4219: Event for PigZombies angering.
2018-08-05 10:18:01 +10:00
md_5
671581e33f
Fix gamerules in secondary worlds
2018-08-03 21:03:21 +10:00
md_5
69970127c1
SPIGOT-4221: Update surrounding blocks for cancelled break/place
2018-08-03 11:34:26 +10:00
md_5
3006dee4c6
Use CraftBlock.at helper
2018-08-03 09:59:22 +10:00
Nathan Wolf
7dc4738528
SPIGOT-4212: EntityInteractEvent when an entity tries to interact with a door
2018-08-03 09:50:32 +10:00
Nathan Wolf
391e018a79
SPIGOT-4220: Player/Entity interact events when turtle eggs are stepped on
2018-08-03 08:58:15 +10:00
md_5
272426acd7
SPIGOT-4199: Riptide related APIs
2018-08-02 09:38:52 +10:00
md_5
8e87d03145
SPIGOT-4205: Cancelled damage should not anger pig zombie
2018-08-01 19:29:24 +10:00
blablubbabc
a0c7bcf02a
Fix merchant inventories with custom titles
2018-08-01 08:50:08 +10:00
md_5
d474030e14
SPIGOT-4198: Pockets of darkness in the air
2018-07-31 21:11:35 +10:00
md_5
549d9b0120
SPIGOT-4029: Add event for commands being sent to client
2018-07-31 10:46:09 +10:00
md_5
5cfa68387f
SPIGOT-4194: Call BlockFadeEvent for coral
2018-07-31 10:17:43 +10:00
Articdive
e013bf4323
SPIGOT-3917: Add EntityDropItemEvent
2018-07-31 10:06:23 +10:00
md_5
c79e28e627
SPIGOT-4192: Fix cancelling dispensers removing water sources
2018-07-31 09:21:21 +10:00
md_5
8592585b9f
Fix ancient style event call in PlayerDropItemEvent
2018-07-30 19:29:03 +10:00
md_5
3f9d7f7770
Move persist flag check
2018-07-30 13:25:02 +10:00
md_5
98f4292331
SPIGOT-4190: Move ChunkLoadEvent call
2018-07-30 13:09:04 +10:00
blablubbabc
c3a8de0371
SPIGOT-227: Add entity persistent flag
...
Non-persistent entities won't get saved when the chunk saves the entities.
Entities that are passengers of a non-persistent entity won't get saved.
Players won't save their vehicle, if the player is directly or
indirectly riding a non-persistent entity.
2018-07-30 12:29:43 +10:00
md_5
bef764020e
SPIGOT-4185: Bubble columns not working on mobs
2018-07-30 11:17:26 +10:00
md_5
0b274effbb
SPIGOT-4188: Fish not dispensing from buckets
2018-07-30 09:43:46 +10:00
md_5
3b8f5be77b
SPIGOT-1714: Draft API for player list header / footer
2018-07-29 21:30:31 +10:00
md_5
4d0e2b7d88
Give turtle eggs a spawn reason
2018-07-29 10:50:56 +10:00
md_5
f68afdb0ca
SPIGOT-4178: Add another BlockPhysicsEvent call site
2018-07-29 09:37:16 +10:00
md_5
212fd0f230
SPIGOT-4166: Fix Tags being corrupted by early access (and not reflecting reloads)
2018-07-28 15:00:12 +10:00
md_5
e3c21decb0
SPIGOT-4171: Advancement description not showing
2018-07-28 10:38:36 +10:00
md_5
5c2585068b
SPIGOT-1588: Fix cancelling mount related events
2018-07-28 10:10:17 +10:00
md_5
d5b95a2832
Fix growing large dark oak trees
2018-07-28 08:41:45 +10:00
klugemonkey
4b00823222
Use SpawnReason.NATURAL for Phantom spawning
2018-07-27 19:33:42 +10:00
md_5
3d7f2f07d5
SPIGOT-4161: Missing BlockDispenseEvent for Waterlogged
2018-07-27 19:29:47 +10:00
md_5
0891fc1c45
SPIGOT-4160: StructureGrowEvent not triggering for giant trees
2018-07-27 19:16:16 +10:00
klugemonkey
5d881a9264
Add SpawnReason.DROWNED
2018-07-27 14:20:35 +10:00
md_5
e70d864f00
SPIGOT-4140, SPIGOT-4157: World generation errors
2018-07-26 22:11:02 +10:00
md_5
420f5fa779
Add draft BlockFertilizeEvent
2018-07-26 20:44:09 +10:00
md_5
1ef1ffd664
SPIGOT-4137: Fix World.regenerateChunk
2018-07-25 19:32:06 +10:00
md_5
88d89792fc
SPIGOT-4141: Untouched filled maps not saving
2018-07-25 14:13:17 +10:00
md_5
49a2604e1f
Fix scute dropping
2018-07-24 22:22:56 +10:00
md_5
38adf52b28
SPIGOT-4119: Incorrect slot type in InventoryClickEvent
2018-07-24 08:41:15 +10:00
md_5
587014503b
SPIGOT-4116: Increase command tab spam threshold
2018-07-23 18:33:29 +10:00
Articdive
30ab12cf4c
SPIGOT-824: SpongeAbsorbEvent
2018-07-23 17:21:07 +10:00
md_5
b50bb15f56
SPIGOT-4110: Fix spawning withers
2018-07-23 11:58:43 +10:00
md_5
11542134c8
SPIGOT-4109: Wall skulls not dropping
2018-07-23 10:43:45 +10:00
md_5
5b93c39d4b
SPIGOT-4106: Fish from buckets despawn
2018-07-23 10:01:46 +10:00
md_5
1c7adf74e4
Always return captured tiles from chunks as well.
...
Missed in 22c613d869
Fixes replacing tile entities in BlockPlaceEvent (or calling setBlockData on them)
2018-07-22 19:35:42 +10:00
md_5
1a6b4f5392
Update to Minecraft 1.13
2018-07-22 12:00:00 +10:00
md_5
961295e432
SPIGOT-4101: Turtle lightning strike causing crash
2018-07-21 14:55:07 +10:00
md_5
e5d6f6b596
SPIGOT-4024: Improve interactions of Vanilla tab completion, and also reloads
2018-07-21 11:23:11 +10:00
md_5
dbc6c660eb
Fix cancelling new effect events
2018-07-21 10:13:45 +10:00
md_5
a8dc8d31d3
SPIGOT-4099: Missing BlockFormEvent for concrete powder
2018-07-21 10:03:08 +10:00
kaenganxt
814c742554
SPIGOT-840, SPIGOT-2522: [Draft] Add EntityPotionEffectChangeEvent
...
Discussion ongoing in PR #449
2018-07-20 16:06:34 +10:00
md_5
fa6e97a8f8
SPIGOT-4064: Fix BlockPistonRetractEvent for regular pistons
2018-07-20 10:59:23 +10:00
md_5
c1d9f94223
SPIGOT-4050: Snow erasing block below it
2018-07-19 15:44:55 +10:00
md_5
6c944b2163
Fix issues converting certain chunks
2018-07-19 14:20:07 +10:00
md_5
fc1b107579
SPIGOT-4046: Fix selectors in tick functions
2018-07-19 10:59:16 +10:00
md_5
80f4c10c8f
SPIGOT-4044: Cannot load datapack functions on startup
2018-07-19 10:48:34 +10:00
md_5
40f15832b4
SPIGOT-4048: Fish disappear when they cannot be picked up
2018-07-19 10:37:25 +10:00
md_5
595ec64726
SPIGOT-4049: Books lose NBT data
2018-07-19 10:12:55 +10:00
md_5
3e5fe3e40d
SPIGOT-4042: Fix emptying buckets onto slabs
2018-07-18 17:48:17 +10:00
md_5
15036eb75b
Fix changes that got lost late in development cycle
2018-07-18 14:13:20 +10:00
md_5
f18d78282d
SPIGOT-4028: Improve legacy ItemStack conversion
2018-07-18 14:01:15 +10:00
md_5
de019a35f0
Tweak display of command completions when we have none
2018-07-18 12:23:00 +10:00
md_5
e120b5d10e
Fix missing PlayerResourcePackStatusEvent
2018-07-18 10:00:43 +10:00
md_5
3e814e7b7d
SPIGOT-4034: Fix missed diff affecting canceled InventoryClickEvent
2018-07-18 09:59:10 +10:00
md_5
a71d06a0c8
SPIGOT-3998, MC-133373: Improve attributes
2018-07-17 21:11:52 +10:00
md_5
b4bff6fc3d
SPIGOT-4026: Clicking on command error suggestion should return verbatim input
2018-07-17 06:49:40 +10:00
md_5
f03c10c185
SPIGOT-4025: Fixed missed diff affecting PlayerLocaleChangeEvent
2018-07-17 06:21:43 +10:00
md_5
e563bc00db
Command block names are not nullable
2018-07-16 16:20:46 +10:00
md_5
84676f363c
Fix MapInitializeEvent firing every tick
2018-07-16 12:45:01 +10:00
md_5
8fbc72b714
Add ignore-vanilla-permissions option to assist with disabling default commands
2018-07-16 12:06:06 +10:00
md_5
3890544e04
SPIGOT-4015: Make CraftTeam tie into backing prefix/suffix
2018-07-16 10:20:53 +10:00
md_5
00bba6e86f
SPIGOT-4010: Prefix / suffix compatibility should default to empty string
2018-07-16 09:09:47 +10:00
md_5
82ca5c2740
SPIGOT-4006: ICE rather than SNOW forming in some biomes
2018-07-16 08:53:29 +10:00
md_5
fe7db9d53b
Add EntityToggleSwimEvent and isSwimming / setSwimming API
2018-07-15 16:17:35 +10:00
md_5
421c1728c8
Update to Minecraft 1.13-pre7
2018-07-15 10:00:00 +10:00
md_5
ab13683d8e
SPIGOT-3987: Preserve attributes when writing in books
2018-07-08 10:25:17 +10:00
blablubbabc
8cc5a7ecb6
SPIGOT-3945: Remove RepairCost tag when cost is 0
2018-05-27 17:10:22 +10:00
Parker Hawke
d0a3620c2d
Implement Arrow tile methods
2018-05-06 14:12:19 +10:00
md_5
4509a144db
SPIGOT-3899: Only load advancements from primary world
2018-04-15 10:21:11 +10:00
md_5
fb423b8f48
SPIGOT-3883: Better reloading of pending unload chunks
2018-04-04 16:12:32 +10:00
md_5
68b4fb6427
SPIGOT-3882: Extra call site for VehicleEntityCollisionEvent
2018-04-02 12:55:28 +10:00
md_5
1daee53916
SPIGOT-3879: Make end->overworld spawning more consistent with vanilla
2018-03-30 19:16:53 +11:00
md_5
2e210288de
SPIGOT-3875: Book selectors not resolving
2018-03-29 20:34:46 +11:00
md_5
aa255689c1
SPIGOT-3869: More resurrect fixes
2018-03-24 16:13:17 +11:00
md_5
3fed09cc42
SPIGOT-3869: Error when forcing EntityResurrectEvent
2018-03-23 19:40:16 +11:00
md_5
29705a0d4f
SPIGOT-3864: Protect against suffocation on world change
2018-03-22 21:05:34 +11:00
md_5
7e94e65a1c
SPIGOT-3845: Fix spawnRadius on respawn
...
Thanks senmori for the investigation in PR #431
2018-03-08 18:21:31 +11:00
md_5
1bb523c4e4
SPIGOT-3829: Apply some speed limits to all entities
2018-02-19 09:52:00 +11:00
Senmori
f8411ea1e5
Expand Structure Block API
2018-02-12 10:33:19 +11:00
md_5
8bb4f6ccc1
SPIGOT-3813: Player.setHealth not reliable in conjunction with attribute API
2018-02-12 08:59:32 +11:00
md_5
aa34e9bddd
SPIGOT-3805: Minecart does not teleport through Nether Portal
2018-02-09 18:04:44 +11:00
Senmori
1c40a81828
Expand EnderSignal API
2018-02-03 17:48:41 +11:00
md_5
dac2a4a6ae
SPIGOT-3784: Reset horse chests after event
2018-01-28 09:44:16 +11:00
Senmori
c7656468e4
Expand CreatureSpawner API
2018-01-24 17:19:41 +11:00
md_5
4a030536cd
SPIGOT-3775: ghost player list entry if kicked on join
2018-01-23 22:49:26 +11:00
md_5
1dced6a2c5
Send complete metadata update to joining players
2018-01-08 19:48:32 +11:00
md_5
c3e4382c33
CauldronLevelChangeEvent does not use new level
2018-01-08 13:42:44 +11:00
md_5
dc7d31b00d
SPIGOT-3735: Missing call to BlockFadeEvent
2018-01-04 08:57:01 +11:00
md_5
360629ec5a
SPIGOT-3729: Add AreaEffectClouds to tracker
2018-01-02 10:14:30 +11:00
Senmori
950006003c
SPIGOT-355: API for Villager careers
2017-12-31 21:21:03 +11:00
md_5
8c37e2ebda
SPIGOT-3717: Fix some RCON commands
2017-12-26 07:28:56 +11:00
md_5
70cc3820cf
SPIGOT-3686: Move entity event call earlier in method
2017-12-09 17:32:19 +11:00
md_5
d063cd0d3b
Fix missing event call for BlockRedstoneLamp
2017-12-07 10:59:30 +11:00
md_5
22564a9177
SPIGOT-3674: Take into account max stack size for PlayerDropItemEvent
2017-12-03 08:55:19 +11:00
md_5
809c399a62
SPIGOT-3668: Missing EntityToggleGlideEvent in creative mode
2017-11-28 09:33:40 +11:00
Senmori
bdb8822625
SPIGOT-1505: PlayerItemMendEvent
2017-11-21 10:21:20 +11:00
md_5
b4c298d644
Fix mismatched setArrowCount method
2017-11-17 11:03:30 +11:00
Thinkofdeath
685ed2eb92
Fix dispensing bone meal not having the correct data value
2017-11-17 10:23:20 +11:00
Parker Hawke
305df9035f
Implement max fuse tick & explosion radius methods to Creeper
2017-11-08 12:33:21 +11:00
md_5
3e3bbd4272
SPIGOT-3638: Don't process async chat on shutting down server
2017-11-08 10:36:11 +11:00
md_5
2fae23c251
SPIGOT-3637: Adjust yaw yet again
2017-11-07 17:21:38 +11:00
md_5
b8f84f375b
Fix bad diff
2017-10-13 21:47:55 +11:00
md_5
ef2f38267f
SPIGOT-3607: Bad yaw from armorstands treated as living
2017-10-13 21:36:32 +11:00
md_5
6733aa5635
SPIGOT-3603: Fix client timing out in scenarios where it sends no packets.
2017-10-09 18:23:58 +11:00
blablubbabc
f8500c0a3e
SPIGOT-3598: Persist all beacon effects
...
Regardless of if they are possible in Vanilla by default.
2017-10-07 18:48:08 +11:00
md_5
e8b6e4f29b
Temporarily shift L7 timeout value to L4 value of 30s.
2017-10-06 20:49:22 +11:00
md_5
362ed329f0
Supress harmless teleport error
2017-10-01 17:29:03 +11:00
md_5
94b0980852
SPIGOT-3571: Packet handling must be synchronous
2017-09-19 08:00:56 +10:00
md_5
9a1f5ee80a
Update to Minecraft 1.12.2
2017-09-18 20:00:00 +10:00
md_5
357b573a19
SPIGOT-3513: Correctly set size for freshly spawned Minecarts
2017-08-16 20:47:23 +10:00
Geoff Crossland
963b19c599
Fix a few chunk saving race conditions
...
* ChunkRegionLoader.c() picks an entry in the save queue, removes that entry from the save queue and then actually writes the entry to the region file. So, between the last two steps, the entry is neither in the save queue nor is it in the region file; if somebody loads the chunk again (with ChunkRegionLoader.loadChunk()) in that gap, they'll get old data. I've delayed the removal until the saving is done.
* ChunkRegionLoader.c() also records the coords of the chunks it's currently saving in this.c. ChunkRegionLoader.a(ChunkCoordIntPair, NBTTagCompound), which adds an entry to the save queue, stops the addition of an entry if its coords are in this.c. Now, I'm guessing that Mojang's intended purpose for this mechanism was to prevent multiple parallel writes for the same chunk. The "stops the addition" bit above should then be something like "block until it's no longer in c"; in fact, the vanilla implementation is "discard the new state of the chunk". I've taken the easy route to solving this, by just making ChunkRegionLoader.c() synchronized (since, in normal use, only the chunk saving thread is in here).
2017-08-11 17:34:19 +10:00
md_5
27b8bf9116
SPIGOT-3497: Cancelled EntityPortalEvent leads to incorrect behaviour
2017-08-08 20:35:29 +10:00
Lukas Hennig
61a31ca0c7
SPIGOT-3496, MC-92282: Set mob type of mob-spawner reverts after single spawn wave.
...
Fixes CreatureSpawner.setSpawnedType and a vanilla issue related to
setting the mob type of a mob-spawner via spawn_egg.
2017-08-08 20:34:15 +10:00
md_5
b5878783ad
SPIGOT-3491: Add option to bypass permissions in advancements
2017-08-06 09:07:24 +10:00
Lukas Hennig
19507baf8b
Improvements to BlockStates
...
* Actually capture all the data of TileEntities. This is done by creating a copy of the TileEntity. The methods of BlockState which currently directly access the TileEntity reference will modify the data of that TileEntity-snapshot instead.
* With the call to BlockState.update, the captured TileEntity data gets applied to the current TileEntity in the world.
* Methods which trigger block specific actions will use the current TileEntity from the world.
* CraftBlockState does not hand out the wrapped or the snapshot TileEntity directly. Instead, it provides an applyTo method to copy the data to a given TileEntity and a method to directly get a copy of the TileEntity NBT data represented by the BlockState. CraftMetaBlockState was updated to make use of that.
* Added #getSnapshotInventory() to bukkit which allows modifiying the captured inventory snapshots of containers.
* Tried to clarify which methods only work if the BlockState is placed, which methods require the block in the world to still be of the same type (methods which trigger actions), and that .getInventory() directly modifies the inventory of the block in the world if the BlockState is placed and becomes invalid if the block type is changed.
Backwards compatibility
* If the BlockState acts as InventoryHolder, getInventory() will still return the inventory directly backed by the TileEntity in the world (like before), and not the snapshot inventory. This compromise should reduce the potential of these changes to break existing plugins, or craftbukkit's own use of BlockState.
* The snapshot's inventory can be accessed by a new method getSnapshotInventory()
* In case the BlockState is not placed (if it was retrieved from the MetaBlockState of an item), the getInventory() method will however return the snapshot inventory. So that when the BlockState gets applied back to the item, the inventory changes are properly included.
* With the changes to CraftMetaBlockState it is no longer required to call the update method before passing a modified BlockState to the CraftMetaBlockState. For backwards compatibility the update method will simply return true for a non-placed BlockState, without actually doing anything.
Impact on plugins
* Restoring blocks now actually works as expected, properly restoring the TileEntity data, reglardless if the block changed its type in the meantime.
* Plugins are now consistently required to call the update method in order to apply changes to blocks. Though, regarding the Javadoc they should have been required to do so anyways.
* New feature: Plugins can take and modify inventory snapshots.
* Breaking change: If a plugin gets the BlockState of a block in the world, modifies the inventory returned by .getInventory(), and then tries to use the same BlockState to apply the TileEntity data to an ItemStack block meta, the ItemStack will use the snapshot inventory, disregarding the changes made to the inventory returned by .getInventory(). This is the compromise of .getInventory() returning the inventory directly backed by the TileEntity in the world.
Other fixes related to BlockState:
* TileEntityContainer#getLocation() will run into a NPE if the TileEntity is non-placed (ex. when getting the BlockState from a CraftMetaBlockState).
* Beacon.getEntitiesInRange() would previously throw a NPE if called for a non-placed BlockState. It was changed to now require to be placed and use the current TileEntity in the world. If the TileEntity in the world is no longer a beacon, it will return an empty list.
* EndGateway now supports setting and getting the exit location even for non-placed EndGateways (inside BlockStateMeta) by using / returning a location with world being null.
2017-08-05 14:37:19 +10:00
md_5
63029f4ff3
SPIGOT-3492: Ensure player functionality uses their specific scoreboard
2017-08-05 09:15:52 +10:00
md_5
2a927e8638
Update to Minecraft 1.12.1
2017-08-03 23:00:00 +10:00
md_5
57c323aad1
SPIGOT-3486: Missing check in redstone placement
2017-08-03 08:31:29 +10:00
md_5
2cfb85dae2
SPIGOT-3487: Llama doesn't drop chest
2017-08-03 08:21:05 +10:00
md_5
86aa17fae1
SPIGOT-3482: ProjectileHitEvent for shulker bullet and llama spit
2017-08-02 18:05:28 +10:00
md_5
2c5c611d0c
SPIGOT-3456: Expand calling of ServerCommandEvent
...
Existing usage preserved by checking sender.
2017-07-28 18:10:38 +10:00
md_5
d00c0574cd
SPIGOT-3403: Add an EntityPickupItemEvent
2017-07-28 17:47:59 +10:00
md_5
5c4864398d
SPIGOT-3463: Spurious item drops from event
2017-07-28 17:23:39 +10:00
md_5
b1b9ab0df9
SPIGOT-3461: Standardise plugin load timing
2017-07-26 13:20:29 +10:00
md_5
4670a84bd9
SPIGOT-3432: Add playNote support for new sounds
2017-07-24 17:44:44 +10:00
md_5
f078eed54b
SPIGOT-3440: Non player entities should not make new portals
2017-07-22 16:40:10 +10:00
md_5
5a12442f22
SPIGOT-3433: Improve AreaEffectCloud#getSource
2017-07-22 09:51:22 +10:00
md_5
49c2537fe2
Fix memory leak in PlayerList
2017-07-17 09:55:47 +10:00
md_5
e03b1a556d
SPIGOT-3417: Event for shearing snowman
2017-07-15 09:53:22 +10:00
md_5
50b75cd65d
SPIGOT-3407: Set damager for evoker fangs
2017-07-08 22:40:54 +10:00
md_5
0481ae963a
SPIGOT-3382: Ensure players can pickup stuff
2017-06-26 11:21:38 +10:00
md_5
9de5cb59a0
SPIGOT-3377: Fix subspace bubble advancement
2017-06-26 10:16:54 +10:00
md_5
d7cd7275f2
SPIGOT-3379: Generalise canPickupItems to other entities.
2017-06-26 08:34:52 +10:00