Commit Graph

19448 Commits

Author SHA1 Message Date
Aikar
1056951a73 Optimize DataBits
Remove Debug checks as these are super hot and causing noticeable hits

Before: http://i.imgur.com/nQsMzAE.png
After: http://i.imgur.com/nJ46crB.png

Optimize redundant converting of static fields into an unsigned long each call by precomputing it in ctor
2016-04-05 21:38:58 -04:00
Aikar
55db966770 Fix Cancelling BlockPlaceEvent triggering physics 2016-04-03 17:48:50 -04:00
Aikar
eb76e508f5 Configurable random tick rates for blocks
A general purpose patch that includes config options for the tick rate
of a variety of blocks that are random ticked.

Co-authored-by: MrPowerGamerBR <git@mrpowergamerbr.com>
2016-04-03 16:28:17 -04:00
Jedediah Smith
e2263633d4 Add PlayerUseUnknownEntityEvent
Adds the PlayerUseUnknownEntityEvent to be used by plugins dealing with
virtual entities/entities that are not actually known to the server.

Co-authored-by: Nassim Jahnke <nassim@njahnke.dev>
2016-04-02 05:09:16 -04:00
Aikar
f9ef3612f7 Do not load chunks for Pathfinding 2016-03-31 19:17:58 -04:00
Antony Riley
db2502d732 Sanitise RegionFileCache and make configurable
RegionFileCache prior to this patch would close every single open region
file upon reaching a size of 256.
This patch modifies that behaviour so it closes the the least recently
used RegionFile.
The implementation uses a LinkedHashMap as an LRU cache (modified from HashMap).
The maximum size of the RegionFileCache is also made configurable.
2016-03-29 08:22:55 +03:00
Aikar
c801c5439d EntityPathfindEvent
Fires when an Entity decides to start moving to a location.
2016-03-28 21:22:26 -04:00
Aikar
e2accd8d62 Configurable Chunk Inhabited Time
Vanilla stores how long a chunk has been active on a server, and dynamically scales some
aspects of vanilla gameplay to this factor.

For people who want all chunks to be treated equally, you can chose a fixed value.

This allows to fine-tune vanilla gameplay.
2016-03-28 20:46:14 -04:00
Aikar
93bbce1c69 Entity AddTo/RemoveFrom World Events 2016-03-28 20:32:58 -04:00
Aikar
63fa3068c6 Only process BlockPhysicsEvent if a plugin has a listener
Saves on some object allocation and processing when no plugin listens to this
2016-03-28 19:55:45 -04:00
Zach Brown
b2671f4dd1 Configurable spawn chances for skeleton horses 2016-03-22 12:04:28 -05:00
Aikar
d989bc5d17 Use a Shared Random for Entities
Reduces memory usage and provides ensures more randomness, Especially since a lot of garbage entity objects get created.
2016-03-22 00:33:47 -04:00
Aikar
becb30e9e6 handle NaN health/absorb values and repair bad data 2015-09-27 01:18:02 -04:00
Jedediah Smith
54fe0287a2 Custom replacement for eaten items 2015-06-21 15:07:20 -04:00
Aikar
f54f356a35 Add World Util Methods
Methods that can be used for other patches to help improve logic.
2016-03-18 20:16:03 -04:00
Aikar
686b77345f Configurable Non Player Arrow Despawn Rate
Can set a much shorter despawn rate for arrows that players can not pick up.
2016-03-18 15:12:22 -04:00
Aikar
20b9d3de7b Handle Item Meta Inconsistencies
First, Enchantment order would blow away seeing 2 items as the same,
however the Client forces enchantment list in a certain order, as well
as does the /enchant command. Anvils can insert it into forced order,
causing 2 same items to be considered different.

This change makes unhandled NBT Tags and Enchantments use a sorted tree map,
so they will always be in a consistent order.

Additionally, the old enchantment API was never updated when ItemMeta
was added, resulting in 2 different ways to modify an items enchantments.

For consistency, the old API methods now forward to use the
ItemMeta API equivalents, and should deprecate the old API's.
2015-05-28 23:00:19 -04:00
Aikar
2a04d23940 Remove Metadata on reload
Metadata is not meant to persist reload as things break badly with non primitive types
This will remove metadata on reload so it does not crash everything if a plugin uses it.
2016-03-18 13:50:14 -04:00
William
acfd9a39a0 Allow Reloading of Custom Permissions
https://github.com/PaperMC/Paper/issues/49
2016-03-18 03:30:17 -04:00
Aikar
8a67ae1780 Default loading permissions.yml before plugins
Under previous behavior, plugins were not able to check if a player had a permission
if it was defined in permissions.yml. there is no clean way for a plugin to fix that either.

This will change the order so that by default, permissions.yml loads BEFORE plugins instead of after.

This gives plugins expected permission checks.

It also helps improve the expected logic, as servers should set the initial defaults, and then let plugins
modify that. Under the previous logic, plugins were unable (cleanly) override permissions.yml.

A config option has been added for those who depend on the previous behavior, but I don't expect that.
2016-03-18 13:17:38 -04:00
Jedediah Smith
f55b057ffb Complete resource pack API 2015-04-04 23:17:52 -04:00
Spigot
f347964c27 Do Not Search for Offline Players
By default we do not want to search as this leads to massive load times for plugins wanting to do mass data lookups.

By: md_5 <md_5@live.com.au>
2013-06-16 08:21:11 +10:00
Spigot
925012dc60 Fix loading of per world settings
By: md_5 <md_5@live.com.au>
2013-06-15 22:01:15 +10:00
Spigot
07e9933928 Add meta crash fix
By: md_5 <md_5@live.com.au>
2013-06-15 21:35:04 +10:00
Spigot
9805d9df71 Implemented Bukkit and CraftBukkit pulls #859 and #1137 respectively
By: Andy Shulman <andy.shulman@hotmail.com>
2013-06-15 19:10:13 +10:00
Spigot
be02458440 Update versions.
By: md_5 <md_5@live.com.au>
2013-06-15 19:08:22 +10:00
Spigot
01db5f25d0 Automatically update upstream versions. Bukkit-1.5.2-R1.0-1-gb67b640, CraftBukkit-1.5.2-R1.0-1-gf46bd58
By: SpigotMC <no-reply@spigotmc.org>
2013-06-14 22:27:31 -04:00
Spigot
cc3cc7ef10 Automatically update upstream versions. Bukkit-1.5.2-R1.0, CraftBukkit-1.5.2-R1.0
By: SpigotMC <no-reply@spigotmc.org>
2013-06-14 22:12:34 -04:00
Spigot
6f059075bd Automatically update upstream versions. Bukkit-1.5.2-R0.1-5-g373af3e, CraftBukkit-1.5.2-R0.1-8-g40bfbe4
By: SpigotMC <no-reply@spigotmc.org>
2013-06-13 23:07:33 -04:00
Spigot
d7a9098509 Automatically update upstream versions. Bukkit-1.5.2-R0.1-5-g373af3e, CraftBukkit-1.5.2-R0.1-6-gc46663d
By: SpigotMC <no-reply@spigotmc.org>
2013-06-13 19:07:34 -04:00
Spigot
c82cc2d352 Bracket hell, thanks @sleaker.
By: md_5 <md_5@live.com.au>
2013-06-13 15:56:15 +10:00
Spigot
55c6093626 Rename some patches to be more concise. More to come once we can think of better names :p
By: md_5 <md_5@live.com.au>
2013-06-11 14:11:48 +10:00
Spigot
1b0fe7e2a8 Remove redundant patch
By: md_5 <md_5@live.com.au>
2013-06-11 14:06:05 +10:00
Spigot
e1a14f8be6 Split out offline player lookups
By: md_5 <md_5@live.com.au>
2013-06-11 14:02:19 +10:00
Spigot
e982614a7b Finish refactoring configuration. The PAIN is over for now
By: md_5 <md_5@live.com.au>
2013-06-11 13:14:01 +10:00
Spigot
f855c00165 Let the PAIN begin
By: md_5 <md_5@live.com.au>
2013-06-11 12:56:24 +10:00
Spigot
174e34b25a Split out getCubes patch
By: md_5 <md_5@live.com.au>
2013-06-11 12:18:55 +10:00
Spigot
a91aea481a Slightly prettier patch file
By: md_5 <md_5@live.com.au>
2013-06-11 12:13:28 +10:00
Spigot
cfbc452f12 Split out the better save queue patch
By: md_5 <md_5@live.com.au>
2013-06-11 12:10:31 +10:00
Spigot
c154270ef5 Split shutdown hang fix into own patch
By: md_5 <md_5@live.com.au>
2013-06-11 11:54:45 +10:00
Spigot
9d05905642 Automatically update upstream versions. Bukkit-1.5.2-R0.1-5-g373af3e, CraftBukkit-1.5.2-R0.1-5-gb89a351
By: SpigotMC <no-reply@spigotmc.org>
2013-06-10 14:17:36 -04:00
Spigot
c9be6c849b Incorrect brackets....
By: md_5 <md_5@live.com.au>
2013-06-10 14:10:42 +10:00
Spigot
f8ae20dd1a Null checks for the sake of nullchecks
By: md_5 <md_5@live.com.au>
2013-06-10 11:38:51 +10:00
Spigot
6c3e670871 Fix missing nullcheck in particle API
By: md_5 <md_5@live.com.au>
2013-06-10 10:58:26 +10:00
Spigot
7487505a4d Revert tick loop catch up TPS
By: md_5 <md_5@live.com.au>
2013-06-08 16:14:43 +10:00
Spigot
ec186959e8 Shuffle location of this small mc-dev change
By: md_5 <md_5@live.com.au>
2013-06-08 09:50:30 +10:00
Spigot
cd95751dc4 Fix patch extras
By: md_5 <md_5@live.com.au>
2013-06-08 09:29:32 +10:00
Spigot
1bda949c57 Fix Breeding issues with EAR
By: Aikar <aikar@aikar.co>
2013-06-08 09:27:14 +10:00
Spigot
50d1ab0cfd Drill down detail of world - doTickRest
By: Aikar <aikar@aikar.co>
2013-06-08 09:21:38 +10:00
Spigot
7a96ad8928 Properly report TPS when catching up
By: Aikar <aikar@aikar.co>
2013-06-08 09:20:25 +10:00