Commit Graph

1943 Commits

Author SHA1 Message Date
Travis Watkins
ccc760d629 Use a dynamic pool size for the iterator cache
Many codepaths only end up with one iterator being used at a time and
most of the rest only get up to two being used so using a static pool of
three is wasteful. This also allows us to efficiently handle cases that
exceed 3 iterators in use. Overall this dramatically increases the hit rate
and results in less iterators being created.
2012-08-20 18:44:07 -05:00
feildmaster
e7e643d83a Implement API to retrieve and open EnderChests. Adds BUKKIT-2016 2012-08-20 16:00:53 -05:00
Travis Watkins
feb0327d22 Check unload queue so we don't accidentally leave a chunk loaded 2012-08-19 16:06:14 -05:00
Mike Primm
7dde6cc566 [Bleeding] Stub out MethodProfiler class
Instead of trying to track down every place this class is used we can
simply stub out the entire class so it has no extra overhead.
2012-08-19 09:51:09 -05:00
Mike Primm
e079d9457e [Bleeding] Strip out unused HashSet in IntHashMap 2012-08-19 09:51:07 -05:00
Mike Primm
eaa3154b0e [Bleeding] Cache packet ID instead of doing lookups each time it is needed 2012-08-19 09:51:04 -05:00
Mike Primm
627cf2ef8b [Bleeding] Remove redundant chunkList from ChunkProviderServer
This ArrayList duplicates part of the functionality of the much more
efficient chunk map so can be removed as the map can be used in the few
places this was needed.
2012-08-19 09:51:00 -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
Travis Watkins
7b20caf8fe Use TrigMath in hotspots
Use our implementation of atan2 in AI routines as profiling shows these are
hotspots and (for these cases) our implementation is much faster.
2012-08-19 09:51:00 -05:00
Mike Primm
8219081385 [Bleeding] Change Vec3DPool to a stack based pool
Avoid overhead of using an ArrayList and resizing it. Also allows for reuse
of objects in the pool during the same tick by explicitly releasing them
back to the pool. This allows for much better cache performance as well
as reduced cache footprint.
2012-08-19 09:50:57 -05:00
Travis Watkins
d628c886d2 Optimize entity AI goal selector
Remove redundant ArrayList to avoid excessive object creation and CPU
overhead, the entries are added to the list then immediately iterated through
to run so just run them directly.

Swap order of some conditionals to perform the more efficient check first
as if it fails the list lookup will not be executed.

Remove profiling hooks including some rather expensive calls to getSimpleName.
2012-08-19 09:50:57 -05:00
Travis Watkins
858d36efc9 Add iterator cache to UnsafeList and use it in hotspots
Adds a specialized iterator for the list and a pool of iterators to avoid
object churn. Also optimizes the clear() method to reduce object creation.
2012-08-19 09:50:57 -05:00
Mike Primm
6d777ade16 [Bleeding] Optimize chunk loading
ChunkSection.e() is called once per chunk section loaded and is quite
expensive (about 20% of CPU time for loading the chunk). This changes the
logic to add a fast path when extended block data is not being used and
reorganizes the loops for more optimal array traversal. Overall this saves
about 20-30% CPU time in this method.
2012-08-19 09:50:45 -05:00
Mike Primm
852602e430 Add files from mc-dev for diff visibility 2012-08-19 09:19:28 -05:00
Mike Primm
5254993510 Fix issues with chunk saving. Fixes BUKKIT-2158, BUKKIT-2018 and BUKKIT-2229 2012-08-19 08:36:47 -04:00
Wesley Wolfe
cacfc71b46 Add more detailed CrashReport for CraftBukkit. Addresses BUKKIT-2319 2012-08-17 23:18:22 -05:00
Wesley Wolfe
acedd049c5 Add CrashReport for diff visiblity 2012-08-17 22:22:20 -05:00
John Driscoll
0bde47a173 Don't extend pistons until data is set. Fixes BUKKIT-2153 2012-08-17 17:06:46 -05:00
Wesley Wolfe
050a9276bc Removed unneeded mc-dev imports. Fixes BUKKIT-682 2012-08-17 16:37:53 -05:00
Travis Watkins
add387dee3 Call PlayerQuitEvent in correct location. Fixes BUKKIT-2193 2012-08-15 12:22:52 -05:00
feildmaster
fc35d000e4 Use correct SlotType's for merchants. Fixes BUKKIT-2257 2012-08-15 06:00:55 -05:00
feildmaster
b059962a5c Implement methods for spawning FallingBlocks and add various FallingBlock methods. Adds BUKKIT-2282 2012-08-14 07:38:23 -05:00
feildmaster
8748c8c757 Enable hardcore support. Fixes BUKKIT-2259
- Hardcore requires a newly generated world
- You will be banned if you die in a hardcore world
- You will NOT be banned if you die in a non-vanilla world
- Your "heart container" will not change without logging back in. (Vanilla bug)
2012-08-12 16:50:00 -05:00
feildmaster
aa92f0e313 Update CreatureSpawner.setSpawnedType(EntityType) to 1.3
They can spawn any valid entities now. What is a "valid" entity? A "valid" entity is an EntityType with a non-null getName(). (for example: PRIMED_TNT, FALLING_BLOCK)
2012-08-12 14:11:36 -05:00
feildmaster
bfc5189818 Fix "block update packet" not being sent to the correct world. Fixes BUKKIT-2023 2012-08-12 14:11:34 -05:00
Wesley Wolfe
342f9c3bd3 Implement player speed API. Addresses BUKKIT-2205 2012-08-10 00:00:04 -05:00
Wesley Wolfe
77cda7e715 Add PlayerAbilities for diff visibility 2012-08-09 23:16:19 -05:00
feildmaster
27c1c85adb Implement BlockBreakEvent block experience. Adds BUKKIT-2033 2012-08-08 19:49:10 -05:00
feildmaster
8d946b88b3 Add BlockMobSpawner and BlockOre for diff visibility 2012-08-08 19:49:08 -05:00
Wesley Wolfe
a16e0b6323 Change socket traffic class try-catch. Fixes BUKKIT-2093 2012-08-08 07:00:41 -05:00
Wesley Wolfe
25fe93479f Restore port to the hostname. Fixes BUKKIT-2124 2012-08-08 07:00:29 -05:00
EvilSeph
24809ef986 Re-add support for full chunk saving so the server save-alls on stop. Fixes BUKKIT-2158 2012-08-08 03:08:46 -04:00
EvilSeph
a133bc7182 Make periodic chunk saving less aggressive and fixed double player data saving. Fixes BUKKIT-1994 and fixes BUKKIT-2144 2012-08-07 18:52:53 -04:00
Wesley Wolfe
2bb7a5f94d Implement new deprecated warning state configuration option 2012-08-06 23:52:49 -05:00
Travis Watkins
bfbdbbd05c Tripwire isn't redstone, only fire interact events. 2012-08-06 19:47:22 -05:00
Travis Watkins
7a3dfecba0 Don't force chunks to load again, causes chunk leaks with multiworld. 2012-08-06 17:31:03 -05:00
Wesley Wolfe
0792b15887 Pistons no longer extend before they are pistons. Fixes BUKKIT-1999 2012-08-06 09:55:38 -05:00
feildmaster
59aaa6a80a Fix dispenser removing data from items. Fixes BUKKIT-2045 2012-08-06 09:09:05 -05:00
THDigi
7dc47892a4 Don't rotate ShapedRecipes. Fixes BUKKIT-1334
ShapedRecipe's getShape() always returns a 90deg rotated shape of the original shape, this commit fixes it.
2012-08-06 07:11:35 -05:00
Travis Watkins
164c066453 Fix "moved too quickly" detection. 2012-08-05 23:57:22 -05:00
Travis Watkins
e1a4273957 Fire events for tripwire and hooks. 2012-08-05 23:57:22 -05:00
Travis Watkins
982efb8c24 Add BlockTripwire and BlockTripwireHook from mc-dev for diff visibility. 2012-08-05 23:57:22 -05:00
Travis Watkins
304cb019e4 Fire EntityDeathEvent for pigs. Fixes BUKKIT-2100 2012-08-05 23:57:22 -05:00
Wesley Wolfe
9cccb1c89e Fix Vec3DPool; don't pool objects indefinitely or O(n^2) clear() 2012-08-05 21:36:25 -05:00
Wesley Wolfe
f5777cc0b7 Add Vec3DPool for diff visibility 2012-08-05 21:36:09 -05:00
Wesley Wolfe
44234c47ce Cease execution if block is AIR. Fixes BUKKIT-2104 2012-08-05 21:32:01 -05:00
Travis Watkins
a574ec54cc Put forceChunkLoad back to its original value. 2012-08-05 20:03:12 -05:00
Travis Watkins
beb71069b7 Don't use Packet56 and clear client cache on world changes. 2012-08-05 18:42:03 -05:00
Wesley Wolfe
0e013fa4b0 Fixed PlayerManager ConcurrentModificationExceptions. Fixes BUKKIT-1972 2012-08-04 22:12:16 -05:00
Wesley Wolfe
9804665fec Fix bounding box pool to use a dynamic cache size
Also changed insane array copy routine. This should reduce server lag
spikes that occur periodically.
2012-08-04 21:11:28 -05:00
Wesley Wolfe
14a470985d Add AABBPool for diff visibility 2012-08-04 21:06:17 -05:00
Travis Watkins
e5acb6cf3a Don't tick chunks or entities on chunks that are queued for unload.
Treat chunks in the unload queue as if they are already unloaded to prevent
processing on them removing them from the unload queue and leaking.
2012-08-04 18:08:26 -05:00
Travis Watkins
fdd01feb8c Avoid CME when lightning strikes by making a copy. Fixes BUKKIT-2055 2012-08-04 18:02:30 -05:00
Wesley Wolfe
a5da834258 Fix chat not being cancellable when not using deprecated API. 2012-08-04 05:44:23 -05:00
feildmaster
9bed5272d3 Re-implement code missing from leaving the end. Fixes BUKKIT-2003 2012-08-04 04:11:21 -05:00
feildmaster
823e3fb0c6 Correctly detect invalid PistonExtension's to allow removal of StickyPistons. Fixes BUKKIT-2059 2012-08-04 04:10:55 -05:00
feildmaster
ab8b7c7e33 Potentially fix chunk leaking, needs further examination 2012-08-04 01:43:17 -05:00
Steve Anton
f90bd7e7cc Fix PlayerBucketEmptyEvent handling. Fixes BUKKIT-2002 and fixes BUKKIT-1997
The method this.a(world, d0, d1, d2, i, j, k) is responsible for
actually placing the lava or water source block in the world. The event
is currently called after this method, thus canceling the event will
cause the player to keep their water/lava bucket but the water/lava will
still appear where they attempted to place it.

In addition, the check for whether a player has creative inventory is
short circuiting before the event fires, so the event will not be called
for these players.

This moves the event call and cancelled check above these two calls to
ensure it always fires and the results of it are honored.

Closes GH-835.
2012-08-03 23:44:45 -05:00
Wesley Wolfe
02d6703da7 Implement new AsyncPlayerChatEvent. Addresses BUKKIT-2064
Added two utility collections for use with PlayerChatEvents allowing lazier
initialization of events and less need to synchronize against the player
list.

Provided a hidden queue system for similar logic to pre-1.3 chat. When a
plugin is listening for the deprecated PlayerChatEvent, all chat will be
delayed to be mirror executed from the main thread. All developers are
encouraged to immediately update to the developmental Bukkit chat API as a
minimum transition for server stability.

Additionally, changes were required to bring thread-safety to the flow
logic. CopyOnWriteArrayList is the only viable means to produce thread
safety with minimal diff; using a sane pre-implemented collection would
require reworking of sections of NMS logic.

As a minor change, implemented expected functionality for
PlayerCommandPreProcessEvent. Setting the player should now change the
player executing the command.
2012-08-03 23:44:45 -05:00
Travis Watkins
4942f5184a Don't merge items with enchantments. Fixes BUKKIT-2050 2012-08-03 19:30:04 -05:00
feildmaster
8834d1423e Fix 1.3 changes that prevent nether and the_end to save level data. 2012-08-03 18:58:47 -05:00
md_5
07794300d0 [Bleeding] Fire inventory close event. Fixes BUKKIT-2036 2012-08-03 02:41:48 -05:00
Mike Primm
fe8fc6b90e Process entity ticks on worlds without players. Fixes BUKKIT-2031
Both the CB 1.3.1 code, and vanilla 1.3.1 code, have modified the
behavior of entity tick processing in a way that can lead to disabling
of entity cleanup. Specifically, the tickEntities() call in n.m.s.World,
which processes both the entity cleanup (removing from the world entity
list) and tile entity tick processing (furnaces and such) does not get
called by n.m.s.MinecraftServer's q() method (which drives tick
processing calls in general) when no players are on the given world.
This causes a serious memory leak when automation processes, like dynmap
mapping, load and unload chunks - as entities on unloaded chunks are
only cleaned up during entity tick processing. It also will cause issues
with any mods that use persistent chunk loading (that is, keeping chunks
loaded so that tile entities will continue being processed), since such
processing will no longer function without at least one player on the
given world.

In any case, the tickEntities() call should be called in the same
fashion as under 1.2.x (each tick, independent of player population, as
opposed to being suspended indefinitely when no players are on the given
world). The specific memory leak observed, with removing the unloaded
entites from the world, requires this call be made regularly (or, at
least, whenever the entity unload queue (world.g) is not empty.

Closes GH-832
2012-08-03 01:19:10 -05:00
Travis Watkins
f5794937a9 Print short message on exception to avoid spamming console. Fixes BUKKIT-2018 2012-08-03 01:04:16 -05:00
Travis Watkins
dcf83bc1b5 Restore configurable connection throttle. 2012-08-03 01:04:10 -05:00
Travis Watkins
e156354a60 Add DedicatedServerConnectionThread from mc-dev for diff visibility. 2012-08-03 00:48:07 -05:00
EvilSeph
d5fea5fd0d Fixed translation issue breaking custom world generation. Fixes BUKKIT-1975 2012-08-02 23:47:41 -04:00
Mike Primm
c711827e94 Fix mapping of ChunkSection nibble data to snapshot. Fixes BUKKIT-1977 2012-08-02 21:45:54 -05:00
Luke Granger-Brown
35a3d701a9 Add trailing / to BukkitDL URLs. Fixes BUKKIT-2015.
Also adds CraftBukkit version number to user agent when communicating with
BukkitDL.
2012-08-02 21:38:32 -05:00
Travis Watkins
8dc52123bf Fix dispenser event handling 2012-08-02 17:55:13 -05:00
feildmaster
d18972eca2 Fix Nether and The End having the same world names. 2012-08-02 11:02:14 -05:00
feildmaster
402b177be4 Add missing callWorldInitEvent on startup. 2012-08-02 10:14:01 -05:00
feildmaster
764c3f24ee Add test for WorldType's 2012-08-02 09:10:15 -05:00
feildmaster
a43d621c01 Update CraftBukkit to Minecraft 1.3.1 2012-08-02 04:58:50 -05:00
Wesley Wolfe
a4d7691299 Detect and disconnect 1.3 clients properly. Fixes BUKKIT-1952 2012-07-26 01:17:09 -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
Steve Anton
8b9aad8c2b Add remaining missing setLastDamageCause's 2012-07-14 17:57:31 -05:00
feildmaster
79189c1c13 Add missing setLastDamageCause. Thanks MonsieurApple 2012-07-13 22:57:42 -05:00
feildmaster
46125dc6cf Implement getExpToLevel method. Fixes BUKKIT-1906 2012-07-11 17:14:07 -05:00
feildmaster
cf9544c1d9 Reuse ItemInWorldManager, and stop applying ability changes. Fixes BUKKIT-1811 2012-07-09 18:07:53 -05:00
Mike Primm
08740d7f91 [Bleeding] Include chunk biome data for refresh chunk. Fixes BUKKIT-1166 2012-07-08 19:11:51 -05:00
feildmaster
dba9349ed4 Factor invulnerableTicks into getNoDamageTicks. Fixes BUKKIT-1324 2012-07-04 15:12:29 -05:00
feildmaster
d7272f42ef Implement getMotd, and reload the motd. Adds BUKKIT-1799 2012-07-03 18:00:37 -05:00
feildmaster
00efc8c464 Apply setLastDamageCause after processing events and the event has not been canceled. Fixes BUKKIT-1881
This allows previous causes to be available during the event, as well as making the damage cause a valid one. If EntityDamageEvent is canceled, then it's not the last DamageCause.

Also prevents setting DamageCause involuntarily through construction.
2012-07-02 22:22:03 -05:00
feildmaster
e4e994f710 Treat ComplexParts as proxies for setLastDamageCause. Fixes BUKKIT-1821 2012-07-02 22:22:03 -05:00
feildmaster
0a0d5ebf20 Clean entity.damage functions. Fixes BUKKIT-1822 2012-07-02 22:22:03 -05:00
Wesley Wolfe
ff09ff07f9 Fix deprecated spawnCreature. Fixes BUKKIT-1880 2012-07-02 15:36:49 -05:00
H31IX
6093bcc445 Fix client crash on InventoryClick cancel. Fixes BUKKIT-1841 2012-06-28 19:34:51 -05:00
Travis Watkins
a21f038fc3 Mark entities as invalid when they get despawned. Addresses BUKKIT-810 2012-06-28 19:34:31 -05:00
Wesley Wolfe
f5b6abfae1 Fix double overflow/underflow calculations with explosions. Fixes BUKKIT-1865 2012-06-27 21:17:20 -05:00
TomyLobo
412b7eaa12 Implement LivingEntity.hasLineOfSight. Addresses BUKKIT-1255 2012-06-23 10:48:08 -05:00
Travis Watkins
78acee359e Use LinkedHashSet to make redstone update order consistent. Fixes BUKKIT-1850 2012-06-23 10:47:38 -05:00
V10lator
ea4d3662be Deprecate spawnCreature and add spawnEntity. Addresses BUKKIT-1168 2012-06-23 10:18:50 -05:00
feildmaster
568fae2e86 Trigger EntityBlockChangeEvent for Silverfish. Adds BUKKIT-1560 and BUKKIT-1593 2012-06-23 06:42:08 -05:00
feildmaster
23d5922bbf Added EntitySilverfish for diff visibility 2012-06-23 06:42:06 -05:00
Wesley Wolfe
57763845d0 Implement plugin channel events. Addresses BUKKIT-1844 2012-06-21 02:39:59 -05:00
Travis Ralston
9f37f70527 Fire PlayerItemBreakEvent. Addresses BUKKIT-1600 2012-06-21 01:10:30 -05:00
Ammar Askar
8bc42ba8c9 Clear animal owner when untamed. Fixes BUKKIT-1482 2012-06-20 12:45:17 -05:00
H31IX
0095add08c Add query-plugins setting. Addresses BUKKIT-1781 2012-06-20 12:40:12 -05:00
Wesley Wolfe
6bbae461d5 Fix Heisenplayers 2012-06-17 01:25:01 -05:00
Jeff Wardian
ae98a6f051 Changes '/whitelist list' to ignore comments. Addresses BUKKIT-1804 2012-06-14 23:33:21 -05:00
Jeff Wardian
ae94a3308d Preserve whitelist ordering. Addresses BUKKIT-1805 2012-06-14 23:33:13 -05:00
obnoxint
e35f6f2526 Fire NotePlayEvent. Fixes BUKKIT-1779 2012-06-14 20:58:57 -05:00
obnoxint
72d64b516c Add TileEntityNote from mc-dev for diff visibility. 2012-06-14 20:58:57 -05:00
Wesley Wolfe
9002690651 Implement asynchronous pre-login event; Addresses BUKKIT-1213 2012-06-13 23:00:46 -05:00
Wesley Wolfe
ed6d4c7759 Support asynchronous events; Addresses BUKKIT-1212 2012-06-13 23:00:46 -05:00
Jake King
f58e514192 Don't send kick message if the message is empty. Fixes BUKKIT-1789 2012-06-13 22:21:40 -05:00
H31IX
01fe76733f Fire PlayerToggleFlightEvent. Fixes BUKKIT-1696 2012-06-13 22:21:35 -05:00
Wesley Wolfe
478654351a Check world before checking distance. Fixes BUKKIT-1792 2012-06-12 16:37:47 -04:00
EvilSeph
b7827c4d22 Fixed EnderDragon not dealing damage after it has been hit. Fixes BUKKIT-1751 2012-06-12 16:37:47 -04:00
Wesley Wolfe
0f23a4fe23 Synchronize handler lists 2012-06-11 01:00:35 -05:00
Travis Watkins
0942b1861b Handle rcon timeouts properly 2012-06-10 22:26:07 -05:00
feildmaster
d836e57871 Kill fireball if velocity isn't present. Fixes BUKKIT-1228 2012-06-09 04:35:55 -05:00
feildmaster
d5ba6c6644 Fix fireballs freezing when the chunk unloads. Addresses BUKKIT-1228 2012-06-09 04:35:32 -05:00
EvilSeph
3df6608a72 Fixed potential infinite loop in RCON handling. Fixes BUKKIT-1570 2012-06-09 02:52:14 -04:00
Wesley Wolfe
873ce288c2 Fixed decompile for loop handling 2012-06-09 02:47:25 -04:00
EvilSeph
282fcb44ed Added RemoteControlSession for diff visibility. 2012-06-08 20:23:44 -04:00
Travis Watkins
77cc225b83 Don't try to parse directories if we don't have any. 2012-06-06 12:12:42 -05:00
Travis Watkins
6a37511144 Try to make parent directories for --log-pattern path. Fixes BUKKIT-680 2012-06-04 18:05:23 -05:00
Travis Watkins
e385ffaefc Call ignite event for fireball shot from dispenser. 2012-06-04 17:25:39 -05:00
feildmaster
d8199aaa39 Fix a NullPointerException. 2012-06-04 04:22:22 -05:00
feildmaster
f15785669a Launch fireballs at eye location. Fixes BUKKIT-1155 2012-06-03 05:34:58 -05:00
feildmaster
e520032205 Further improving ItemStack handling 2012-06-03 05:30:22 -05:00
Travis Watkins
13fcb9e371 Make log-strip-color a simple flag instead of a boolean. 2012-06-02 14:43:38 -05:00
Travis Watkins
70c91c161e Resize UnsafeList to initial capacity when cleared and implement clone. 2012-06-01 13:03:59 -05:00
Travis Watkins
894ea06567 Reduce default size of path array. Addresses BUKKIT-1469.
The Path object creates an array of 1024 PathPoint objects as the backing
for a sorted queue but testing shows we tend to get only 80 or so entries
in the array at most. To save memory this changes the default size of the
array to 128. Changing it to 64 was considered but that triggered too many
resizes which is detremental to performance.
2012-05-31 19:55:28 -05:00
Travis Watkins
9e5d6699f5 Add Path.java from mc-dev for diff visibility 2012-05-31 19:54:31 -05:00
Wesley Wolfe
266212f9f8 Fix bold states while printing; Fixes BUKKIT-1716 2012-05-26 15:32:38 -05:00
Wesley Wolfe
25cfdfa05e Change mapping of Gold from yellow bold to yellow; Addresses BUKKIT-1717 2012-05-26 15:27:55 -05:00
Wesley Wolfe
5d3c8bfaa4 Removed AnimalTamer cache, fixes BUKKIT-1628 2012-05-24 23:02:02 -05:00
Wesley Wolfe
c43012ef1c Fixed broken hashCode() 2012-05-24 23:01:33 -05:00
Travis Watkins
c1bc0df718 Add in checks for potential NPEs. Fixes BUKKIT-1706 and BUKKIT-1590. 2012-05-24 19:12:56 -05:00
Charles Daffern
2f16b8ffa3 Don't spam console with errors on unexpected disconnect. Addresses BUKKIT-693 2012-05-23 21:53:02 -05:00
Charles Daffern
c07d4fffb0 Adding NetworkWriterThread for diff visibility 2012-05-23 21:53:01 -05:00
Charles Daffern
8be14b5bb3 Fix inaccurate head yaw. Fixes BUKKIT-1702 2012-05-23 21:52:59 -05:00
Travis Watkins
fdddc681d2 Use jansi's Windows support for terminal colors. 2012-05-23 15:32:42 -05:00
Travis Watkins
478fa4a969 Remove "failed to querty stty columns" spam. Fixes BUKKIT-1669.
When trying to execute stty to get terminal properties an
InterruptedException can be triggered even though we've read all of the
output from stty that we need. Instead of printing a warning and returning
-1 in this case try to parse what data we do have and reset the cache timer.
May also address BUKKIT-1627 and BUKKIT-1686.
2012-05-23 15:32:42 -05:00
Travis Watkins
2e744dbf64 Add files from jline for diff visibility 2012-05-23 15:32:42 -05:00
Travis Watkins
94e9543a14 Add fallback for when jline fails to initialize. Fixes BUKKIT-1675. 2012-05-23 15:32:33 -05:00
md_5
21327265f0 [Bleeding] Improve handling of ItemStacks. Addresses BUKKIT-1697 2012-05-23 04:10:49 -05:00
Score_Under
0f984dd9a5 Re-implement World.getTemperature and World.getHumidity 2012-05-23 04:02:15 -05:00
Travis Watkins
af89cc783f Don't cap food level at 20 when eating. Fixes BUKKIT-1667
The amount of food gained when eating is used for calculating the food
saturation value so capping it at 20 at this point causes us to get
incorrect results. FoodMetaData.eat caps it at 20 anyway so we're safe to
not do so here.

Also readds a line from mc-dev that was mistakenly removed.
2012-05-17 21:17:23 -05:00
Travis Watkins
3ee75ab6d3 Replace TextWrapper with simple newline splitting. Fixes BUKKIT-1662
TextWrapper used to try to ensure a message would wrap correctly on the
client by counting the width of the characters in pixels and wrapping
before hitting that limit. This was needed because the client would lose
color information when wrapping and could not handle long lines of text.

Now that both of these problems are solved in the client we can replace
TextWrapper with simple code to split the message into multiple packets on
newlines and ensure chat colors carry across to the new packet.
2012-05-16 23:47:14 -05:00
feildmaster
b6d611d9be Revert obsolete "fix" for Redstone Torches 2012-05-17 00:24:26 -04:00
feildmaster
41b2e89c70 Assert that the block is still present after placement. Fixes BUKKIT-1399 2012-05-17 00:24:10 -04:00
feildmaster
1d361c2f48 Fix block place protection using a larger radius. Fixes BUKKIT-1617 2012-05-16 18:43:44 -05:00
Travis Watkins
4c8f6f2caa Add option to strip color codes from server.log file 2012-05-16 13:21:23 -05:00
Travis Watkins
e91169ebad Add ConsoleLogFormatter for diff visibility 2012-05-15 23:29:39 -05:00
EdGruberman
31d488a386 Update to jline 2. Fixes BUKKIT-717
JLine 2 allows for better color matching in the console and support for
colors in console on Windows. Hopefully provides better performance as well.
2012-05-15 23:27:51 -05:00
Travis Watkins
cbd20ec9ea Use a different temp file for each player to avoid corruption. Fixes BUKKIT-1607 2012-05-09 01:40:19 -05:00
Travis Watkins
ef7e14f9ef Fire events for fireball item usage. Fixes BUKKIT-1566 2012-05-09 01:40:19 -05:00
Travis Watkins
bbc3d31be7 Add ItemFireball from mc-dev for diff visibility 2012-05-09 01:40:19 -05:00
feildmaster
2f976705be Revert "Fix potential NPE in vanish API. Fixes BUKKIT-1541"
This reverts commit ebf121800bd3161e4af0f6d9229ccb39c31fc278.

If the handle ever becomes null we need to know about it so we can debug it further.
2012-04-27 12:48:40 -05:00
feildmaster
99aeb32d0d Remove Player cache and edit CraftPlayer.equals to account for EntityID. Fixes BUKKIT-1541 and Addresses BUKKIT-761 2012-04-27 12:33:40 -05:00
Travis Watkins
53ed0dad48 Don't call event if getOwner is null. Fixes BUKKIT-1545 2012-04-25 22:43:15 -04:00
md_5
3e382034e9 Fix growing large tress near world height. Fixes BUKKIT-1072 2012-04-25 22:30:42 -04:00
Travis Watkins
0153fe1f33 Check if packet is null before checking priority. Fixes BUKKIT-1579 2012-04-25 10:34:53 -05:00
Travis Watkins
40be9c8403 Optimized a little too much. Update goals every tick again to avoid AI oddness. 2012-04-24 23:20:29 -04: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
73ae279e8d Update players when potion effects are moved from them. Fixes BUKKIT-789 2012-04-24 21:58:35 -04:00
Travis Watkins
e98cfbd992 Remove address from throttle hashmap before killing socket. Fixes BUKKIT-659 2012-04-24 21:58:24 -04:00
Travis Watkins
e3363db0a9 Remove "Fetching addPacket..." spam as it isn't useful. Fixes BUKKIT-32 2012-04-24 21:58:12 -04:00
Travis Watkins
9c12dc0ef8 Fix potential NPE in vanish API. Fixes BUKKIT-1541 2012-04-24 21:57:54 -04:00
feildmaster
0220c1ff74 Remove legacy Chunk cache. Fixes BUKKIT-1400 2012-04-24 15:06:11 -05:00
feildmaster
119b5d18a5 Load player data before calling PlayerLoginEvent. Fixes BUKKIT-1531 and Fixes BUKKIT-601. 2012-04-23 22:12:19 -05:00
EvilSeph
e61a316815 We build for Java 1.5. 2012-04-23 23:05:57 -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
Travis Watkins
b7376e0865 Avoid doing unnecessary range checks when we're looping from start to end.
Make EntityLiving call AI logic every tick again.
Rework PathfinderGoalSelector logic.

Adds UnsafeList for use in places where we use ArrayList and know we won't
get index out of range errors. Added usage to World's tickEntities, Chunk's
entitySlices to speed up searching for entities, and to PathfinderGoalSelector
to speed up dealing with AI goals.

Reworked logic in PathfinderGoalSelector with help from fullwall. This code
no longer uses an extra ArrayList for setting up goals and only updates which
goals should be run every other time it is called.

Removed only calling PathfinderGoalSelector every other tick from EntityLiving
as we now only setup new goals every other tick. This ensures existing goals
run every tick to properly update mob movement.
2012-04-23 21:52:08 -04:00
Travis Watkins
e8459c1ff6 Optimize AI and EntityLiving ticking
Reduce usage of getCubes as it is an expensive call.
Remove iterator usage and object creation from PathfinderGoalSelector
methods as these are called very often.
Update EntityLiving goal selectors less often as this is still quite an
expensive task.
2012-04-21 23:53:10 -04:00
Travis Watkins
343f39b2b3 Add PathfinderGoalSelector for diff visibility 2012-04-21 23:52:38 -04:00
EvilSeph
8f6fe0a643 Rework clipping logic again, now works as well as the original implementation 2012-04-21 00:45:30 -04:00
EvilSeph
3e15a6911f Added Packet24 for diff visibility. 2012-04-21 00:44:31 -04:00
Wesley Wolfe
e28ae3f2fe Reworking clipping logic; Fixes BUKKIT-1472 2012-04-15 18:29:02 -05:00
Wesley Wolfe
2e646d2809 Made permissions.yml registration easier; Addresses BUKKIT-1499
The permissions.yml now behaves similar to a plugin.yml
2012-04-15 13:24:38 -05:00
feildmaster
748ebae550 Properly call EntityDeathEvent for mobs. Fixes BUKKIT-1519 2012-04-15 09:16:43 -05:00
feildmaster
6307efd2d1 Set current recipe to null when a recipe isn't found. Fixes BUKKIT-1456 2012-04-15 01:53:18 -05:00
feildmaster
27a9b4c907 Filter entity spawning sanely. 2012-04-15 01:52:51 -05:00
feildmaster
0026a08fa8 Use SpawnReason.DEFAULT instead of SpawnReason.CUSTOM, freeing CUSTOM to plugin spawning.
This gets used in case we are missing appropriate SpawnReason's for various Entity spawns.
2012-04-14 01:44:01 -05:00
feildmaster
e17d3ece00 Added SpawnReason.SLIME_SPLIT, Fixes BUKKIT-790 2012-04-14 01:38:22 -05:00
feildmaster
1dcb39074d Persist PlayerDeathEvent values. Fixes BUKKIT-1521 2012-04-14 00:30:39 -05:00
h31ix
7586e7168b Make the dispenser check if the dispensed item has been changed before removing it. Fixes BUKKIT-316 2012-04-03 21:42:37 -05:00
Wesley Wolfe
6a79e506cf Implement new address to PlayerLoginEvent; Addresses BUKKIT-431 2012-04-03 21:07:15 -05:00
feildmaster
20dea920c2 Don't spawn conditional mobs if original entity is dead. Fixes BUKKIT-1444 2012-04-03 18:07:46 -05:00
feildmaster
af0018a962 Mark entities as dead when spawning fails. Treat as canceled if entity is dead. 2012-04-03 18:06:51 -05:00
EvilSeph
0c9e1b13a0 Made using RAW_FISH on Ocelots when a player has the ability to instantly build not decrement the stack. Fixes BUKKIT-1439 2012-04-03 14:13:27 -04:00
feildmaster
52d9473e6b SpawnRadius should only apply to main world. Fixes BUKKIT-1427 2012-04-02 16:40:45 -05:00
feildmaster
bad3979b8f Make EntityCreatePortalEvent block list Unmodifiable. 2012-04-02 16:32:54 -05:00
feildmaster
470d9f9e1d Tell clients to update if EntityPortalCreateEvent is canceled. Fixes BUKKIT-1426 2012-04-02 16:32:52 -05:00
EvilSeph
81102479a7 Made Slimes spawn less often in FLAT worlds. Fixes BUKKIT-1441 2012-04-02 17:10:17 -04:00
EvilSeph
7594c91c84 Made item use when a player has the ability to instantly build not decrement the stack. Fixes BUKKIT-1439 2012-04-02 15:25:21 -04:00
Travis Watkins
f4558f5d7d [Bleeding] Hacky entity clipping fix; Fixes BUKKIT-50
Special thanks to 'trunkz' on Minecraft Forums for initial
implementation.
2012-04-02 14:17:20 -05:00
feildmaster
a963880bd8 Add BlockRedstoneEvent to Redstone Lamps, Addresses BUKKIT-1431 2012-04-02 14:11:02 -05:00
feildmaster
ed8cf5196e Add BlockRedstoneLamp for diff visibility. 2012-04-02 14:08:11 -05:00
feildmaster
058bd748b6 Fixed interacting with Air returning a false block. 2012-04-01 05:10:31 -05:00
feildmaster
7c137d8b19 Added a reason for randomly spawning Ocelot babies. Addresses BUKKIT-1391 2012-03-31 21:30:28 -05:00
feildmaster
c8d4a7c835 Fixed breaking at world height in creative. Fixes BUKKIT-997 2012-03-31 19:21:29 -05:00
Dinnerbone (Laptop)
fdab1db7c5 Added missing //CB comment 2012-03-30 23:43:52 +02:00
Dinnerbone (Laptop)
1fa4d8430e Updated version to 1.2.5-R0.1-SNAPSHOT 2012-03-30 23:33:51 +02:00
EvilSeph
e0c01154b0 Fixed potential issue when converting worlds. Fixes BUKKIT-1307 2012-03-29 08:41:41 -04:00
EvilSeph
cbab48a7bd Added OldChunkLoader for diff visibility. 2012-03-29 08:01:57 -04:00