Commit Graph

19185 Commits

Author SHA1 Message Date
Aikar
faa5f1fb18 Fix Double World Add issues - Fixes #328
Vanilla will double add Spider Jockeys to the world, so ignore already added.

Also add debug if something else tries to, and abort before world gets bad state
2016-06-22 22:50:19 -04:00
Aikar
6463bc2fe2 Optimize isInvalidYLocation, getType and getBlockData
Some pretty micro optimizations, but this is the hottest method in the server....

This will drastically reduce number of operations to perform getType

the 2 previous patches was squashed into 1
2016-06-22 22:43:02 -04:00
Aikar
03553d232e Update upstream 2016-06-22 22:18:41 -04:00
Zach Brown
7253bb10ca Update upstream B/CB 2016-06-19 21:41:46 -05:00
Zach Brown
2d5bf3c88c Merge pull request #342 from phase/master
Toggleable Elytra Wall Damage
2016-06-19 12:02:09 -05:00
Jadon Fowler
62af55a00c Toggleable Elytra Wall Damage
Instead of calculating the damage taken from hitting a wall, you can
disable it in the config.
2016-06-18 23:14:58 -07:00
Aikar
284e2f4856 Delay Chunk Unloads based on Player Movement
When players are moving in the world, doing things such as building or exploring,
they will commonly go back and forth in a small area. This causes a ton of chunk load
and unload activity on the edge chunks of their view distance.

A simple back and forth movement in 6 blocks could spam a chunk to thrash a
loading and unload cycle over and over again.

This is very wasteful. This system introduces a delay of inactivity on a chunk
before it actually unloads, which is maintained separately from ChunkGC.

This allows servers with smaller worlds who do less long distance exploring to stop
wasting cpu cycles on saving/unloading/reloading chunks repeatedly.
2016-06-18 23:33:57 -04:00
totokaka
cd0d4d1674 Fix issue with setting player view distance 2016-06-18 20:52:11 -05:00
Aikar
76ccb4c5f0 Remove the item from the correct hand when spawn egg depletes 2016-06-18 03:44:11 -04:00
Techcable
94a6e8cb09 Make entities look for hoppers
Cherry-pick of PR GH-319
2016-06-18 01:03:40 -05:00
Zach Brown
9127c31ed6 Fix missed case in top of nether void damage patch
General cleanup, etc.
Closes GH-343
2016-06-18 00:25:37 -05:00
Daniel Ennis
290af99931 Merge pull request #340 from phase/master
Fix infinite loop when saving chunks
2016-06-17 18:56:51 -04:00
Jadon Fowler
3093562782 Fix infinite loop when saving chunks
Running `/save-all flush` would start an infinite loop that prints:
    ThreadedAnvilChunkSotrage (world): All chunks are saved
2016-06-17 02:29:57 -07:00
Zach Brown
dd7b44ce04 Update upstream B/CB/S 2016-06-16 18:22:35 -05:00
Zach Brown
9e7853d9dd Remove timings addition that was fixed upstream 2016-06-15 17:51:30 -05:00
Zach Brown
3497f7000d Update upstreams 2016-06-15 17:43:51 -05:00
Zach Brown
03eeadc2df Update upstream B/CB
Merges fixes for SPIGOT-2404 and SPIGOT-2408 into Paper
2016-06-13 18:42:08 -05:00
Zach Brown
55fe08d4b9 Update upstream CB/S 2016-06-12 12:00:07 -05:00
Zach Brown
0aaf5eb95c Update upstream B/CB 2016-06-11 22:22:27 -05:00
Jedediah Smith
ad39344717 Resolve an ISE in MagmaBlock damage handling 2016-06-11 19:10:18 -05:00
Zach Brown
4282b7c95d MC-80966 - Always send chunk sections 2016-06-11 14:59:28 -05:00
Zach Brown
2a773b737b Update upstream and rebuild 2016-06-11 14:58:54 -05:00
Zach Brown
59cc0a9834 Simplify getEntity by UUID patch, misc readme changes 2016-06-09 21:43:32 -05:00
Zach Brown
a639c9b080 Merge pull request #327 from Brokkonaut/master
Update upstream CB/S
2016-06-09 12:35:28 -05:00
Brokkonaut
044978f8cc Update upstream CB/S 2016-06-09 19:28:16 +02:00
Zach Brown
8ab69858ac Update upstream CB 2016-06-09 00:24:23 -05:00
Zach Brown
9b192b2708 Update to Minecraft 1.10 2016-06-08 22:57:14 -05:00
chickeneer
f53bec077b Fix Potion Equals Bug
Will be in Spigot 1.10, but getting it in for 1.9 users
2016-06-08 20:41:10 -04:00
Aikar
c9bf3f3819 Fix issue with chests being erased - #322 Fixed 2016-06-07 03:03:51 -04:00
Aikar
85df861eda more chunk unload queue fixes, hopefully fix various odd bugs 2016-06-07 02:08:59 -04:00
Aikar
49c8b34653 Fix bug with lootable refresh not saving inventory if on 2016-06-06 19:56:51 -04:00
Zach Brown
bdc783f176 Merge pull request #321 from MyPlayPlanet/falling-block-height-doEntityDrops
Make falling block height nerf respect doEntityDrops
2016-06-06 17:39:43 -05:00
Martin Panzer
74a3b887ff Make falling block height nerf respect doEntityDrops 2016-06-06 21:14:35 +02:00
Aikar
fbcd3ce763 Add sub timings to chunk map 2016-06-05 00:10:50 -04:00
Zach Brown
ebfc40dde6 Merge pull request #317 from MyPlayPlanet/fix-fence-fallblock
Fix fallingblocks getting stuck on fences
2016-06-04 18:24:27 -05:00
Zach Brown
0369cec5a0 Add notes about the configs and obfuscation helpers to CONTRIBUTING.md 2016-06-04 18:16:31 -05:00
Zach Brown
d9e7de59e9 Fix a few global configuration options being unavailable 2016-06-04 17:26:11 -05:00
Aikar
e18cef3e72 remove part of my hopper patch, not sure its doing what I intended 2016-06-04 11:52:25 -04:00
Aikar
ec95eb86f7 Update Upstream 2016-06-04 11:41:04 -04:00
Martin Panzer
fb10fff9b0 Fix fallingblocks getting stuck on fences 2016-06-04 10:11:03 +02:00
Zach Brown
44ddc211c4 Update upstream 2016-06-01 22:52:52 -05:00
Aikar
c760673958 Reset Ender Crystals on Dragon Spawn
Crystals can end up in a bad state in certain conditions which causes
an exception on the expected number of crystals going negative.

This ensures the crystals/pillars are in expected state when the dragon spawns.

See #3522
2016-06-01 23:29:17 -04:00
Aikar
1d8508b7ac Fix Concurrency issue in ShufflingList
if multiple threads from worldgen sort at same time, it will crash.
So make a copy of the list for sorting purposes.
2020-07-06 18:36:41 -04:00
William Blake Galbreath
c2be5a5354 Fix deop kicking non-whitelisted player when white list is not enabled 2020-10-03 22:00:27 -05:00
William Blake Galbreath
972b6a6f18 Entity#isTicking 2020-10-03 21:39:16 -05:00
Andrew Steinborn
2f55ab6d4e Lazily track plugin scoreboards by default
On servers with plugins that constantly churn through scoreboards, there is a risk of
degraded GC performance due to the number of scoreboards held on by weak references.
Most plugins don't even need the (vanilla) functionality that requires all plugin
scoreboards to be tracked by the server. Instead, only track scoreboards when an
objective is added with a non-dummy criteria.

This is a breaking change, however the change is a much more sensible default. In case
this breaks your workflow you can always force all scoreboards to be tracked with
settings.track-plugin-scoreboards in paper.yml.
2020-10-03 04:15:09 -04:00
MeFisto94
73b101005b Expose the Entity Counter to allow plugins to use valid and non-conflicting Entity Ids 2020-08-28 01:41:26 +02:00
Shane Freeder
af1fabed04 Extend block drop capture to capture all items added to the world 2020-09-17 00:36:05 +01:00
Aikar
a4cc307c2b Cache DataFixerUpper Rewrite Rules on demand
Mojang precaches every single potential rewrite rule that could ever
exist on server startup. This includes rules from all the way back to versions from 6+ years ago.

This is the source of why the server hogs every CPU core at 100% every start.

For anyone who hard resets for updates or has force upgraded their entire world, this
results in completely wasted cpu cycles.

This massive CPU usage also delays server startup time.

We improve this by making "min version to precache" that defaults to a future version
so that no rewrite rules are precached.

someone who expects to be converting a lot chunks could theoretically set
-DPaper.minPrecachedDatafixVersion=<dataVersionConvertingFrom> as a startup
parameter and only build from that point on.

However this will likely never be needed as the server will still run
the same cache logic on demand when it's actually needed. The only
cost would be some delay on the FIRST chunk conversion, but paper already
runs chunk conversions on another thread so this will likely never be
a concern for TPS.

This patch will significantly reduce CPU use on startup, reduce memory usage,
and improve server startup time.
2020-09-12 17:21:38 -04:00
JRoy
963cd88791 Add additional open container api to HumanEntity
== AT ==
public net/minecraft/world/level/block/state/BlockBehaviour getMenuProvider(Lnet/minecraft/world/level/block/state/BlockState;Lnet/minecraft/world/level/Level;Lnet/minecraft/core/BlockPos;)Lnet/minecraft/world/MenuProvider;
2020-08-26 02:12:31 -04:00