Commit graph

1518 commits

Author SHA1 Message Date
Aikar
39042c4a36
Fix another case of concurrency issue in data fixers 2018-09-04 00:02:38 -04:00
Aikar
d01d2d8cc5
Fix concurrency issues in DataFixers
We are seeing issues with DataFixers being not thread safe in async chunks
and even in some spigot packet sending code.

There are a few more global objects that are mutated that need to
be synchronized to be safe for use over multiple threads.

There may be more cases, but these are extremely obvious ones.
2018-09-03 22:36:41 -04:00
BillyGalbreath
997190c3e0 Add ray tracing methods to LivingEntity (#1410)
This method will return the Block a player is looking at while taking into consideration the AABB of each block in the path.

For example, you can look through the 1/4 space of air in a Stair block and get the block behind it instead of the Stair block you are looking past.
2018-09-03 19:59:54 -04:00
Aikar
6a3ee6dd09 Check that phantom spawned uuid is set for save/load
Fixes #1408

Spawn eggs wont have a player set
2018-09-03 15:22:41 -04:00
Aikar
d37d04a52f
[CI-SKIP] [Auto] Rebuild Patches
A recent commit has been made that caused patches to be out of order, rebuilding
2018-09-03 12:31:32 -04:00
Aikar
28557509c5
Remove Pass World Tile Entities patch
Some things break from this, while this was trying to fix other things
since the thing this patch tried to fix still had problems and required
yet another fix, just going to remove this patch.
2018-09-03 12:23:25 -04:00
Aikar
bafdbdcac7 fix typo in patch file 2018-09-03 10:38:28 -04:00
Aikar
47476b7bc8 Merge remote-tracking branch 'origin/master' into pre/1.13 2018-09-03 10:32:30 -04:00
Aikar
33bdd20193
[CI-SKIP] [Auto] Rebuild Patches
A recent commit has been made that caused patches to be out of order, rebuilding
2018-09-03 10:11:35 -04:00
willies952002
b55b3af9e1 Add Force-Loaded Chunk API (#1387) 2018-09-03 10:05:55 -04:00
Gergely Sarkozi
2d45ec855f Cached, local-class-supporting task names (#1409)
Fixes issue #1177 

`MapMaker#weakKeys()` makes the `Map` use identity comparison for the keys, while also enabling the automatical removal of dropped classes from the cache.

The changes are the same as in #1399, except now the original patch is modified instead of a new one being created.
2018-09-03 10:04:50 -04:00
Aikar
222147db5d
[Auto] Updated Upstream (Bukkit/CraftBukkit/Spigot)
Upstream has released updates that appears to apply and compile correctly.
This update has not been tested by PaperMC and as with ANY update, please do your own testing

Bukkit Changes:
8ab814cd Add getFacing method to get the current cardinal direction an entity is facing.

CraftBukkit Changes:
ee5efeb0 Add getFacing method to get the current cardinal direction an entity is facing.

Spigot Changes:
0ede7d0e Rebuild patches
2018-09-03 04:14:40 -04:00
Spottedleaf
6e9c306655 Make CraftWorld#loadChunk(int, int, false) load unconverted chunks (#1407) 2018-09-02 23:40:14 -04:00
Aikar
77c6e3c530
[Auto] Updated Upstream (CraftBukkit)
Upstream has released updates that appears to apply and compile correctly.
This update has not been tested by PaperMC and as with ANY update, please do your own testing

CraftBukkit Changes:
3037eb3e BlockSpreadEvent for Kelp
6cf60193 SPIGOT-4340: Improve client bug workaround
2018-09-02 21:44:27 -04:00
Shane Freeder
a5dc62d4b7
fix newlines in spigot tab list API
Spigots implementation around the header/footer strips newlines from the
header/footer, this patch allows the tab list header/footer to retain newlines.
2018-09-01 11:33:50 +01:00
Shane Freeder
4a3222542d
fix paper tab list API 2018-09-01 11:23:11 +01:00
Aikar
0aad8bfc1c
Updated Upstream (CraftBukkit)
Upstream has released updates that appears to apply and compile correctly.
This update has not been tested by PaperMC and as with ANY update, please do your own testing

CraftBukkit Changes:
dc69d2b3 Fix unbound shaped recipe ingredients
2018-09-01 00:30:04 -04:00
Aikar
d089acb3bd
Switch to using ForgeFlower for Paper Only mc-dev imports
ForgeFlower is better than Spigots FernFlower at decompiling the source.

However, in order to maintain the CraftBukkit patches, we must keep
using spigots for the primary.

However, for any file that we import on top of Spigots imported files
there is nothing stopping us from using better decompiled files.

So these changes will use ForgeFlower to maintain a better set of
decomped files, so anything we add on top of Paper can start off
in a better spot.
2018-08-31 23:47:57 -04:00
Aikar
2ae60bd203
Pull the last upstream updates 2018-08-31 11:51:41 -04:00
Aikar
aee3a0347c
Don't double add golems to world - Fixes #1385
spawnCreature adds to world now
2018-08-30 20:57:22 -04:00
Zach Brown
9f87cdf082
Ensure Creeper fuseTicks are still incremented
Fixes GH-1389

Because we are no longer enabling creepers to rapidly change status
every tick, in order to prevent event spam, their datawatcher value
ends up negative.

This datawatcher value is used to increment the fuseTicks within the
creeper tick. Because the value is negative, it is constantly zero'd
and therefore never incremented, instead acting the same as creepers
that aren't ignited.

We can just as easily increment this ourselves when the creeper is
ignited, so that's what we'll do.
2018-08-29 22:59:09 -04:00
Aikar
aabff6632d
Optimize getChunkIfLoaded type calls
Uses optimized check to avoid major locks and large method.

Will improve inlining across many hot methods.

Improve getBrightness to not do double chunk map lookups.
2018-08-29 22:12:17 -04:00
Zach Brown
f8b40558fd
Add Inventory#removeItemAnySlot
Closes GH-1360

This behaves identically to Inventory#removeItem, except it
searches all slots rather than just the storage contents.
2018-08-29 21:41:39 -04:00
Shane Freeder
5ad02bdff5
Update CB 2018-08-29 17:35:36 +01:00
Aikar
9061d8146b
[Auto] Updated Upstream (Bukkit/CraftBukkit)
Upstream has released updates that appears to apply and compile correctly.
This update has not been tested by PaperMC and as with ANY update, please do your own testing

Bukkit Changes:
9ca2772d API to prevent PlayerBedLeaveEvent from changing a player's spawn location

CraftBukkit Changes:
1486c295 API to prevent PlayerBedLeaveEvent from changing a player's spawn location
2018-08-29 05:19:27 -04:00
Aikar
6627a827b4
[CI-SKIP] [Auto] Rebuild Patches
A recent commit has been made that caused patches to be out of order, rebuilding
2018-08-28 23:16:31 -04:00
Shane Freeder
028399fd33
Merge branch 'master' into pre/1.13 2018-08-29 04:07:50 +01:00
Aikar
61f5cf0881
Optimize Chunk Height Maps
Use an EnumMap for fast key access
2018-08-28 22:12:27 -04:00
Aikar
615cd59fdc
Optimize Chunk#getPos
get rid of object creation
2018-08-28 21:36:42 -04:00
Aikar
adfd86f58a
[Auto] Updated Upstream (Bukkit/CraftBukkit)
Upstream has released updates that appears to apply and compile correctly.
This update has not been tested by PaperMC and as with ANY update, please do your own testing

Bukkit Changes:
97368963 Update ChunkSnapshot docs about valid coordinates

CraftBukkit Changes:
3831ae62 SPIGOT-4325: Validate coordinate arguments in Chunk/ChunkSnapshot
2018-08-28 17:49:36 -04:00
Shane Freeder
cd5da239f8
Fixup AsyncTabCompletionEvent handling 2018-08-28 22:12:21 +01:00
Aikar
bf3f725c72
[Auto] Updated Upstream (CraftBukkit)
Upstream has released updates that appears to apply and compile correctly.
This update has not been tested by PaperMC and as with ANY update, please do your own testing

CraftBukkit Changes:
9636bb8d SPIGOT-4319: Conduit damage should be a block event
2018-08-28 07:09:44 -04:00
Daniel Bethel
587665cfdd Add timings support to command functions (#1379) 2018-08-27 18:30:58 -04:00
BillyGalbreath
545f751801 Fix explosions not doing damage to entities (#1380) 2018-08-27 13:59:07 -04:00
Zach Brown
9ac7577de3
Update upstream CB 2018-08-27 11:07:22 -04:00
BillyGalbreath
7dff42b4ae Add More Creeper API (#1372) 2018-08-27 03:01:08 -04:00
BillyGalbreath
2d0c9eea98 Add PhantomSpawnEvent (#1375) 2018-08-27 02:51:20 -04:00
Aikar
2d7e5dce25
Disable Vanilla last chunk access cache, use ours
Also fixes some bugs in ours

Ultimately they both are near the same, but ours is behind the synchronized gate.

Mojangs is mixed behind 2 different synchronization contexts (chunks can lock 2 different objects)

Mojang also blindly unsets the ref on any chunk unload, not just if its the one being pointed to.
2018-08-27 00:26:00 -04:00
Aikar
ffd9c77923
MC-134668: Remove bad synchronized block from FileIOThread
This is causing the main thread to be blocked still.
2018-08-26 22:09:10 -04:00
Aikar
c677a1e520
Fix mob spawn limits 2018-08-26 21:21:28 -04:00
Aikar
835bc39b03
Paper 1.13.1 Update
Updated Upstream (Bukkit/CraftBukkit/Spigot)

Bukkit Changes:
2dcc44dc SPIGOT-4307: Fix hacky API for banners on shields
e0fc6572 SPIGOT-4309: Add "forced" display of particles
efeeab2f Add index to README.md for easier navigation
f502bc6f Update to Minecraft 1.13.1

CraftBukkit Changes:
d0bb0a1d Fix some tests randomly failing
997d378d Fix client stall in specific teleportation scenarios
b3dc2366 SPIGOT-4307: Fix hacky API for banners on shields
2a271162 SPIGOT-4301: Fix more invalid enchants
5d0d83bb SPIGOT-4309: Add "forced" display of particles
a6772578 Add additional tests for CraftBlockData
ce1af0c3 Update to Minecraft 1.13.1

Spigot Changes:
2440e189 Rebuild patches
4ecffced Update to Minecraft 1.13.1
2018-08-26 20:51:39 -04:00
Aikar
c534848047
[Auto] Updated Upstream (CraftBukkit)
Upstream has released updates that appears to apply and compile correctly.
This update has not been tested by PaperMC and as with ANY update, please do your own testing

CraftBukkit Changes:
162bda93 Add note about 1.13.1
2018-08-26 00:04:29 -04:00
Colin Godsey
fdd92dc143 Re-add Configurable speed for water flowing over lava
Closes GH-1227
2018-08-25 22:57:30 -04:00
Zach Brown
c1c1ac6f8b Rebuild and simplify map call 2018-08-25 22:48:49 -04:00
Aikar
081b7b00f8
[CI-SKIP] [Auto] Rebuild Patches
A recent commit has been made that caused patches to be out of order, rebuilding
2018-08-25 22:41:32 -04:00
stonar96
bd232d80da 1.13: Readd Anti-Xray (#1366)
* Decompile fixes for ProtoChunk and DataPaletteBlock

* Do changes

* final change

* more changes

* First Anti-Xray build

* Fixes and cleanups

* Cleanups and renamings

* Cleanups renamings and move OBFHELPERs to 0004-MC-Utils.patch

* Implement obfuscation for newly generated chunks

* Implement chunk edge mode

* Implement block updates

* Cleanups

* Rebuild patches
2018-08-25 22:37:58 -04:00
Aikar
43cc35a1cf
Updated Upstream (CraftBukkit)
Upstream has released updates that appears to apply and compile correctly.
This update has not been tested by PaperMC and as with ANY update, please do your own testing

CraftBukkit Changes:
f41aae40 Remove reflection from CraftBlockData
2018-08-25 00:20:58 -04:00
Zach Brown
12cf81881c
Merge branch 'master' into pre/1.13 2018-08-24 12:15:59 -04:00
BillyGalbreath
56569f7812 1.13: Slime Patherfinder Events (#1246)
Replaces PR #1161 for 1.13

Resolves #930 

Adds new slime pathfinder related events. All events can be cancelled.
- `SlimePathfindEvent` is the base event of all added events. Cancelling this event will cancel all pathfinders.
- `SlimeWanderEvent` is called when slimes wander around by either swimming or moving/jumping forward. Cancelling this event will prevent slimes from moving around and jumping, but they will still look around and target players.
- `SlimeSwimEvent`is called when slimes are swimming in water/lava. Cancelling will prevent the slimes from moving/jumping in water/lava.
- `SlimeChangeDirectionEvent` is called when a slime changes directions. It contains the new `yaw` position the slime wants to change to, and it can be set to another value. Cancelling this event will prevent slimes from changing directions (except for when targeting players).
- `SlimeTargetLivingEntityEvent` is called when a slime targets a player. NMS uses EntityLiving here so it is named this. Contains the LivingEntity the slime has targeted. Cancelling this event will prevent the slime from targeting the entity and will make it lose current focus.

Adds `Slime#canWander()` and `Slime#setWander(boolean)` for a more persistent control (does not persist server restarts) over all 4 pathfinder types without the spammy event having to be cancelled a bajillion times a second.

Video demonstration: https://youtu.be/8hcLqazmO28

Test plugin: https://pastebin.com/cFgcgdWV
2018-08-24 10:40:14 -04:00
cakoyo
a1e9cd39d2 Add source block to BlockPhysicsEvent (#1364)
Resolves #1275 

For plants, the source block is itself, because the `changed` type is itself.
2018-08-24 10:38:31 -04:00