Commit graph

38 Commits

Autor SHA1 Nachricht Datum
mbax
f6a0b1e426 Update CraftBukkit to 1.6.2 2013-07-08 19:43:37 -04:00
Nate Mortensen
6c09066e22 Update CraftBukkit to 1.6.1 2013-07-01 12:10:06 -05:00
Travis Watkins
799779e4b1 Update CraftBukkit to Minecraft 1.5.2 2013-04-27 10:42:19 -05:00
Travis Watkins
5f089137ee Cleanup comments, formatting, etc 2013-03-25 00:51:36 -05:00
Travis Watkins
83d29e461c Update CraftBukkit to Minecraft 1.5 2013-03-15 13:28:59 -05:00
feildmaster
315127782a Initialize entity data before spawning them. Fixes BUKKIT-3209
Vanilla does the initialize before spawning everywhere except in the
SpawnerCreature, our spawn event depends on this behavior to be
consistent.
2013-01-16 23:05:18 -06:00
cexikitin
8bc9e712e1 Spawn monsters without prematurely exiting. Fixes BUKKIT-3425
By using return 0, we exit the loop prematurely preventing other
creature types from being spawned if one type is set to 0. By using
continue we move on to the other types and allow them to spawn
properly.
2013-01-14 19:24:08 -06:00
Travis Watkins
7f7192f8fd Update CraftBukkit to Minecraft 1.4.4. 2012-11-13 16:09:52 -06:00
Travis Watkins
f479aa84a4 Implement API for ambient mob spawn limit. Add spawn-limit.ambient to
bukkit.yml. Adds BUKKIT-2765
2012-10-31 13:01:48 -04:00
Travis Watkins
60819c6693 Update CraftBukkit to Minecraft 1.4(.2). 2012-10-27 22:19:03 -04:00
Travis Watkins
74b3be57b7 Replace LongObjectHashMap with a more efficient implementation
After further testing it appears that while the original LongHashtable
has issues with object creation churn and is severly slower than even
java.util.HashMap in general case benchmarks it is in fact very efficient
for our use case.

With this in mind I wrote a replacement LongObjectHashMap modeled after
LongHashtable. Unlike the original implementation this one does not use
Entry objects for storage so does not have the same object creation churn.
It also uses a 2D array instead of a 3D one and does not use a cache as
benchmarking shows this is more efficient. The "bucket size" was chosen
based on benchmarking performance of the HashMap with contents that would
be plausible for a 200+ player server. This means it uses a little extra
memory for smaller servers but almost always uses less than the normal
java.util.HashMap.

To make up for the original LongHashtable being a poor choice for generic
datasets I added a mixer to the new implementation based on code from
MurmurHash. While this has no noticable effect positive or negative with
our normal use of chunk coordinates it makes the HashMap perform just as
well with nearly any kind of dataset.

After these changes ChunkProviderServer.isChunkLoaded() goes from using
20% CPU time while sampling to not even showing up after 45 minutes of
sampling due to the CPU usage being too low to be noticed.
2012-09-21 11:20:10 -05:00
Travis Watkins
97ac0a3f14 Add LongObjectHashMap and LongHashSet
Replace uses of LongHashtable and LongHashset with new implementations.
Remove EntryBase, LongBaseHashtable, LongHashset, and LongHashtable as they
are no longer used.

LongObjectHashMap does not use Entry or EntryBase classes internally for
storage so has much lower object churn and greater performance. LongHashSet
is not as much of performance win for our use case but for general use is
up to seventeen times faster than the old implementation and is in fact
faster than alternatives from "high performance" java libraries. This is
being added so that if someone tries to use it in the future in a place
unrelated to its current use they don't accidentally end up with something
slower than the Java collections HashSet implementation.
2012-08-19 09:51:00 -05:00
feildmaster
a43d621c01 Update CraftBukkit to Minecraft 1.3.1 2012-08-02 04:58:50 -05:00
Wesley Wolfe
b00de5f176 Cleaned up CraftBukkit comments in NMS.
Added newlines at the end of files
Fixed improper line endings on some files
Matched start - end comments
Added some missing comments for diffs
Fixed syntax on some spots
Minimized some diff
Removed some no longer used files
Added comment on some required files with no changes
Fixed imports of items used once
Added imports for items used more than once
2012-07-23 23:55:31 -05:00
Travis Watkins
8f1fc96da0 Fixed per-world spawn limits. I have no idea how we missed this. 2012-04-24 22:28:26 -04:00
Travis Watkins
edfc8ba92f Add per-world spawn limits with fallback to server-wide bukkit.yml settings.
Fixes BUKKIT-1565
2012-04-23 22:54:43 -04:00
feildmaster
20dea920c2 Don't spawn conditional mobs if original entity is dead. Fixes BUKKIT-1444 2012-04-03 18:07:46 -05:00
EvilSeph
81102479a7 Made Slimes spawn less often in FLAT worlds. Fixes BUKKIT-1441 2012-04-02 17:10:17 -04:00
feildmaster
7c137d8b19 Added a reason for randomly spawning Ocelot babies. Addresses BUKKIT-1391 2012-03-31 21:30:28 -05:00
Nathan Adams
9d09e7d016 Updated to Minecraft version 1.2.4. Updated version string to 1.2.4-R0.1. 2012-03-22 20:39:39 +00:00
Tahg
cb669f72a0 Fixed porting issue with SpawnerCreature. Fixes BUKKIT-921 2012-03-02 11:12:47 -05:00
Nathan Adams
543c4879fe Updated CraftBukkit to 1.2 2012-03-01 14:38:31 +00:00
EvilSeph
c38fcb360a Implemented JOCKEY and CHUNK_GEN SpawnReasons. 2012-02-10 07:17:41 -05:00
EvilSeph
0170ae9523 Cleanup. 2012-02-10 00:43:12 -05:00
Erik Broes
a4ce846d07 Fix formatting. 2012-01-15 10:54:57 +01:00
Erik Broes
61ec751ca1 Update for 1.1_01 renames.
We know these updates (can) break plugins bypassing Bukkit. They are needed for
smooth updates however. There will be another one right before before 1.1-R1.
2012-01-15 10:52:37 +01:00
Nathan Adams
897551e39e Update to mc-dev rename revision 01 2012-01-12 15:27:39 +00:00
Erik Broes
7f079a0cd6 Fix CraftBukkit comments. 2012-01-12 12:07:38 +01:00
Tahg
e4a839cbbc Fix for entity spawning and some code cleanup 2011-12-06 19:21:10 -05:00
Tahg
bc8f02788f Performance update to remove several very high counts of temp object creation 2011-12-06 08:52:45 -05:00
Nathan Adams
8fbe78a2c3 Updated to use mc-dev rename revision 1 2011-11-30 21:46:19 +00:00
Erik Broes
345ea36c7b Update for 1.0.0 2011-11-20 00:01:33 -08:00
sk89q
40c8cc0421 Fixed monsters being spawned even when one was faux sleeping. Thanks to EdGruberman. 2011-09-26 15:37:38 -07:00
EvilSeph
e83a197567 Removed extra addEntity call in SpawnerCreature. 2011-09-17 02:26:40 -04:00
Dinnerbone
5b2c774edc Update for Minecraft 1.8 2011-09-15 01:23:52 +01:00
Dinnerbone
a679e7f380 Update to Minecraft 1.7 2011-06-30 15:19:25 +01:00
Dinnerbone
568731f29c Line endings. 2011-06-22 16:55:04 +01:00
EvilSeph
79337d3aab Added SpawnReasons to CreatureSpawn events. Thanks winsock! 2011-06-21 16:37:07 -04:00