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
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
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
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
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
Wesley Wolfe
342f9c3bd3
Implement player speed API. Addresses BUKKIT-2205
2012-08-10 00:00:04 -05:00
Wesley Wolfe
2bb7a5f94d
Implement new deprecated warning state configuration option
2012-08-06 23:52:49 -05:00
Travis Watkins
a574ec54cc
Put forceChunkLoad back to its original value.
2012-08-05 20:03:12 -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
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
feildmaster
a43d621c01
Update CraftBukkit to Minecraft 1.3.1
2012-08-02 04:58:50 -05:00
feildmaster
46125dc6cf
Implement getExpToLevel method. Fixes BUKKIT-1906
2012-07-11 17:14:07 -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
Travis Watkins
a21f038fc3
Mark entities as invalid when they get despawned. Addresses BUKKIT-810
2012-06-28 19:34:31 -05:00
TomyLobo
412b7eaa12
Implement LivingEntity.hasLineOfSight. Addresses BUKKIT-1255
2012-06-23 10:48:08 -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
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
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
Wesley Wolfe
ed6d4c7759
Support asynchronous events; Addresses BUKKIT-1212
2012-06-13 23:00:46 -05:00
Wesley Wolfe
478654351a
Check world before checking distance. Fixes BUKKIT-1792
2012-06-12 16:37:47 -04:00
feildmaster
f15785669a
Launch fireballs at eye location. Fixes BUKKIT-1155
2012-06-03 05:34:58 -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
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
Score_Under
0f984dd9a5
Re-implement World.getTemperature and World.getHumidity
2012-05-23 04:02:15 -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
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
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
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
73ae279e8d
Update players when potion effects are moved from them. Fixes BUKKIT-789
2012-04-24 21:58:35 -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
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
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
1dcb39074d
Persist PlayerDeathEvent values. Fixes BUKKIT-1521
2012-04-14 00:30:39 -05:00
feildmaster
52d9473e6b
SpawnRadius should only apply to main world. Fixes BUKKIT-1427
2012-04-02 16:40:45 -05:00
feildmaster
a963880bd8
Add BlockRedstoneEvent to Redstone Lamps, Addresses BUKKIT-1431
2012-04-02 14:11:02 -05:00
feildmaster
058bd748b6
Fixed interacting with Air returning a false block.
2012-04-01 05:10:31 -05:00
feildmaster
c8d4a7c835
Fixed breaking at world height in creative. Fixes BUKKIT-997
2012-03-31 19:21:29 -05:00
Warren Loo
c100e20d60
Reverting the Drop API for now, we need to re-evalute this as it is causing too many issues and blocking releases.
...
This reverts commits:
- d2d03afc8854394aeefb40ea5ebf224c8032b19f
- 6245746e91123dd8ef70e5f15b7cdfc7e36d8e8c
- 41fae5c613e9e69a8f6bdf33b23bb09d7f407433
- c34bdecab42cf4098054a5ea43e1c2958d44ae92
- d7445084ac9a90fa0b66d8b050b8d0d2a062eaf3
- 6a6ed2e6ae2328a8a791bcc6857c44dc6c6a7030
- a783bc4dc95da8e26c673abe48fad96b550aba28
- cb50fd68766df8e07631ba5be85759f8257e8068
- 34dfff2ad5c407c712b2783f02960aac5e8649f2
- f33b513820de987b49a4338e85df80968217a601
- 5fd9fdfde055e6eb6a83db246d009b69377b7c94
- 2795b116f40d06551fbb7b96d1963c0ddbeac384
2012-03-27 20:04:26 -04:00
feildmaster
c16bf07e85
[Bleeding] Allow CraftItem to be backed by non-EntityItems. Fixes BUKKIT-1351
2012-03-26 16:36:31 -04:00
feildmaster
9d0ea52021
[Bleeding] Fixed potions throwing double events. Fixes BUKKIT-1332
2012-03-26 16:05:38 -04:00
feildmaster
80db22b643
Refactor code to be more efficient.
2012-03-25 19:46:55 -04:00
feildmaster
c30e339af6
[Bleeding] Fixed item duping in certain occasions. Fixes BUKKIT-1310
2012-03-25 18:57:27 -04:00
feildmaster
9c7ffb6d3c
[Bleeding] Fixed blocks dropping when BlockBreakEvent is canceled. Fixes BUKKIT-1299
2012-03-23 14:51:05 -04:00
Nathan Adams
942c1c6a3e
Fixed incorrect assigning to isFlying when toggling setAllowedFlight(false)
2012-03-23 14:41:53 +00:00
feildmaster
40e0962735
Seriously fix natural drops. Fixes BUKKIT-1297 and fixes BUKKIT-1295
2012-03-23 07:18:20 -04:00
EvilSeph
ff22e4e341
Really fixed Block.breakNaturally(). Fixes BUKKIT-1295
2012-03-23 03:21:20 -04:00
EvilSeph
b60a6743ed
Fixed Block.breakNaturally(). Fixes BUKKIT-1295
2012-03-23 02:37:38 -04:00
feildmaster
52ecd60e61
[Bleeding] Add a check for illegal blocks. Addresses BUKKIT-1278. Needs more investigation.
2012-03-22 21:04:06 -04:00
EvilSeph
724b82626a
Reverted to original TextWrapper. Might re-investigate after the RB. Fixes BUKKIT-1275
2012-03-22 19:22:35 -04:00
Nathan Adams
904cf388b4
Re-added TextWrapper, and fixed chat length issues (at cost of it looking not so nice sometimes!) This fixes BUKKIT-1275
2012-03-22 23:03:02 +00:00
Nathan Adams
8fb141bfa0
Implemented new player flight methods. This implements BUKKIT-1281. This also fixes BUKKIT-1146.
2012-03-22 22:04:13 +00:00
EvilSeph
c2cdeac09b
Added configurable Connection Throttle. Addresses BUKKIT-1274
2012-03-22 16:56:15 -04:00
Nathan Adams
dda37aa18c
Nuked TextWrapper. We don't need you anymore, old friend :(
2012-03-22 20:49:05 +00: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
rmichela
0a925ff067
[Bleeding] Added support for custom index help topics in help.yml. Addresses BUKKIT-1263
2012-03-22 00:50:10 -04:00
rmichela
eb3c092ef8
[Bleeding] Added option to completely disable all automatic help topic generation by adding "All" to the ignore-plugins list in help.yml. Addresses BUKKIT-1264
2012-03-22 00:50:09 -04:00
zml2008
31b1bc02ca
[Bleeding] Fixed a StackOverflowError with command alias handling for Help. Addresses BUKKIT-1253
2012-03-22 00:50:09 -04:00
zml2008
8aee4c3f56
[Bleeding] Added support for all TreeType entries to CraftWorld.generateTree(). Addresses BUKKIT-1161
2012-03-21 20:32:17 -04:00
aPunch
169c2ee8cb
[Bleeding] Added Ageable interface for Villagers and Animals to extend. Addresses BUKKIT-1232
2012-03-21 16:05:07 -04:00
Celtic Minstrel
5ba8928041
[Bleeding] Added getting and setting drops to all appropriate events. Fixes BUKKIT-397 and fixes BUKKIT-1252
...
- Allows drops in creative mode by adding items to the getDrops() list
- Contents of containers are not reported
- Contents of storage minecarts are not reported
2012-03-21 12:42:51 -04:00
Celtic Minstrel
784aa3b602
[Bleeding] Fix the openInventory methods for custom inventories. Fixes BUKKIT-1248
...
Details:
- The attributes of custom inventory views are no longer ignored
- Enchanting or crafting inventories no longer ignore the passed inventory and open a new one
- Inventories associated with tile entities no longer raise a class cast exception if there was no associated tile entity
- InventoryOpenEvent and InventoryCloseEvent (if they already had some other inventory open) now fire in all cases
- If for any reason the inventory failed to open, the method now returns null instead of returned the previous inventory they had open (or the default inventory, if none)
2012-03-20 21:31:42 -04:00
Celtic Minstrel
93732e21bc
[Bleeding] Fixed NullPointerException in InventoryView.setCursor() if you tried to empty the cursor by setting it to null. Fixes BUKKIT-1043
2012-03-20 20:45:26 -04:00
Celtic Minstrel
288662bfae
[Bleeding] Fix some return types that could lead to ArrayStoreException
2012-03-20 20:43:12 -04:00
Celtic Minstrel
4bcbe2d235
[Bleeding] Add Chest.getBlockInventory() for convenience; this always returns a single chest inventory. Addresses BUKKIT-1247
2012-03-20 19:41:35 -04:00
Celtic Minstrel
cd9779196b
[Bleeding] Add iterator() with starting index. Addresses BUKKIT-1246
2012-03-20 19:40:44 -04:00
aPunch
ea60181a87
[Bleeding] Added way to get/set if Iron Golem was player created. Addresses BUKKIT-1229
2012-03-20 05:13:36 -04:00
Wesley Wolfe
68b98d4c8f
[Bleeding] Implement ExpBottleEvent; Addresses BUKKIT-888
2012-03-20 03:24:57 -04:00
Celtic Minstrel
71a51b024b
Reverted invalid clone. Fixes BUKKIT-1198
2012-03-16 17:10:42 -04:00
rmichela
82fab5b2d5
[Bleeding] Moved HelpTopicComparator to Bukkit.jar. Addresses BUKKIT-1193
2012-03-16 03:49:36 -04:00
rmichela
4589e943f6
[Bleeding] Added support for color codes in help.yml. Addresses BUKKIT-1191
2012-03-16 03:12:48 -04:00
rmichela
46429c6cb9
[Bleeding] Implemented the command-topics-in-master-index option in help.yml. Addresses BUKKIT-1189
...
When false, help topics that start with a slash are omitted from the mater index.
2012-03-16 03:10:25 -04:00
rmichela
f87e053c66
[Bleeding] Added automatically generated plugin-level sub-indexes to the master help index. Addresses BUKKIT-1180
2012-03-16 02:48:19 -04:00
rmichela
184faf1f29
[Bleeding] Added option to remove entire plugins from the help index using the help.yml file. Addresses BUKKIT-1178
2012-03-16 02:44:05 -04:00
Celtic Minstrel
241cf1c664
[Bleeding] Allow custom inventory views to change their type to BREWING or ENCHANTING, and also allow them to change their title and size. Fixes BUKKIT-1190
2012-03-15 23:54:00 -04:00