3
0
Mirror von https://github.com/PaperMC/Paper.git synchronisiert 2024-12-27 08:30:06 +01:00
Commit graph

3395 Commits

Autor SHA1 Nachricht Datum
Travis Watkins
25732f0487 Fire BlockRedstoneEvent for repeaters. Fixes BUKKIT-1157 2012-12-27 15:40:18 -06:00
Travis Watkins
186a679730 Add BlockDiode from mc-dev for diff visibility. 2012-12-27 15:26:49 -06:00
Wizjany
5963da294f Don't update physics until after the place event. Fixes BUKKIT-3316
If you cancel a BlockPlaceEvent for a sign the world is updated as if
the block was placed and then destroyed. To avoid this we set the block
without updating physics then apply the update after the event.
2012-12-27 15:22:19 -06:00
cexikitin
49da990ee3 Never remove players when unloading chunks. Fixes BUKKIT-3129
When unloading chunks we have a check to ensure we do not remove players
from the world due to the issues this would cause. However, our check
to see if the player is in this chunk is reversed and is in fact entirely
wrong. Even if the player isn't currently in this chunk we do not want
to remove them as that will still cause the same issues.
2012-12-27 15:16:33 -06:00
feildmaster
3a0c5aff0c Fix fireballs being motionless (again). Fixes BUKKIT-3299
The key "direction" incorrectly mapped to variables that were already
set in the entity. In order to prevent loading incorrect data we
renamed "direction" to "power."
2012-12-25 05:58:49 -06:00
feildmaster
155b83e2c7 Perform permission removals after the quit event. Fixes BUKKIT-3303
The player would have no permissions (other than their OP status)
when checked in the Quit event. This is because we removed permissions
before the event occurred. By calling it afterwards, we can persist
the data until the server finally removes the player.
2012-12-24 22:11:04 -06:00
feildmaster
f726d07f11 Fix Skull BlockState setting illegal values on owner. 2012-12-24 14:32:08 -06:00
feildmaster
8292b73f30 Fix fireworks being short lived. Fixes BUKKIT-3291 2012-12-23 17:06:26 -06:00
feildmaster
edd90ccf16 Properly update fireworks. Fixes BUKKIT-3289 2012-12-23 08:59:15 -06:00
feildmaster
ced0646351 Implement entity max health methods. Adds BUKKIT-266 2012-12-23 07:29:06 -06:00
feildmaster
4e1793f363 Report valid health when getting Entity health. Fixes BUKKIT-3210 2012-12-23 07:29:05 -06:00
Wesley Wolfe
ed6aab8200 Remove runner leak on async tasks. Fixes BUKKIT-3288
In some situations, an async task could be cancelled with no tasks
pending. This means the finally {} block from run() never gets executed
properly on the last async task to have run, as it expected to be
executed again.

This fix takes the only spot that the task period is set to cancelled
and will check to see if the task should be purged from the runners
list.
2012-12-23 05:13:33 -06:00
Travis Watkins
717fbbeffa Update firework power when modifying meta. Fixes BUKKIT-3272 2012-12-22 13:07:18 -06:00
Travis Watkins
f72a08c22e Fire BlockDispenseEvent for fireworks. Adds BUKKIT-3246 2012-12-22 13:07:18 -06:00
Travis Watkins
da571ef428 Add DispenseBehaviorFireworks and EntityFireworks for diff visibility 2012-12-22 13:06:55 -06:00
feildmaster
dc85940526 Allow fireworks to be created. Adds BUKKIT-3262 2012-12-22 12:24:16 -06:00
Wesley Wolfe
6dc13b688a One record per JukeBox. 2012-12-22 05:48:11 -06:00
Wesley Wolfe
2fd78a6549 Add BlockJukeBox for diff visibility 2012-12-22 05:45:52 -06:00
feildmaster
2ee62eb580 Implement API to get and set FireworkMeta on Firework entities 2012-12-21 23:56:54 -06:00
meiskam
fdb4b2d911 Implement Skull BlockState. Adds BUKKIT-3259 2012-12-21 22:47:11 -06:00
meiskam
39e2af7bd1 Added TileEntitySkull for diff visibility 2012-12-21 21:56:47 -06:00
Wesley Wolfe
78d384de93 Zero is not less than zero. Fixes BUKKIT-3259 2012-12-21 21:48:09 -06:00
feildmaster
a0cf0d03f4 Check file existence before determining readOnly. Fixes BUKKIT-3255 2012-12-21 19:31:39 -06:00
feildmaster
ec211ed952 Update enchantment handling to 1.4.6. Fixes BUKKIT-3256 2012-12-21 19:31:28 -06:00
feildmaster
f71be2506d Fix loading Items entities with an invalid item. Addresses BUKKIT-3249 2012-12-21 16:07:59 -06:00
feildmaster
118682ce5c Don't save server properties when it's read only. Fixes BUKKIT-3250 2012-12-21 15:40:39 -06:00
feildmaster
0216d09033 Fix command line arguments being ignored. Fixes BUKKIT-3247 2012-12-21 15:40:39 -06:00
feildmaster
e937307596 Add a null check for Item Entities. Fixes BUKKIT-3249 2012-12-21 15:40:27 -06:00
Wesley Wolfe
b870755edb Use max inventory size for new stack. Fixes BUKKIT-3240 2012-12-21 11:10:23 -06:00
Wesley Wolfe
708252c020 Implement 1.4.6 ItemMeta. Adds BUKKIT-3236, BUKKIT-3237
Some meta functionality is refactored into common methods.

CraftItemStack uses the ItemMetaKey identifiers for enchantments.

Refactored unit test to include extra functionality; initially only
checking the presence of the DelegateDeserialization annotation.
2012-12-21 10:36:34 -06:00
Wojciech Stryjewski
f377a7680f Add API to allow plugins to request players switch to a texture pack. Adds BUKKIT-2579
The setTexturePack method causes the player's client to
download and switch to a texture pack specified by a URL.

Note: Players can disable server textures on their client, in which
case this API would not affect them.
2012-12-20 22:09:38 -05:00
feildmaster
f4836fb428 Add the ability to make Enchanted Books. Fixes BUKKIT-3220 2012-12-20 20:51:51 -06:00
feildmaster
bd0daa6d54 Remove obsolete fix for the end
The end was getting block offsets, causing client side issues.
2012-12-20 19:15:37 -06:00
Travis Watkins
ca7f67da9d Fetch correct info for skulls in block.getDrops(). Fixes BUKKIT-3205 2012-12-20 15:06:01 -06:00
Mike Primm
ed2dd31a80 [Bleeding] Fix exception in getChunkSnapshot() - sky light can be null 2012-12-20 14:22:25 -06:00
feildmaster
686807e387 Filter invalid ItemStacks from Packets.
Invalid ItemStacks are causing Fireworks to disconnect players and
prevent them from reconnecting
2012-12-20 10:52:44 -06:00
feildmaster
23b6764374 Update CraftBukkit to Minecraft 1.4.6 2012-12-20 10:43:00 -06:00
mbax
924a46469d [Bleeding] Check visibility API for sounds. Fixes BUKKIT-3114
With 1.4, entity sound tracking changed for the better.
Our previous method additions can now be removed.
All that's left is checking if the source can be seen
by the recipient of the sound packet. Thanks, Mojang!
2012-12-18 19:02:20 -06:00
feildmaster
d9708d032e Fix PotionMeta not applying the correct Id. Fixes BUKKIT-3193 2012-12-18 18:43:53 -06:00
feildmaster
d73e5ab469 Add missing name in PotionEffect for Wither 2012-12-18 18:20:11 -06:00
feildmaster
a2d551fafa Refactor get/setChestPlate to Chestplate. Addresses BUKKIT-3189 2012-12-18 03:46:58 -06:00
Wesley Wolfe
6cec8ba5cb Change enchantment comparisons to isSimilar. Fixes BUKKIT-3183
The purpose of the isSimilar method was designed to consider all NBT
data, not solely enchantments, without the need to have exact stack
size matches. The respective methods in CraftInventory were still
comparing enchantments instead of the ItemMeta.
2012-12-17 16:43:16 -06:00
Wesley Wolfe
d66d3674ea Clarify functionality in CraftInventory. Fixes BUKKIT-3097
Changes some NPEs to IllegalArgumentExceptions for exception consistency.

Contains(ItemStack, int) correctly calculates number of ItemStacks.

Adds a containsAtLeast(ItemStack, int) for finding a combined amount of a
single similar ItemStack.

Makes some utility methods private to prevent ambiguity in use.
2012-12-17 16:39:25 -06:00
Wesley Wolfe
78f48258d8 Implement ItemFactory and ItemMeta values. Adds BUKKIT-15 2012-12-17 01:31:41 -06:00
feildmaster
d20d4dc43a ItemStack.asBukkitStack(null) should return Air. Fixes BUKKIT-3170 2012-12-15 01:52:42 -06:00
Wesley Wolfe
0f4c206f9b Add isRecord and new material method tests.
Cleaned up all of the CraftBukkit tests, including moving some tests
from MaterialTest to PerMaterialTest.
2012-12-14 02:02:02 -06:00
deathmarine
53b064ec79 Fix EntityEquipment positions being reversed. Fixes BUKKIT-3157 2012-12-12 22:20:44 -06:00
Travis Watkins
24143ef6a1 Load chunks asynchronously for players.
When a player triggers a chunk load via walking around or teleporting there
is no need to stop everything and get this chunk on the main thread. The
client is used to having to wait some time for this chunk and the server
doesn't immediately do anything with it except send it to the player. At
the same time chunk loading is the last major source of file IO that still
runs on the main thread.

These two facts make it possible to offload chunks loaded for this reason
to another thread. However, not all parts of chunk loading can happen off
the main thread. For this we use the new AsynchronousExecutor system to
split chunk loading in to three pieces. The first is loading data from
disk, decompressing it, and parsing it in to an NBT structure.  The second
piece is creating entities and tile entities in the chunk and adding them
to the world, this is still done on the main thread. The third piece is
informing everyone who requested a chunk load that the load is finished.
For this we register callbacks and then run them on the main thread once
the previous two stages are finished.

There are still cases where a chunk is needed immediately and these will
still trigger chunk loading entirely on the main thread. The most obvious
case is plugins using the API to request a chunk load. We also must load
the chunk immediately when something in the world tries to access it. In
these cases we ignore any possibly pending or in progress chunk loading
that is happening asynchronously as we will have the chunk loaded by the
time they are finished.

The hope is that overall this system will result in less CPU time and
pauses due to blocking file IO on the main thread thus giving more
consistent performance. Testing so far has shown that this also speeds up
chunk loading client side although some of this is likely to be because
we are sending less chunks at once for the client to process.

Thanks for @ammaraskar for help with the implementation of this feature.
2012-12-12 19:35:53 -06:00
Travis Watkins
11593b4592 Add RegionFile from mc-dev for diff visibility 2012-12-12 04:05:47 -06:00
Wesley Wolfe
29d7cc711b Add utility class AsynchronousExecutor
This class is a general purpose task execution system, that uses stages
to separate processing blocks for asynchronous and synchronous
executions.
2012-12-12 04:05:47 -06:00
Travis Watkins
24c04dc784 Don't run mob pickup code on players. Fixes BUKKIT-3150
When a player has canPickUpLoot set to true the code for mob pickup is
triggerd which does not know how to deal with player inventory. Since
players have their own logic for picking up items we simply disable this
code for them.
2012-12-12 03:08:14 -06:00
feildmaster
4e91fbd0db Fix players not being able to pickup items due to default values.
The old flag for picking up loot was default to false, making existing players not able to pickup items. We now use this flag for Players, which gives us the problem we had in 48b46f83.

To fix this, we add an incremental flag that will be cross-examined to check if the data was saved before or after the flag level was introduced.

Addresses BUKKIT-3143
2012-12-11 06:05:54 -06:00
feildmaster
39fdb56200 Players should be able to pick up items by default. Fixes BUKKIT-3143
As an added feature, players defaulted to being able to not pick up items if the flag was false. However, since minecraft doesn't normally use the flag on players, the flag was always false.
2012-12-10 20:27:40 -06:00
feildmaster
3692209fe6 Missed a rename 2012-12-10 19:17:47 -06:00
feildmaster
430d352a5a Add EntityEquipment API. Adds BUKKIT-3103
Adds:
- Getting/Setting equipment
- getting/setting drop rates
- getting/setting ability to pick up items
-- As an added feature, players with this flag start off with a canceled PlayerPickupItemEvent
2012-12-10 19:01:50 -06:00
h31ix
684ba31c39 [Bleeding] Correct getEyeHeight value. Fixes BUKKIT-3130 2012-12-10 01:41:00 -06:00
feildmaster
22b1100001 Only display help aliases when there are aliases. Fixes BUKKIT-1621 2012-12-10 01:40:22 -06:00
feildmaster
dc93da8e34 Pass null help values values as empty strings to HelpTopics
Fixes BUKKIT-2618 and BUKKIT-2561
2012-12-10 01:40:21 -06:00
EdGruberman
f18b3cdc76 [Bleeding] Fix NPE with a null bedSpawnLocation. Fixes BUKKIT-1500 2012-12-10 01:40:20 -06:00
Wesley Wolfe
4d2a92ed47 Add isSolid() tests for each material 2012-12-09 18:15:34 -06:00
feildmaster
12c7c2f695 Implement FurnaceExtractEvent. Adds BUKKIT-2114 2012-12-08 03:58:34 -06:00
feildmaster
e760d6eb31 Add SlotFurnaceResult for diff visibility 2012-12-08 02:45:50 -06:00
EdGruberman
24abdd556d [Bleeding] Fix NPE in getBedSpawnLocation. Fixes BUKKIT-1949 2012-12-08 02:18:06 -06:00
Dark Arc
090c1a60bd Correctly shoot arrows with the spawnArrow Method. Fixes BUKKIT-3116 2012-12-08 02:15:15 -06:00
Travis Watkins
9973e7cdec Update entity state correctly when marked as persistent. Fixes BUKKIT-3123
When a mob is marked with the persistent flag (animal or anything with
setRemoveWhenFarAway(false)) the entire block of code for checking if they
should be despawned is skipped. However, one part of this code updates the
mob state if a player is close enough to them. It turns out this state is
used by the AI system to decide if the mob should move around randomly or
not. To stop mobs from being frozen in place we now update this state if
the persistent flag is set as well.
2012-12-07 21:18:51 -06:00
Travis Watkins
846a22304c Provide a faster way to get a location. Adds BUKKIT-3120
Currently when a plugin wants to get the location of something it calls
getLocation() which returns a new Location object. In some scenarios this
can cause enough object creation/destruction churn to be a significant
overhead. For this cases we add a method that updates a provided Location
object so there is no object creation done. This allows well written code
to work on several locations with only a single Location object getting
created.

Providing a more efficient way to set a location was also looked at but
the current solution is the fastest we can provide. You are not required
to create a new Location object every time you want to set something's
location so, with proper design, you can set locations with only a single
Location object being created.
2012-12-07 21:15:05 -06:00
feildmaster
c74fd4196f Use shooter constructor for Fireballs. Fixes BUKKIT-3121
Fixes fireballs exploding in the shooter's face and not having a shooter for the projectile. (Two birds with one stone!)
2012-12-07 05:25:20 -06:00
feildmaster
78bc0ad1d5 Add the ability to launch WitherSkulls. Fixes BUKKIT-3106 2012-12-07 05:25:11 -06:00
feildmaster
72ee1f3182 Fix "Commands Only" chat flag. Fixes BUKKIT-2238
Thanks for the commit @mrapple
2012-12-07 05:22:00 -06:00
feildmaster
6a04fd98ad Implement API for wolves collar color. Adds BUKKIT-3109 2012-12-05 18:08:31 -06:00
Travis Watkins
1af83da760 Don't run command blocks in empty worlds. Fixes BUKKIT-3094 2012-12-05 13:37:13 -06:00
feildmaster
09684ba9d7 Persistence isn't just animals. Fix BUKKIT-3105
Also set to this value if the persistence hasn't been updated
2012-12-05 12:28:09 -06:00
feildmaster
fb6d9e1808 Add a custom shutdown message set in bukkit.yml. Addresses BUKKIT-3031 2012-12-05 06:07:10 -06:00
Travis Watkins
320712aba7 Allow placing blocks in spawn if ops.txt is empty. Fixes BUKKIT-3004 2012-12-05 05:01:15 -06:00
Travis Watkins
5409d05d3a Ensure animals don't despawn due to old default setting.
The old default for the persistent flag on mobs was false which was then
written out to their NBT data when they were saved. We now use this data
for all mobs, not just non-animal mobs. However, this means animals that
spawned before that change will now start despawning like monsters do.

To avoid this we add a new flag to the mob's saved data to mark if the
data was saved before or after we started using it and ignore it if it
was before.
2012-12-04 23:15:53 -06:00
Wesley Wolfe
b854320fc8 Fire EntityFormBlockEvent for FallingBlocks. Adds BUKKIT-3078 2012-12-04 22:38:51 -06:00
Travis Watkins
4dadf0e2b5 Implement API for mob despawn when away from players. Adds BUKKIT-2986
As of 1.4 mobs have a flag to determine if they despawn when away from a
player or not. Unfortunately animals still use their own system to prevent
despawning instead of making use of this flag. This change modifies them
to use the new system (defaults to true) and to add API for plugins to adjust
this.
2012-12-04 20:10:23 -06:00
feildmaster
11894784b0 Fix leaky pipes (water flow). Fixes BUKKIT-3085
(Also, fix mistranslation for VehicleBlockCollisionEvent)
2012-12-01 13:33:44 -06:00
feildmaster
c596093c31 [BREAKING] Update BlockFace directions. Fixes BUKKIT-1567, BUKKIT-3069
The answer is 42
2012-12-01 01:14:25 -06:00
Wesley Wolfe
3404318bc5 Fix missed refactoring in EntityWither 2012-11-30 17:50:09 -06:00
Wesley Wolfe
1a6a828156 Add data values to EntityChangeBlockEvent. Adds BUKKIT-3077, BUKKIT-3076
This change affects Endermen and Silverfish, adding a data value for the block change event.
2012-11-30 11:59:29 -06:00
Wesley Wolfe
9bd02495df Use carried item for endermen's changed-block's id. Fixes BUKKIT-3075 2012-11-30 11:49:01 -06:00
feildmaster
0c16afd6e0 Take into account if the shooter is a player before considering pvp mode for projectiles. Fixes BUKKIT-3058 2012-11-27 12:14:53 -06:00
feildmaster
1040a81334 Fix multi-world sounds not being sent correctly. Fixes BUKKIT-3051 2012-11-25 18:05:17 -06:00
feildmaster
aa99d67963 Call EntityInteractEvent for Wood Buttons. Fixes BUKKIT-3022
Prior to this, there was no way to tell when arrows trigger buttons
2012-11-24 01:41:19 -06:00
feildmaster
cd66edd40f Fix the previous fix for "infinite 'breeding' with MonsterEggs" 2012-11-22 21:42:34 -06:00
feildmaster
22e26a5029 Call MapInitializeEvent on newly created maps. Fixes BUKKIT-2907 2012-11-21 16:48:25 -06:00
feildmaster
f0325da814 Add ItemMapEmpty for diff visibility 2012-11-21 16:19:56 -06:00
feildmaster
71b0510f88 Fix teleporting entities with vehicles/passengers teleporting you illegally. Fixes BUKKIT-2821
Also some formatting...
2012-11-20 19:41:56 -05:00
EvilSeph
fed863049d Update invalidItems array. Fixes BUKKIT-2554. 2012-11-20 19:37:01 -05:00
EvilSeph
a17ca07fe8 Add SPAWNER_EGG spawn reason to allow for filtering. Adds BUKKIT-3000 2012-11-20 19:37:01 -05:00
EvilSeph
c36b3da573 Fix infinite 'breeding' with MonsterEggs. Fixes BUKKIT-2997
If the player is not in Creative (i.e. does not have the ability to
instantly build) we need to decrement the MonsterEgg item stack when used
on a breedable parent mob.
2012-11-20 19:37:00 -05:00
feildmaster
5f5dd727b6 Add a DamageEvent for falling blocks which can damage entities. Fixes BUKKIT-2781 2012-11-20 17:16:30 -06:00
Wesley Wolfe
d039986be7 No teleporting people back into the server. Fixes BUKKIT-2298
Stale player references will add a player back into the world when
teleporting them, causing a cascade of issues relating to ghost entities
and servers failing to stop.
2012-11-19 21:38:31 -06:00
Travis Watkins
8f4cde24bd Don't add player to world if join event did it already.
On join we unconditionally add the player to the world they logged out in.
If a plugin teleports a player during PlayerJoinEvent in a way that adds
them to a world (cross-world teleport) we end up with one player in two
places. To avoid this we check to see if the player has changed worlds or
is already added to the world we have we skip adding them again.
2012-11-18 21:27:48 -05:00
EvilSeph
cc78e17312 Fix players losing experience when keepInventory is true. Fixes BUKKIT-2915 2012-11-18 17:45:29 -05:00
Travis Watkins
7ef9adc04e Fix missed rename making withers too cheaty. Fixes BUKKIT-2972 2012-11-18 16:14:08 -06:00
Travis Watkins
58636c2dd8 Don't do case lookups when we have the right case already.
This is a missed part of the original "[Bleeding] Use case from player data
for OfflinePlayer. Fixes BUKKIT-519" commit. It avoids doing (somewhat
expensive) lookups of player data to find the correct capitalization inside
getOfflinePlayers() as we're already loading their name from the player data
and thus have the correct capitalization.
2012-11-18 10:51:52 -06:00
Travis Watkins
1044c32a54 Lower compression level to avoid overloading the thread. Fixes BUKKIT-2963
When sending chunks to a player we use their writer thread to do chunk
compression to avoid blocking the main thread with this work. However,
after a teleport or respawn there are a large number of chunk packets to
process. This causes the thread to spend a long period handling compression
while we continue dumping more chunk packets on it to handle. The result of
this is a noticable delay in getting responses to commands and chat
immediately after teleporting.

Switching to a lower compression level reduces this load and makes our
behavior more like vanilla. We do, however, still give this thread more
work to do so there will likely still be some delay when comparing to
vanilla. The only way to avoid this would be to put chunk compression back
on the main thread and give everyone on the server a poorer experience
instead.
2012-11-18 09:16:50 -06:00
Karl Fritsche
028860399b Implement sound changes for Minecraft 1.4.2 changes. Fixes BUKKIT-2849 2012-11-17 15:06:18 -06:00
James Clarke
a575e6b075 Use correct itemstack for dispenser behavior chaining. Fixes BUKKIT-2886
When an event changes the item to be dispensed we check to see if the new
item has special behavior for dispensing and if so pass it on to that
behavior handler. However, we are actually checking the old itemstack and
passing the new itemstack so this check fails.
2012-11-17 15:06:18 -06:00
EdGruberman
293474d99b [Bleeding] Use case from player data for OfflinePlayer. Fixes BUKKIT-519
If a plugin looks up a player that is offline they may not know the correct
capitalization for the name. In this case they're likely to get it wrong
and since we cache the result even after the player joins the server all
future request for an OfflinePlayer will return one with incorrect case.

When looking up a player who has played on the server before we can
get the correct case from the player data file saved by the server. If
the player has never played before this point we cannot do anything and
will still have the same issue but this is not a solvable problem.
2012-11-17 15:06:18 -06:00
Travis Watkins
20c074ec6c Don't show a player on map if they're vanished. Fixes BUKKIT-1882 2012-11-17 15:06:06 -06:00
Travis Watkins
2d832bf148 Don't kick player when they travel too far. Fixes BUKKIT-2968
If a player travels past 32,000,000 blocks on the X or Z coordinates they
will be kicked for having an illegal position. On kick their player data
is saved which includes their (illegal) position. This means on join they
are immediately kicked again for the same reason and are stuck. Instead of
kicking at all in this case just teleport the player back to their previous
position just like the moved wrongly check does.
2012-11-17 15:00:14 -06:00
James Clarke
bd0868ae1e Implement API for Skeleton and Zombie types. Fixes BUKKIT-2818 2012-11-17 15:00:14 -06:00
Travis Watkins
dca54ff187 Fire BlockSpreadEvent for vine growth. Fixes BUKKIT-1097 2012-11-17 15:00:14 -06:00
Travis Watkins
0c78ce40e5 Add BlockVine.java from mc-dev for diff visibility. 2012-11-17 15:00:14 -06:00
Travis Watkins
9ab40b1ab3 Fire BlockFadeEvent when soil turns back to dirt. Fixes BUKKIT-1854 2012-11-17 14:59:41 -06:00
Travis Watkins
558411692a Don't wait for main thread when processing commands.
In order to correctly handle disconnects for invalid chat we setup a
Waitable and pass it to the main thread then wait for it to be processed.
However, commands are also chat packets and they are already on the main
thread. In this case, waiting will deadlock the server so we should just
do a normal disconnect.
2012-11-17 11:48:22 -06:00
Travis Watkins
9add7d3000 Don't create tile entity when block placement fails. Fixes BUKKIT-2924
End portals can only be placed in the end during the dragon's death.
Attempts to place them outside of this window causes the block to remove
itself. However, we still create the tile entity for the portal which
leads to exceptions spamming the console about a tile entity existing
without the appropriate block. In these cases we should not place the tile
entity at all.
2012-11-16 16:56:49 -06:00
Travis Watkins
d21c5f3871 Ignore empty custom payload packets. Fixes BUKKIT-2957 2012-11-16 16:15:41 -06:00
Wesley Wolfe
6466aa1d25 Use synchronous calls and wait for chat disconnect. Fixes BUKKIT-2946
When invalid chat is detected we currently drop the connection with no
hint as to why as anything else is not allowed while we're off the main
thread. To give valid disconnect reasons and fire proper events instead
pass these off to the main thread and wait for it to process them.
2012-11-16 15:56:13 -06:00
Travis Watkins
82c8cf4234 Update tile entity when interact event is cancelled.
If a plugin cancels a PlayerInteractEvent when left clicking a block the
client may have removed this block if they are in creative mode or if the
block breaks in a single hit. In this case, we need to update the client's
tile entity as well as telling it the block still exists.
2012-11-16 13:46:52 -06:00
Travis Watkins
6952ad1e59 Update CraftBukkit to Minecraft 1.4.5. 2012-11-16 10:13:34 -06:00
feildmaster
8e806550d7 Remove fire ticks if damage has been canceled. Fixes BUKKIT-2933 2012-11-15 19:26:39 -06:00
Travis Watkins
6149fc3e78 Don't thread single chunk compression. Fixes BUKKIT-2927
Packet 51 is used to send updates about large changes to single chunks
and to remove chunks from the client when they get out of range. In the
first case a single packet object is created and queued for all relevant
players. With our current chunk compression scheme this means the first
player to have the packet processed will start the compression and get the
packet correctly but the rest will get garbage.

Since this packet never contains much data it is better to simply handle
compression of it on the main thread like vanilla does instead of putting in
locks and dealing with their overhead and complexity.
2012-11-15 16:09:21 -06:00
Travis Watkins
e1afee008f Update tile entity on client on cancelled block break. Fixes BUKKIT-2935
When a client tries to break a block it assumes it has done so unless told
otherwise by the server. This means the client also wipes out any tile
entity data it has for the block as well. We do not send this data when
updating the client so clients lose things like text on signs, skull type,
etc when they aren't allowed to break the block.
2012-11-14 20:14:47 -06:00
Travis Watkins
df69ea8814 Rework skull dropping. Fixes BUKKIT-2930 and BUKKIT-2820
Skulls need their tile entity in order to create an item correctly when
broken unlike every other block. Instead of sprinkling special cases all
over the code just override dropNaturally for skulls to read from their
tile entity and make sure everything that wants to drop them calls this
method before removing the block. There is only one case where this wasn't
already true so we end up with much less special casing.
2012-11-14 20:14:47 -06:00
Wesley Wolfe
092800af26 Fixed some async tasks running synchronously. Fixes BUKKIT-2934
Additionally refactored cancel method to be more object-oriented.
2012-11-14 16:47:21 -06:00
Travis Watkins
c2bae0bebb Add crafting result slot for sheep breeding. Fixes BUKKIT-2926
Sheep now use the crafting system when breeding to determine what color
their baby should be. This triggers an event but the event wants the
crafting inventory to have a result slot which sheep do not have. This
event could be useful for plugins to control the output of sheep breeding
so instead of disabling it we add a result slot so the event fires without
issue.
2012-11-14 13:27:45 -06:00
Travis Watkins
188a71ad5b Clear out empty extended block ID array. Fixes BUKKIT-2923
If a chunk gets a block added to it that requires the extended block id
nibble array (block id greater than 255) the array is created and saved
with the chunk. When the blocks are verified to make sure they exist these
entries are erased but the extended block id array is not. This causes the
server and client to disagree about how much data a chunk has which makes
the client crash while trying to load the chunk for rendering.

To resolve these issues we now clear the extended block id array on chunk
load if there is no valid data in it.
2012-11-14 11:36:06 -06:00
Travis Watkins
2b22ae2d45 Potentially fix glitch with falling entities.
When a block creates a falling entity the block is not immediately removed
from the world. Instead, the falling entity is responsible for removing it
but only if the block still exists. Due to certain piston mechanics it is
possible to move the block before this check happens and thus the block is
not removed. This should be fine as the entity will kill itself in this
situation. However, the code does not stop here and continues running the
rest of the entity logic which includes either placing a block in the world
or placing a block item in the world depending on the circumstances.
2012-11-13 23:34:43 -06:00
Travis Watkins
db43197ecf Add EntityFallingBlock from mc-dev 2012-11-13 23:23:04 -06:00
Travis Watkins
5a999a2660 Correct digging behavior. Fixes BUKKIT-2780
If a block is air we return immediately so miss the cleanup work that would
normally happen in this case in vanilla. This causes us to get in to a
situation where, due to odd packet sending from the client, we never
properly stop an attempt by the client to break a block and thus it
eventually breaks.

We also use our own variable for block damage and never sync it up with the
vanilla one so damage reporting to other clients is not always correct.
2012-11-13 21:42:36 -06:00
Travis Watkins
7f7192f8fd Update CraftBukkit to Minecraft 1.4.4. 2012-11-13 16:09:52 -06:00
EvilSeph
f683d5568f Migrate world data with world when switching from vanilla Minecraft to
Bukkit. Fixes BUKKIT-2816 and BUKKIT-2760
2012-11-02 21:12:02 -04:00
md_5
53d24e2b22 [Bleeding] Fix mistranslation affecting time of the server vs time of day.
Fixes BUKKIT-2797
2012-11-02 16:36:43 -04:00
Wesley Wolfe
3dd0580d50 Improved the potion test to detect missing PotionType values. 2012-11-02 00:24:11 -05:00
Travis Watkins
87d25c4cc6 Fix compile issue with chunk generation. 2012-11-02 00:12:49 -05:00
feildmaster
a4892dfa72 Delegate recreateStructures to nms provider. Fixes BUKKIT-2760
This was a miss when updating to 1.4.2
2012-11-01 21:32:28 -05:00
Wesley Wolfe
1c14586c49 Add CraftArt mappings for Wither. Fixes BUKKIT-2667.
The static assertions are not normally evaluated in the JVM, and failed
to fail when the enums went from size 25 to size 26. This meant missing
values would not be detected at runtime and instead return null,
compounding problems later. The switches should never evaluate to null
so will instead throw runtime assertion errors.

Additional unit tests were added to detect new paintings and assure they
have proper, unique mappings. The test checks both that a mapping
exists, is not null, and does not duplicate another mapping.
2012-11-01 03:06:47 -05:00
Wesley Wolfe
9a88e615d4 Change ItemFrame to actually provide a defensive copy. Fixes BUKKIT-2784
If a defensive copy is not used in the API, changes to the item are
reflected in memory, but never updated to the client. It also goes
against the general contract provided in Bukkit, where setItem should be
the only way to change the underlying item frame.
2012-11-01 01:34:54 -05:00
EvilSeph
1623bf0f9b Fire HangingBreakEvent when explosions remove hanging entities. Fixes BUKKIT-2764 2012-10-31 14:24:03 -04:00
Travis Watkins
87a1cd3d43 Add inventory and slot types for new containers. Fixes BUKKIT-2741 2012-10-31 13:25:53 -04:00
Travis Watkins
347fd3cb6e Fix NPE when blowing up an item frame. Fixes BUKKIT-2763 2012-10-31 13:09:57 -04: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
46d7cd1e05 Use BlockCommandSender for dispatching Command block commands
Also allow commands that don't start with a / to match vanilla behavior
2012-10-31 06:37:46 -05:00
feildmaster
9e4e2c62af Expose API for managing and using GameRules. Adds BUKKIT-2757 2012-10-31 03:40:43 -04:00
Travis Watkins
59dc403a61 Hook command block up to ConsoleCommandSender. Fixes BUKKIT-2684
This will need to have its own CommandSender but this makes command blocks
work for now with any command console can run.
2012-10-31 02:39:56 -05:00
h31ix
63eaf74d44 Implement the API for ItemFrames. Adds BUKKIT-2668 2012-10-31 01:18:59 -05:00
h31ix
02ca9be079 [Bleeding] Fire damage is no longer a valid reason for hanging entity removal 2012-10-31 00:45:47 -04:00
h31ix
54cce5bf92 [Bleeding] Implement new Hanging events. Adds BUKKIT-2754 2012-10-31 00:21:31 -04:00
EvilSeph
4efd06a6b5 Remove Anvil debug. Fixes BUKKIT-2732 2012-10-30 19:11:34 -04:00
md_5
42391009f7 [Bleeding] Prevent players from appearing to be sneaking after they change dimensions whilst doing so. 2012-10-30 19:11:34 -04:00
EvilSeph
b7886d1421 Disable portal support for entities for now. Restore allowNether check.
Relates to:
BUKKIT-2695 BUKKIT-2675
2012-10-30 19:11:33 -04:00
EvilSeph
6bf705dd08 Expose API for clearing a player's inventory with a successful count
return. Adds BUKKIT-2745
2012-10-30 04:55:02 -04:00
feildmaster
856fdc2ab6 Update map cursors to reflect 1.4 changes. Fixes BUKKIT-2740 2012-10-29 23:29:40 -04:00
EvilSeph
3047a424bb Expose API for giving and taking experience levels for use with ExpCommand's new behaviour with Minecraft 1.4. Adds BUKKIT-2739 2012-10-29 23:18:37 -04:00
feildmaster
aba7e2faf1 Revert changing EntityType.FIREBALL to LARGE_FIREBALL 2012-10-29 20:17:52 -05:00
Travis Watkins
216cddb2ab Get skull data before destroying block. Fixes BUKKIT-2723
Skull blocks store their type in a tile entity and use their block data
as rotation. When breaking a block the block data is used for determining
what item to drop. Simply changing this to use the skull method for getting
their drop data is not enough because their tile entity is already gone.
Therefore we have to special case skulls to get the correct data _and_ get
that data before breaking the block.
2012-10-29 12:54:16 -05:00
EvilSeph
14f4bd9024 Fix bug preventing non bed-reliant spawns from being successfully set. Fixes BUKKIT-2708 2012-10-29 04:56:30 -04:00
Travis Watkins
d16f8c5e65 Drop skulls like every other block. Fixes BUKKIT-2678
Instead of having a special case for skulls just use the normal logic for
breaking a block. This avoids issues when interacting with API.
2012-10-29 02:28:27 -05:00
EvilSeph
f4cdf8fe98 Add isHardcore API to check if the server is in hardcore mode or not. Adds BUKKIT-2707 2012-10-29 01:46:14 -04:00
EvilSeph
442b7a69f1 Prevent health from wrapping around. 2012-10-28 23:55:40 -04:00
h31ix
db49a57694 Update PotionEffects on player death. Fixes BUKKIT-2673
On player death player PotionEffects need to be updated so that a player's
invisibility and other effects are removed, otherwise they will persist
after a respawn. This is a carry-over from our use of persistent player
entities.
2012-10-28 23:27:02 -04:00
Travis Watkins
0fb806c566 Clamp difficulty levels to prevent invalid values
Some features added in 1.4.2 use the difficulty value as an index to an
array so while before having it set to an invalid value would do nothing
or maybe cause an odd side effect somewhere it now crashes the server. This
patch ensures difficulty values are clamped between 0 and 3, inclusive.
2012-10-28 10:07:11 -05:00
Travis Watkins
37a0d6757d Don't filter item data for anvils. Fixes BUKKIT-2640
Filtering item data is usually a good idea to make sure we don't have
invalid data or data on items that shouldn't have it. However, anvils
use item data in slightly different way and so running its code for
filtering here causes the data to be corrupted.
2012-10-28 09:37:47 -05:00
Travis Watkins
9841b77009 Use correct variable for squid Y motion. Fixes BUKKIT-2648 2012-10-28 03:23:48 -05:00
Travis Watkins
c675cc0b3b Fix missed rename for ore exp dropping. Fixes BUKKIT-2662 2012-10-28 02:43:23 -05:00
Travis Watkins
d97d193b91 Add new entities to World.spawn method. Fixes BUKKIT-2658 2012-10-28 02:21:34 -05:00
h31ix
788e9e84cf Fix incorrect method names missed during update. Fixes BUKKIT-2653
A couple method names were changed between 1.3.2 and 1.4.2 but were missed
in the update. One of these affects being able to enchant bows and the
other is used for updating player animations while firing.
2012-10-28 03:06:59 -04:00
EvilSeph
11d65171cd These books are too powerful! 2012-10-28 03:05:28 -04:00
EvilSeph
784f9e31a8 Remove spawn-radius setting in bukkit.yml in favour of spawn-protection in
server.properties. Fixes BUKKIT-2657
2012-10-28 01:55:27 -04:00
EvilSeph
5fe8523023 Fixed generator-settings not being set. Fixes BUKKIT-2652 2012-10-28 01:00:28 -04:00
Travis Watkins
5469311a36 Don't pass vanilla plugin channels to plugins. Fixes BUKKIT-2638
Vanilla has its own handlers for plugin channel messages for things like
texture packs, books, and anvils. When vanilla handles one of these messages
we should not also pass it to plugins because they will be duplicating work
and potentially running in to situations our plugin system isn't setup to
handle. This is how 1.3.2 worked but was lost in the 1.4.2 update.
2012-10-27 23:25:10 -05:00
Travis Watkins
60819c6693 Update CraftBukkit to Minecraft 1.4(.2). 2012-10-27 22:19:03 -04:00
EvilSeph
df7f86d028 Made books less powerful, though you should still read them! 2012-10-27 20:44:16 -04:00
Wesley Wolfe
4166af1d3a Implement chat tab completion API. Fixes BUKKIT-2608. Adds BUKKIT-2607.
The chat tab completion implementation also includes a sanity check to
assure type-safety in the list.
2012-10-17 04:31:36 -05:00
Score_Under
3ce954bb86 Delegate tab-completion. Fixes BUKKIT-2181. Adds BUKKIT-2602
CommandMap now contains the functionality for tab completion. This
commit replaces the vanilla implementation and simply delegates it to
the Bukkit API.
2012-10-15 03:18:59 -05:00
Wesley Wolfe
05e889f346 Queue tasks from secondary threads. Fixes BUKKIT-2546 and BUKKIT-2600
This change affects the old chat compatibility layer from an
implementation only standpoint. It does not queue the 'event' to fire,
but rather queues a runnable that allows the calling thread to wait for
execution to finish.

The other effect of this change is that rcon connects now have their
commands queued to be run on next server tick using the same
implementation.

The internal implementation is in org.bukkit.craftbukkit.util.Waitable.
It is very similar to a Future<T> task, but only contains minimal
implementation with object.wait() and object.notify() calls
under the hood of waitable.get() and waitable.run().

PlayerPreLoginEvent now properly implements thread-safe event execution
by queuing the events similar to chat and rcon. This is still a poor way
albeit proper way to implement thread-safety; PlayerPreLoginEvent will
stay deprecated.
2012-10-14 17:26:53 -05:00
Wesley Wolfe
93a79cd0e6 Implement new scheduler API. Adds BUKKIT-836
The implementation for the new methods mimics the old methods. The final
call for the old methods now maps to the new methods with an additional
call to get id.
2012-10-14 01:21:58 -05:00
Travis Watkins
506a1a0765 Ensure entity isn't destroyed when trying to show it. Fixes BUKKIT-2038
If two players (or a player and any other entity) are teleported to the
same location in the same tick they will both get added to the other's
destroy queue then have a new entity spawn packet sent. Next tick the
destroy queue will be processed and they will then be invisible to each
other. To prevent this situation we remove the entity from the destroy
queue when sending out a spawn packet for them.
2012-10-13 15:27:45 -05:00
EdGruberman
59d6b60c0a Update entity target data to reflect current AI status. Fixes BUKKIT-2280
The new AI system introduced by Minecraft 1.2 no longer relies on the
target field in the entity so it is frequently out of sync with what the
entity is actually doing. This modifies the AI goal to update the target
so our API can return the correct information.
2012-09-28 15:04:32 -05:00
Travis Watkins
62a9b8815b Allow data values on mushroom and mob spawner blocks. Fixes BUKKIT-2346
In 1.2.5 and older versions of CraftBukkit we allowed the use of data
values on bug mushroom and mob spawner blocks for use with plugins.
For the 1.3 update the mechanism for doing this was changed and I
accidentally used the wrong value when adding these, indicating that
they should not have data instead of our actual intent. This change
corrects this regression.
2012-09-28 15:00:02 -05:00
Travis Watkins
b5580b6d95 Remove player from destroy queue when they go visible. Fixes BUKKIT-2071
If a plugin calls player.hidePlayer(other); then player.showPlayer(other);
in the same tick the other player will be added to the entity destroy queue
then a spawn packet will be sent. On the next tick the queue will be
processed and a destroy packet will be sent that renders the other player
invisible. To correct this we ensure the destroy queue is in sync with use
of the vanish API.
2012-09-28 14:53:28 -05:00
Travis Watkins
244a39d209 Use this world instead of the one in the entity. Fixes BUKKIT-2315
In some situations an entity or tile entity can be added to the world but
have its own 'world' field be null or otherwise incorrect. As the entity
was added to this world to be ticked assume it actually is in this world.
2012-09-28 14:46:30 -05:00
Wesley Wolfe
fc0e35a67c Fix typo causing a task to be repeated in debug. Addresses BUKKIT-2549
An internal method for making the debug output for CraftScheduler's
async tasks was erroneously using the 'this' reference when the loop
should be referencing the current task.
2012-09-28 02:39:22 -05:00
Wesley Wolfe
03f12497b2 Map org.bukkit.Sound to String values for sending to client.
This change was done to remove the internal sound names from the API.
Along with moving the internal names into CraftBukkit, a unit test was
added for any new sounds added in the API to assure they have a non-null
mapping.
2012-09-26 19:02:05 -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
Wesley Wolfe
9f70c1f386 Set last accessed variables after grabbing chunk. Fixes BUKKIT-1033
This fix changes the 'state' of the last accessed variables to be more
accurate. Changing the coordinates of the last accessed chunk should
never precede actually setting the last accessed chunk, as loading a
chunk may at some point call back to getChunkAt with a new set of
coordinates before the chunk has actually been loaded. The coordinates
would have been set, but the actual chunk would not. With no check for
accuracy, this causes fringe case issues such as null block states.

Big thanks to @V10lator for finding where the root of the problem was
occurring.
2012-09-20 23:00:34 -05:00
Wesley Wolfe
cebc8cffec CraftBukkit comment fixes 2012-09-14 01:53:42 -04:00
mbax
4b1f6aff3f [Bleeding] Check visibility API for sounds. Fixes BUKKIT-2210
This implementation of a visibility API check for sounds
was created by adding extra methods carrying the source entity
in WorldManager and ServerConfigurationManagerAbstract and
adding a test for canSee in the SCMA sendPacketNearby method.
This approach involves no logic copying, just method addition.
I opted to cast to WorldManager as:
1) IWorldAccess is not in CraftBukkit at the moment
2) There is no other IWorldAccess implemented in CraftBukkit,
  nor is there likely to be one soon. If that day comes, easy fix.
2012-09-14 01:53:42 -04:00
EvilSeph
349cb0bba6 What is dead may never die. 2012-09-14 01:53:34 -04:00
EvilSeph
412b4624c3 Update the client after a FoodLevelChange event is fired. Fixes BUKKIT-2510 2012-09-12 22:06:36 -04:00
Mike Primm
9a4b85c931 [Bleeding] Avoid spawn checks on empty worlds. Fixes BUKKIT-2508
Change a server wide check for players to be world specific. Worlds
without players will not spawn entities.
2012-09-12 22:06:36 -04:00
EvilSeph
4c0dd6964e Reverted changes to chunk saving behaviour. 2012-09-12 22:06:35 -04:00
Mike Primm
beee3ce2da [Bleeding] Add autosave interval setting in bukkit.yml. Adds BUKKIT-2507
The new setting is located at "ticks-per.autosave". By changing this
value, it affects how often a full save is automatically executed,
measured in ticks.

This value is defaulting to 0 (off) because we believe that the vast
majority of servers already have a third-party solution to automatically
saving the server at set intervals. Having the built in auto-save disabled
by default ensures that we are not saving things twice; doing so leads to
absolutely no benefits, but results in detrimental and noticeable
unnecessary performance decrease.

For servers that do not use an automated external script to perform saves,
this setting can be turned on by setting the value higher than 0, with 900
being the value used in vanilla.
2012-09-12 22:05:52 -04:00
Wesley Wolfe
e2b1514daf Bulk pending cleanup. 2012-09-09 23:19:28 -05:00
Luke Granger-Brown
b1f6d16bfa Change local jline checks to not use String literals. Fixes BUKKIT-2455.
Refactoring dependencies 'changes' the string literal in the code. This
commit changes the literal to instead use a char[] to initialize a new
String. On a bytecode level, there will not exist a String literal for these
two values; the shade plugin will no longer refactor them.

Refactoring jline also changes the other String literals we use for
notifying jline of the current state. To insure that our local code reflects
the inner logic in jline, the key value was changed to the static final
variable located in TerminalFactory. Likewise, UnsupportedTerminal uses the
explicit class name (as reflection is used later with the value that has
been set).
2012-09-09 17:02:48 -05:00
Wesley Wolfe
27d58a299c Add information about async tasks to CrashReports. Addresses BUKKIT-2491
Async tasks are notorious for causing CMEs and corrupted data when
accessing the API. This change makes a linked list to track recent tasks
that may no longer be running. It is accessed via the toString method on
the scheduler. This behavior is not guaranteed, but it is accessible as
such currently.

Although toString is located in the scheduler, its contract does not
guarantee an accurate or up to date call when accessed from a second
thread.
2012-09-09 00:34:41 -05:00
Wesley Wolfe
4d5894e4cb Fix crash from console-commands throwing exception. Fixes BUKKIT-2479
When 1.3.1 was released, a try-catch block was removed from the tick
loop that called the method in NMS to handle commands. This restores a
try-catch to prevent the console from crashing the server.
2012-09-06 22:11:17 -05:00
feildmaster
c710ca827f Fix BUKKIT-2419: PlayerAbilities not being updated on teleport/respawn
Minecraft resets abilities based on what it knows client side, when someone dies and is in "survival," by default they should be in "survival." However, we allow modification of the PlayerAbilities, so we send this update out to the client.

Oh and, the format of the commit is like this to see if it looks any good. :)
2012-08-27 12:02:25 -05:00
Wesley Wolfe
3307d489da Fix Future task waiting logic. Fixes BUKKIT-2408
Previously, the timeout would erroneously get converted to milliseconds
twice. The second conversion was removed.

Spurious wakeups were not handled properly, and would instead throw a
TimeoutException even if the waited time was not reached..
2012-08-26 10:25:11 -05:00
feildmaster
cb84d6b994 Fix empty chunks not sending biome properly and causing client side issues. Fixes BUKKIT-2396 2012-08-25 08:59:33 -05:00
Travis Watkins
b8cc862083 Update to 1.3.2 2012-08-25 00:54:21 -04:00
feildmaster
35cff16da5 Fix EmptyChunk's not sending to the Client correctly. Fixes BUKKIT-2206 2012-08-23 14:58:23 -05:00
Wesley Wolfe
dcd01bf0c0 Rewrite scheduler. Fixes BUKKIT-1831, and BUKKIT-845
The new scheduler uses a non-blocking methodology. Combining volatile
references to make a linked reference chain, with the atomic reference
handling the tail, tasks are queued without waiting for locks. The main
thread will no longer limit the length of time spend for scheduled tasks,
but no task will run twice in the same tick. Scheduling a new task inside of
a synchronous task will always run the new task during the same tick,
assuming there is no supplied delay > 0.

Asynchronous tasks are now run using a thread pool. Any thread-local
implemenation should now account for threads being reused between
executions.

Race conditions were carefully examined and the order of logic is now very
important. Each task is placed in a secondary collection before removal from
primary collections. Thus, by reading tasks from the collections in the same
order they travel, it retains state-safety. This does make modifications
less responsive in some situations, as the task may be transitioning before
the modifier accesses it. This cost outweighs the requirement to synchronize
on the scheduler; previously any conflict would be first-come-first-serve,
with the main thread backing out arbitrarily.
2012-08-22 16:41:46 -05:00
feildmaster
8fdb006143 Use constant Player for EnderPearls
Also make sure players are online before proceeding to each event
2012-08-22 14:32:10 -05:00
feildmaster
98c98d0f7a Fix entities not having valid "isValid" states. Addresses BUKKIT-2366 2012-08-22 14:16:51 -05:00
V10lator
e3ae188ed2 Fix instances where Signs have null lines. Addresses BUKKIT-684 2012-08-21 20:17:29 -05:00
EdGruberman
450edc3004 Use standard format function to format logs. Addresses BUKKIT-2246
Also fix "excess" Log Levels.
2012-08-21 19:17:29 -05:00
feildmaster
161ab5edc6 Implement API for Sound, and playing the sounds for Worlds and Players. Adds BUKKIT-1430, BUKKIT-1226 and BUKKIT-2019 2012-08-21 19:13:19 -05:00
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
feildmaster
57873b8d05 [Bleeding] Added SpawnReason.BREEDING. Fixes BUKKIT-1356 2012-03-27 20:29:22 -04:00
feildmaster
ec123deb74 Adding PathfinderGoalBreed for diff visibility. 2012-03-27 20:29:03 -04: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
bdccfd29ec [Bleeding] Stop filtering out 0 damage for Humans. Fixes BUKKIT-1348 2012-03-26 16:32:42 -04:00
feildmaster
9d0ea52021 [Bleeding] Fixed potions throwing double events. Fixes BUKKIT-1332 2012-03-26 16:05:38 -04:00
feildmaster
b45184fdf8 [Bleeding] Fixed dropping invalid Magma Creams. Fixes BUKKIT-1336 2012-03-25 19:52:44 -04:00
feildmaster
f1a235dcba [Bleeding] Fixed ocelot dropping leather. Fixes BUKKIT-1333 2012-03-25 19:52:14 -04:00
feildmaster
e66159e21d [Bleeding] Fix snowball drops. Fixes BUKKIT-1314 2012-03-25 19:47:14 -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
0c9b59e071 [Bleeding] Fixed TNT dropping when it shouldn't. Fixes BUKKIT-1304 2012-03-25 18:57:13 -04:00
Travis Watkins
94d718a146 Check abilities instead of mode for allow flight check. Fixes BUKKIT-1302 2012-03-25 18:23:51 -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
Nathan Adams
6ef9500410 Fixed fatal crash at world generation. 2012-03-23 14:32:00 +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
EvilSeph
cf2abd20e8 Fixed Doors not dropping when the block they are placed on is removed. Fixes BUKKIT-1292 2012-03-23 01:48:24 -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
EvilSeph
ddaf3c84d3 Fixed Connection Throttle handling. Fixes BUKKIT-1279 2012-03-22 18:57:02 -04: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
ca8b9a0bb4 Removed temporary hackish fix for the entity interactivity issues, fixed properly in MC1.2.4. 2012-03-22 17:40:07 -04:00
EvilSeph
ccbb4b479a Made Snowmen use a DamageCause MELTING for melting in hot biomes. Addresses BUKKIT-1244 2012-03-22 17:33:33 -04:00
EvilSeph
f6bcaa6b0a Fixed minecarts being dropped when crashing a boat. Fixes BUKKIT-1273 2012-03-22 16:58:13 -04: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
md_5
8dc7417a3d [Bleeding] Fixed bug involving pistons and powered rails. This fixes BUKKIT-517 2012-03-22 03:09:52 -04:00
md_5
8ad27aa01d Added BlockMinecartTrack and MinecartTrackLogic for diff visibility. 2012-03-22 03:09:33 -04:00
EvilSeph
8d35caf070 Kick for invalid carried item. 2012-03-22 02:55:50 -04:00
Mike Primm
f188afe794 [Bleeding] Prevent update inconsistencies on generation/decoration that span chunks. Fixes BUKKIT-871 2012-03-22 02:36:38 -04:00
Mike Primm
09a73d352c [Bleeding] Make sure biome data is initialized during generate - prevent uninitialized data being sent to client. Fixes BUKKIT-871 2012-03-22 02:34:54 -04:00
Mike Primm
6cd2a70803 Added for diff visibility:
- ChunkProviderGenerate
- ChunkProviderFlat
- ChunkProviderHell
- ChunkProviderTheEnd
2012-03-22 02:34:41 -04: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
zml2008
27acb4c41e Added WorldGenSwampTree for diff visibility 2012-03-21 20:32:05 -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
zerg960
96c4bb7da6 [Bleeding] Account for new rare drops in EntityDeath events. Fixes BUKKIT-1105 2012-03-21 13:24:59 -04:00
Celtic Minstrel
1c95413f49 [Bleeding] Fix for creeper getDrops() not reporting the music disk if it was killed by a skeleton. Addresses BUKKIT-1133 2012-03-21 13:11:47 -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
8d62de7055 Added for diff visibility:
- BlockBed
- BlockDeadBush
- BlockLongGrass
- BlockVine
2012-03-20 22:17:47 -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
43001ca2a8 [Bleeding] Only fire CraftItemEvent if there's actually an item there to craft (ie, don't fire it for a click on an empty result slot). Fixes BUKKIT-1250 2012-03-20 21:18:14 -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
b9a71db046 [Bleeding] Make crafting and enchanting inventories keep track of their owner rather than returning null. Addresses BUKKIT-1209 2012-03-20 20:30:54 -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
md_5
7966531113 [Bleeding] Completely fix the tree generation algorithm to make it near identical to vanilla as well as fix potential bugs associated with disappearing saplings. 2012-03-20 06:38:03 -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
Wesley Wolfe
9055a20d71 Added EntityThrownExpBottle for diff visibility. 2012-03-20 03:24:08 -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
EvilSeph
fc697a4f44 Fixed translation issue in EntityMinecart. Addresses BUKKIT-980 2012-03-16 02:38:57 -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
Celtic Minstrel
db5f804482 [Bleeding] Check top inventory type when determining whether a click event is a craft event. Fixes BUKKIT-1112
- Credit to Taufiq Hoven for locating the root cause of the issue.
2012-03-15 23:24:54 -04:00
Celtic Minstrel
f7da5d2ad7 [Bleeding] Disabled data filtering for mob spawners. Addresses BUKKIT-329 2012-03-15 23:24:34 -04:00
Celtic Minstrel
5c8fd4995f [Bleeding] Implemented Inventory.{get,set}MaxStackSize(). Addresses BUKKIT-1076
- Custom inventories also respect this setting now.
2012-03-15 22:44:10 -04:00
Celtic Minstrel
66e067f373 [Bleeding] Make InventoryView.setItem(-999, item) drop the item on the ground by default. 2012-03-15 22:26:27 -04:00
Celtic Minstrel
83265005f6 [Bleeding] Made ItemStack constructors not default to an amount of 0. Fixes BUKKIT-610 2012-03-15 22:17:09 -04:00
Celtic Minstrel
76cc488402 [Bleeding] DoubleChestInventory.getHolder() no longer returns null. Addresses BUKKIT-995 2012-03-15 22:13:46 -04:00
Celtic Minstrel
f27427ad19 Fix some improper item cloning instances that would have dropped enchantments 2012-03-15 21:47:37 -04:00
Wesley Wolfe
77ceb0002c Fix losing enchants from stacked items in custom inventories 2012-03-15 21:47:29 -04:00
EvilSeph
42822ddca4 Re-added EntityCombust event to skeletons. Fixes BUKKIT-1188 2012-03-15 18:48:44 -04:00
Celtic Minstrel
92f771a022 [Bleeding] Implemented ProjectileLaunchEvent. Addresses BUKKIT-284 2012-03-15 07:18:59 -04:00
feildmaster
b4c9ad518a [Bleeding] Call DamageEvent before CombustEvent for Arrows. Fixes BUKKIT-1100 2012-03-15 06:05:49 -04:00
EvilSeph
3054d020d3 Disabled BukkitDLUpdaterServiceTests. Nice to have, but should not be run on every compile as it relies on DLB being up. Addresses BUKKIT-1140 2012-03-15 06:05:36 -04:00
md_5
c90a7a52e7 [Bleeding] Fixed maxStack being incorrectly set to 0 in custom craft inventories. Fixes BUKKIT-1181 2012-03-15 05:30:44 -04:00
feildmaster
4503167283 Fixed EntityDamageByEntityEvent to call for every attackable entity. Fixes BUKKIT-1129, Fixes BUKKIT-1054 and Fixes BUKKIT-147. 2012-03-15 05:11:48 -04:00
EvilSeph
c625d00351 Stop loading the 'flying' setting from player.dat until it is properly implemented and used in NMS. Fixes BUKKIT-1183 2012-03-15 05:00:37 -04:00
EvilSeph
adebd466fb Added PlayerAbilities for diff visibility. 2012-03-15 04:54:59 -04:00
EvilSeph
5a6878b9b1 Made stepping on Redstone Ore fire PlayerInteract events for players, EntityInteract events for other entities. Fixes BUKKIT-1163 and fixes BUKKIT-1182
Note: the client seems to predict redstone ore interacting, so you may see
ore lighting up when it shouldn't be. However, cancelled events should
function as expected.
2012-03-15 04:38:16 -04:00
EvilSeph
16c6cbe5eb Added BlockRedstoneOre for diff visibility. 2012-03-15 00:33:56 -04:00
zml2008
868eaf571c [Bleeding] Call a LAVA BlockIgniteEvent in another place in BlockStationary. Fixes BUKKIT-970
Also adds CraftEventFactory.callEvent(Event), which returns the event called. Currently only used for n.m.s.BlockStationary's lava
BlockIgniteEvent calls.
2012-03-15 00:33:55 -04:00
EvilSeph
2a4167d8a5 Made snowmen in rain or water fire EntityDamage events with DamageCause DROWNING. Fixes BUKKIT-1165 2012-03-14 01:29:02 -04:00
EvilSeph
373afd1b22 Made snowmen melting fire EntityDamage events with DamageCause FIRE_TICK. Fixes BUKKIT-1164 2012-03-14 01:27:31 -04:00
Celtic Minstrel
f219f0efe9 Implemented Enchantment.conflictsWith(). Addresses BUKKIT-1159 2012-03-13 22:23:33 -04:00
Celtic Minstrel
28c1f571d2 [Bleeding] Added Player.isBlocking(). Addresses BUKKIT-858 2012-03-13 19:43:07 -04:00
EvilSeph
b37872c1a6 Made PlayerInteractEvent fire for digging within spawn for informational purposes only. Fixes BUKKIT-1086 2012-03-13 19:15:20 -04:00
feildmaster
06b814fd7e [Bleeding] Added EntityBreakDoorEvent. Fixes BUKKIT-1134 2012-03-11 16:31:11 -04:00
feildmaster
69ee00b6f0 Adding PathfinderGoalBreakDoor for diff visibility. 2012-03-11 16:30:44 -04:00
EvilSeph
1b6ca577f5 Fixed translation issue and enderman not spawning when The End is generated. Fixes BUKKIT-1115 2012-03-11 07:04:54 -04:00
EvilSeph
0f659850b2 Made golems spawning respect spawn-animals for real. Fixes BUKKIT-1124 2012-03-11 06:28:03 -04:00
rmichela
8ddd2f0566 [Bleeding] Help index now identifies itself as "Help: Index" rather than "Help: null" 2012-03-11 03:49:27 -04:00
EvilSeph
c84af98ccd Made World.refreshChunk() refresh the chunk, thanks zerg960! Fixes BUKKIT-1014 2012-03-11 03:38:29 -04:00
feildmaster
4545336fdf Only remove blocks when golem is successfully spawned. Fixes BUKKIT-1094 2012-03-11 01:30:16 -05:00
EvilSeph
433efec68f Fixed BlockStateListPopulator in EntityEnderDragon not being populated. Fixes BUKKIT-1130 2012-03-11 00:42:43 -05:00
EvilSeph
2aad49eecc Made ender pearls use the player's yaw and pitch. Fixes BUKKIT-1056 2012-03-11 00:11:41 -05:00
Kevin Ingersoll
49ff166d15 Fixed potential packet loss issue with vanish API. Fixes BUKKIT-1125 2012-03-10 23:19:15 -05:00
Mike Primm
bdd2139c78 [Bleeding] Add getWorldType() and getGenerateStructures() to CraftServer. Fixes BUKKIT-855 2012-03-10 18:36:28 -05:00
Mike Primm
eaa56941f3 [Bleeding] Make zero (or very small) explosions do no damage. Fixes BUKKIT-931 2012-03-10 18:36:27 -05:00
rmichela
996832ff6c [Bleeding] Added support for amending help topic visibility permissions in help.yml. Addresses BUKKIT-1113 2012-03-10 18:36:27 -05:00
rmichela
a8b2c6d04e [Bleeding] Implemented command aliases in help. Addresses BUKKIT-1028 2012-03-10 17:56:20 -05:00
rmichela
03ce67c38c [Bleeding] Moved DefaultHelpTopic and GenericCommandHelpTopic to public bukkit api. 2012-03-10 17:56:07 -05:00
rmichela
378424a1a1 [Bleeding] Added support for linking custom CommandExecutor types to a HelpTopicFactory. Fixes BUKKIT-1027 2012-03-10 17:55:44 -05:00
EvilSeph
5c757df673 Made iron golems spawning to defend villagers respect spawn-animals. Fixes BUKKIT-1124 2012-03-10 16:56:21 -05:00
EvilSeph
ae6b3711ea Made zombie invasions respect spawn-monsters setting. Fixes BUKKIT-1123 2012-03-10 16:31:21 -05:00
EvilSeph
f534863552 Make setting slots to AIR set them to null. Addresses BUKKIT-1043 2012-03-10 15:54:10 -05:00
EvilSeph
68c89fcac9 Fixed enchanting in Creative. Fixes BUKKIT-1119 2012-03-10 15:52:56 -05:00
feildmaster
77ef051095 [Bleeding] Added new target events. Fixes BUKKIT-935 2012-03-10 02:08:33 -05:00
feildmaster
a967d6e371 Added PathfinderGoalTarget, PathfinderGoalArrowAttack, PathfinderGoalMeleeAttack for diff visibility. 2012-03-10 02:07:23 -05:00
EvilSeph
08bd33a3ed Made entering an end portal from The End move the player to their bed spawn if it exists. Fixes BUKKIT-1061 2012-03-10 01:52:45 -05:00
EvilSeph
6f40a22e16 Made feeding wolves fire EntityRegainHealth events. Fixes BUKKIT-1111 2012-03-09 22:45:26 -05:00
EvilSeph
fce3386aa0 Added EntityTame event. Fixes BUKKIT-1109 2012-03-09 22:26:21 -05:00
EvilSeph
e625999f24 Added EntityWolf for diff visibility. 2012-03-09 22:26:21 -05:00
Nathan Adams
36406afa6b Re-re-fixed block transmutation 2012-03-10 03:18:04 +00:00
Nathan Adams
cf9d00a71a Re-fixed block transmutation 2012-03-10 03:12:39 +00:00
EvilSeph
848344250d Fixed sheep not firing events when eating grass. Fixes BUKKIT-1104 2012-03-09 14:36:21 -05:00
EvilSeph
9b5a4d68b9 Added PathfinderGoalEatTile for diff visibility. 2012-03-09 14:25:44 -05:00
EvilSeph
c4b4afa14d Fixed being unable to use water in The End. Fixes BUKKIT-1002 2012-03-09 13:35:04 -05:00
EvilSeph
ec2713b256 Added WorldProviderTheEnd for diff visibility. 2012-03-09 13:34:27 -05:00
EvilSeph
d1dd96f560 Made Chunk.getEntities() account for the world height increase. Fixes BUKKIT-1059 2012-03-09 13:09:15 -05:00
EvilSeph
45cf927446 (Re)restricted the nether to 128 world height. Fixes BUKKIT-976 2012-03-09 12:08:59 -05:00
SpaceManiac
a602d5c8c1 [Bleeding] Implemented getting the hostname a player used to log in. Addresses BUKKIT-984 2012-03-09 11:46:06 -05:00
Mike Primm
97669f8d90 [Bleeding] Add updated interfaces for custom chunk generation. Addresses BUKKIT-874 2012-03-09 11:46:06 -05:00
Mike Primm
796a9ba8fd Add vanilla ChunkSection.java from mc-dev for diff visibility. 2012-03-09 01:10:29 -05:00
EvilSeph
cbdcb44a11 Made zombie invasions fire CreatureSpawn event. Fixes BUKKIT-1090 2012-03-08 22:12:54 -05:00
EvilSeph
ec555a71e3 Added VillageSiege for diff visibility. 2012-03-08 22:08:37 -05:00
EvilSeph
ecb00bba85 Made iron golems fire CreatureSpawn event. Fixes BUKKIT-1089 2012-03-08 21:57:46 -05:00
EvilSeph
f5ce8627c6 Added Village for diff visibility. 2012-03-08 21:54:29 -05:00
EvilSeph
43a00954f5 Made PlayerPortalEvent fire when leaving The End. Fixes BUKKIT-478 2012-03-08 19:50:01 -05:00
EvilSeph
f26fbc3bf3 Fixed EnderPearls not being limited to the world they were used in. Fixes BUKKIT-658 2012-03-08 19:31:10 -05:00
EvilSeph
8ecdfe9eed Added missing filters to addEntity. Fixes BUKKIT-794 2012-03-08 18:09:32 -05:00
Mike Primm
1e06e150b6 [Bleeding] Only do unload-all on tick when last player leaves. Fixes BUKKIT-1060 2012-03-08 16:27:01 -05:00
aPunch
0ba2d285f0 [Bleeding] Made Iron Golems and Ocelots throw EntityDeathEvent. This fixes BUKKIT-1010. 2012-03-08 02:17:46 -05:00
aPunch
1c641ed982 Added EntityIronGolem and EntityOcelot for diff visibility. 2012-03-08 02:14:41 -05:00
Mike Primm
a029f32ccd [Bleeding] Add APIs for editing biome data, fix existing code to use persistent biome data. Addresses BUKKIT-1075 2012-03-08 01:53:06 -05:00
rmichela
b5e92871eb [Bleeding] Added ConversationAbandonedEvent and supporting infrastructure. Whenever a conversation exits, the ConversationAbandonedEvent is triggered with details about how the conversation ended and what, if anything caused it to end. Fixes BUKKIT-986 2012-03-08 01:29:49 -05:00
EvilSeph
7a8ef4f6a4 Extremely hackish fix for the entity interactivity issue. Fixes BUKKIT-960 2012-03-07 23:51:55 -05:00
EvilSeph
b5af5adc7e Fixed the dreaded GSOD crash. Fixes BUKKIT-1040 2012-03-07 22:07:37 -05:00
Tahg
2ff8a8749f Fixed copy error in DoubleChest's inventory 2012-03-05 15:28:59 -05:00
Eric Stokes
2feb2ea124 Fix worlds loading improperly. Fixes BUKKIT-991
This patch fixes an incorrect path being passed to the WorldLoaderListener. It expects the world container, then checks convertable on the name.
2012-03-03 21:04:31 -05:00
Tahg
4ac2b08320 Added missing null check for enchantments. Fixes BUKKIT-897 2012-03-03 05:59:40 -05:00
Nathan Adams
90fae3b579 Fixed leaf decay issue - this fixes BUKKIT-948 and BUKKIT-871 2012-03-03 10:15:26 +00:00
Wesley Wolfe
c6273810a1 [Bleeding] Fixed crafting enchanted items, fixes BUKKIT-602 2012-03-02 21:10:39 -05:00
Tahg
2d5263bfe5 recover from converter issue FIXES BUKKIT-890 2012-03-02 20:59:24 -05:00
Nathan Adams
ec35500c63 Implemented Villager API for getting/setting Profession. This adds BUKKIT-887 2012-03-03 01:58:40 +00:00
Nathan Adams
20c8ae59fc Slightly changed the Auto Updater error for when it can't find the current version 2012-03-03 01:22:43 +00:00
Nathan Adams
74220205f0 Fixed typo in help.yml header - this fixes BUKKIT-945. Thanks to a PR by turt2live 2012-03-03 00:52:05 +00:00
Nathan Adams
974ff6cb8a ... Comments! 2012-03-02 20:13:53 +00:00
Nathan Adams
61fb069c61 Fixed fatal crashes when there's a block at maxheight at spawn - this fixes BUKKIT-922. 2012-03-02 20:12:53 +00:00
Nathan Adams
ede443234e Minor optimization getting chest inventories 2012-03-02 20:05:23 +00:00
Nathan Adams
88149dc439 Fixed chest.getInventory for double chests, thanks to Acrobot. This fixes BUKKIT-901 2012-03-02 20:03:21 +00:00
Nathan Adams
8016bf2dd0 Fixed punching out fire in creative - this fixes BUKKIT-914, thanks to md-5 2012-03-02 19:56:03 +00:00
Travis Watkins
4ac8d68c39 Fixed porting issue in World. Now uses correct variable names to add chunks for growth. This fixes BUKKIT-934 2012-03-02 14:34:31 -05:00
Nathan Adams
a42e710bbc Updated from 1.2.2 to 1.2.3. This fixes BUKKIT-943 2012-03-02 19:31:06 +00:00
Tahg
cb669f72a0 Fixed porting issue with SpawnerCreature. Fixes BUKKIT-921 2012-03-02 11:12:47 -05:00
md_5
5198f2efb4 Allow the new jungle tree type to be grown both as a single sapling and as a group of 4. Fixes BUKKIT-886 2012-03-02 13:32:46 +00:00
Nathan Adams
94d4d68211 Convert contained worlds to Anvil (thanks to Amaranth) 2012-03-02 13:17:49 +00:00
Mike Primm
c51c895cd8 Implemented snapshot support for 1.2. 2012-03-02 00:47:21 -05:00
Tahg
eddefa6c50 Preserve data if possible when dropping Items from entities. Partial solution for BUKKIT-15 2012-03-01 23:02:59 -05:00
EvilSeph
bcf979b2a6 Fixed hunger not behaving correctly. Addresses BUKKIT-907 2012-03-01 22:47:33 -05:00
Tahg
2510af0d1a Fix porting issue in World.mayPlace Fixes BUKKIT-915 2012-03-01 21:26:21 -05:00
Mike Primm
82f2a2e773 World height related fixes - 128 -> 256. Addresses BUKKIT-889 2012-03-01 20:13:28 -05:00
Nathan Adams
efc9ced128 Fixed sending maxPlayers at initial login 2012-03-01 18:41:20 +00:00
Nathan Adams
f1f9802ded Implemented new 1.2 entities - this fixes BUKKIT-872 and BUKKIT-885 2012-03-01 18:03:14 +00:00
Tahg
5108569383 Revert filtering by dynamic block range 2012-03-01 12:17:24 -05:00
Nathan Adams
0e7b9834f9 Potentially fixed crash when building at max world height 2012-03-01 17:07:02 +00:00
Nathan Adams
eb934c760d Made the auto-update-checker suggest channels to server administrators if they're upgrading past their preferred channel. 2012-03-01 16:04:18 +00:00
Nathan Adams
a5be079797 Fixed compile issues with StructureGrowDelegate not implementing the new isEmpty method 2012-03-01 15:38:34 +00:00
Nathan Adams
6f1fecbd31 Fixed cast issues when passing delegates to world generators, and WorldGenMegaTree method exception. This fixes BUKKIT-866, and references BUKKIT-868.
Also bumped version to 1.2.2-R0.1-SNAPSHOT to match Bukkit.
2012-03-01 15:35:12 +00:00
Nathan Adams
aa3678a783 Fixed NoSuchMethodError in WorldGenGroundBush 2012-03-01 15:10:06 +00:00
Nathan Adams
543c4879fe Updated CraftBukkit to 1.2 2012-03-01 14:38:31 +00:00
Nathan Adams
a726f6de3e Potentially fixed inventory issues. This (should) fix issue BUKKIT-860 2012-03-01 13:35:36 +00:00
EvilSeph
a53afd313e We build for 1.5. 2012-03-01 04:48:04 -05:00
rmichela
1161de3f63 [Bleeding] Added Conversations API. Addresses BUKKIT-864 2012-03-01 04:33:59 -05:00
rmichela
818a61040e [Bleeding] Added Help API. Addresses BUKKIT-863 2012-03-01 04:33:58 -05:00
feildmaster
c73adc9533 Fixed AchievementTest.java 2012-03-01 01:01:16 -05:00
Erik Broes
33ba9f0a2f Updated to rename revision 02 2012-03-01 01:12:41 +00:00
Celtic Minstrel
8524ff8ef7 Fix for Java 1.5 2012-02-29 15:37:35 -05:00
Celtic Minstrel
0842bab48b [Bleeding] Implementation of inventory framework. Addresses BUKKIT-856
See the corresponding Bukkit commit for details.

Implementation details:
- Any packets that include an itemstack will send air stacks as null; maybe this will even eliminate the client crash that occurs if the client receives an air stack
- Better handling of null itemstacks in general (ie less converting them to air stacks)
- Inventory.setContents() can now take an array smaller than the inventory without error
- Player.updateInventory() should now correctly update the result slot in a crafting inventory

Some small credit goes to Afforess (initial implementation of openInventory() methods) and Drakia (initial implementation of InventoryOpenEvent and InventoryCloseEvent).
2012-02-29 15:19:07 -05:00
Celtic Minstrel
10e593649c Imported from mc-dev:
- TileEntity
- Container
- ContainerFurnace
- ContainerDispenser
- ContainerChest
- ContainerEnchantTableSubcontainer
- ContainerEnchantTableInventory
- ContainerBrewingStand
2012-02-29 15:13:08 -05:00
Celtic Minstrel
d20091e64c Implementation of richer playEffect methods. Addresses BUKKIT-857 2012-02-29 14:59:27 -05:00
ZNickq
bf01e93ab6 Added EntityTargetEvent for Experience Orbs, happens when it starts moving towards a human entity! Addresses BUKKIT-820 2012-02-29 14:45:18 -05:00
James Clarke
cd90cec48c Implemented TeleportCause enums. Addresses BUKKIT-265 2012-02-29 14:23:12 -05:00
TomyLobo
53e4a034f4 Moved getVehicle, leaveVehicle and isInsideVehicle from CraftLivingEntity to CraftEntity. Addresses BUKKIT-811 2012-02-29 13:30:46 -05:00
rmichela
1394926e53 [Bleeding] Implement Metadata framework for Entities, Blocks, and Worlds 2012-02-29 19:21:25 +01:00
Wesley Wolfe
403f874784 [Bleeding] Fix generics. Addresses BUKKIT-844 2012-02-29 12:15:31 -05:00
Travis Watkins
257fd16242 Added plugin-profiling setting to bukkit.yml. 2012-02-29 10:00:49 -05:00
TomyLobo
92dfb2500b Adjusted CraftBukkit to work with the entity event convenience patch in Bukkit. Addresses BUKKIT-809 2012-02-29 00:12:26 -05:00
TomyLobo
dcf016822d Fixed sneaking eye height. Addresses BUKKIT-808 2012-02-27 20:16:25 -05:00
Olof Larsson
f70f99d1a0 Fixed CraftOfflinePlayer.getLastPlayed() returning the wrong result. Addresses BUKKIT-847 2012-02-27 20:16:11 -05:00
EdGruberman
397f25aa24 Added plugin loading log entry 2012-02-26 15:46:07 -05:00
Sam Wilson
cc2e721ffc Implement PortalCreateEvent reason codes. Addresses BUKKIT-833
This commit modifies the construction of PortalCreateEvents to specify
a reason for the event.  Reasons are either:
1. FIRE: the portal is being created because a player set fire to an
obsidian frame.
2. DESTINATION: the portal is being created as a destination for an existing portal.
2012-02-26 15:20:09 -05:00
TomyLobo
f2d9d4174f CraftSign changes. Addresses BUKKIT-824
- Removed the useless world field.
- Made it so changes to a CraftSign (which is a Block*State*) no longer reflect into the world without calling sign.update().
2012-02-26 12:15:00 -05:00
Celtic Minstrel
57bd84510f [Bleeding] Made dragon eggs trigger BlockFromTo events when they teleport. Addresses BUKKIT-828 2012-02-25 19:17:12 -05:00
EvilSeph
5901a74565 Fixed changes made to PlayerCommandPreprocess events having no effect. Fixes BUKKIT-376 2012-02-25 16:53:54 -05:00
Celtic Minstrel
d6c6b18ba9 Fix for shaped recipes stripping enchantments from the result. Fixes BUKKIT-602 2012-02-25 16:43:16 -05:00
steffen
2887f99fe5 Fixed EntityArrow just to use the PVP setting if the destination is a
Player. Fixes BUKKIT-803
2012-02-24 16:58:39 -05:00
Wesley Wolfe
078e2511a5 [Bleeding] Override not applicable 2012-02-23 21:33:51 -05:00
Zeerix
7a49e29b55 [Bleeding] Undo changes to the tree WorldGenerators.
- All StructureGrowEvent handling for these is in BlockSapling now, using a BlockChangeDelegate to collect the data.
- Moved StructureGrowDelegate into a separate class
2012-02-23 18:27:23 -05:00
Feildmaster
796d4a8a74 [Bleeding] Fixed setTotalExp, any experience update bugs and removed Deprecated Methods. Fixes BUKKIT-798 and fixes BUKKIT-797 2012-02-23 18:27:22 -05:00
Feildmaster
d7f6d2d929 [Bleeding] Use player.getItemInHand(), instead of a new ItemStack. Addresses BUKKIT-767 2012-02-23 18:27:22 -05:00
aPunch
036b5c3956 [Bleeding] Added launchProjectile.
Use launchProjectile in place of individual throwSnowball, throwEgg, and shootArrow methods.
2012-02-23 15:07:41 -05:00
Celtic Minstrel
af51313ffb [Bleeding] Added EntityType to replace CreatureType. 2012-02-22 22:06:29 -05:00
Feildmaster
7792156fb2 [Bleeding] Added BlockGrowEvent. Addresses BUKKIT-104 2012-02-22 21:46:45 -05:00
Feildmaster
847e1c62c5 [Bleeding] Added BlockCrops, BlockReed, BlockStem, BlockNetherWart for diff visibility. 2012-02-22 21:46:44 -05:00
Celtic Minstrel
326091c130 [Bleeding] Recipe API improvements and fixes. Addresses BUKKIT-738 and BUKKIT-624
Add a recipe iterator to make it possible to retrieve and remove recipes (BUKKIT-738), and updated the recipe classes to not clip the data to 127 (BUKKIT-624)
2012-02-21 04:24:24 -05:00
Celtic Minstrel
84ecdb5439 Imported from mc-dev:
- ShapedRecipes
- ShapelessRecipes
- CraftingRecipe
- FurnaceRecipes
2012-02-20 16:39:33 -05:00
Wesley Wolfe
39048be430 [Bleeding] Cleanup clone method. 2012-02-20 05:49:48 -05:00
EvilSeph
4d89a21a25 Removed EndermanPickup/Place events, replaced with EntityChangeBlock event. 2012-02-19 04:16:46 -05:00
Feildmaster
1922672f14 [Bleeding] Fire EntityDamageByEntityEvent for EnderCrystal. Fixes BUKKIT-776 2012-02-19 01:06:38 -05:00
Feildmaster
b06719dd03 [Bleeding] Moved projectile EntityDamageByEntityEvent's to event factory. Addresses BUKKIT-775 2012-02-19 01:05:11 -05:00
Mike Primm
5316c43a82 Add getEntitesByClass(Class<T>), getEntitiesByClasses(Class<?>...), deprecate getEntitiesByClass(Class<T>...) 2012-02-18 16:34:53 -05:00
Erik Broes
137880b727 Deprecation cleanup. 2012-02-18 13:06:12 -05:00
Nathan Adams
3b634b14f6 Fixed NPE when running a custom build of CraftBukkit. This fixes issue #BUKKIT-765 2012-02-18 14:06:21 +00:00
Nathan Adams
d057ee1e07 Don't print stacktraces on DLB fetching errors. And because I forgot last commit; this adds BUKKIT-760 2012-02-17 00:09:56 +00:00
Nathan Adams
236cfed616 Added a built-in update checker. See http://wiki.bukkit.org/Bukkit.yml#auto-updater for new bukkit.yml options. 2012-02-16 22:32:17 +00:00
EvilSeph
64264f61b8 Revert "Remove tile entities when a block is removed."
This reverts commit 1d4347fbaf3c891580a9ee40a8e9632c992f8b08.
2012-02-14 02:37:47 -05:00
Mushroom Hostage
7076ef9de6 Use createNMSItemStack on CraftingManager recipe registration. Fixes BUKKIT-602 2012-02-13 00:44:58 -05:00
EvilSeph
1c28c946fa Fixed sprinting while breaking a painting edge case. Fixes BUKKIT-740 2012-02-13 00:40:32 -05:00
Aidan Matzko
9b10970f6b [Bleeding] Fixed EntityChangeBlock event reporting incorrect information
for Enderman block placing.
2012-02-10 21:29:21 -05:00
EvilSeph
da1aead88a Made splash options abide by PVP settings. Fixes BUKKIT-542 2012-02-10 19:23:22 -05:00
fullwall
f52665348e [Bleeding] Added Potions API. Fixes BUKKIT-389 2012-02-10 17:41:13 -05:00
EvilSeph
63b9ed9ab4 Added configurable animal and monster ticks per spawn setting. 2012-02-10 12:16:06 -05: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
EvilSeph
56741552e5 Made damaging EntityEnderCrystals fire EntityDamageByEntity. Fixes BUKKIT-724 2012-02-09 23:31:10 -05:00
Feildmaster
391ac23c9a [Bleeding] Fire EntityDamageByEntityEvent's for EnderDragon being hit by Projectiles. 2012-02-09 22:20:44 -05:00
Travis Watkins
7ff8c17568 [Bleeding] Make sure we don't keep stale references to vanished players. 2012-02-09 22:03:43 -05:00
Evenprime
d8ca2401ff [Bleeding] Send new player location after teleports only to nearby players. 2012-02-09 21:30:52 -05:00
Feildmaster
80bae060c6 [Bleeding] Use event values for damage. 2012-02-09 20:30:02 -05:00
Feildmaster
fa6fd24f2a [Bleeding] Handle EntityHuman attack a bit more properly. 2012-02-09 20:17:03 -05:00
Feildmaster
8ecfca47de [Bleeding] Fixed EnderDragon suffocation. 2012-02-09 20:12:38 -05:00
Aidan Matzko
6dda89d873 [Bleeding] Deprecate Enderman events in favor of EntityChangeBlock 2012-02-09 11:36:04 -05:00
Tahg
10ab7b96ed Made steps fire a BlockPlace event. Fixes BUKKIT-394 2012-02-09 11:25:53 -05:00
EvilSeph
6abd178ea7 Added ItemStep for diff visibility. 2012-02-09 11:21:35 -05:00
craftycreeper
ad6bab8c6f Implemented EntityTeleportEvent. Fixes BUKKIT-366 2012-02-09 03:46:42 -05:00
EvilSeph
be0ecf4670 Pass EntityEnderCrystal to EntityExplode event. 2012-02-08 21:54:22 -05:00
EvilSeph
39002fd39f Added EntityEnderCrystal for diff visibility. 2012-02-08 20:01:46 -05:00
EvilSeph
ae333ded91 Made flaming arrows respect PVP settings. Fixes BUKKIT-541 2012-02-08 19:06:09 -05:00
EvilSeph
879a87b1e0 Fixed Pumpkins being reported as AIR in BlockPlace event when building snowmen. Fixes BUKKIT-697 2012-02-08 18:30:59 -05:00
EvilSeph
6d67456970 Made BlockPumpkin report an appropriate SpawnReason.BUILD_SNOWMAN when a snowman is spawned. 2012-02-08 18:28:41 -05:00
EvilSeph
8e7e073523 Made Ender Dragons fire EntityRegainHealth events when getting healed by Ender Crystals. 2012-02-08 10:55:15 -05:00
EvilSeph
0a52fd372a Fixed VehicleBlockCollisionEvent returning the wrong block. Fixes BUKKIT-396 2012-02-08 06:18:04 -05:00
EvilSeph
497a0e247b Made crafted maps fire MapInitializeEvent. Fixes BUKKIT-143 2012-02-08 05:45:55 -05:00
EvilSeph
274e8a141a Made flaming arrows fire EntityCombustByEntity events. Fixes BUKKIT-707 2012-02-08 03:27:34 -05:00
EvilSeph
4d563342ba Added Spawner Egg support to CreatureSpawnEvent. 2012-02-05 02:11:21 -05:00
EvilSeph
54e45b7d66 Prevent the Vanish API from sending unnecessary packets. 2012-02-03 05:12:54 -05:00
Travis Watkins
5ae8f13fde Fixed items losing their enchantments under certain circumstances. 2012-02-03 03:39:35 -05:00
Travis Watkins
329cf29667 Added BlockFurnace for diff visibility. 2012-02-03 03:38:23 -05:00
Travis Watkins
37c8868532 [Bleeding] Implemented Vanish API.
Remove players that cannot see a player from their EntityTrackerEntry and only
send user list updates to players who can see the player they reference.
2012-02-03 03:34:03 -05:00
EvilSeph
028cbb8fe9 Removed MONSTER CreatureType. 2012-02-03 02:42:40 -05:00
Tahg
5479a2ca82 Fixed being unable to cancel TNT placement. Fixes BUKKIT-89. 2012-02-03 01:39:00 -05:00
Tahg
1884f2f763 Added BlockTNT for diff visibility. 2012-02-03 01:32:29 -05:00
Tahg
14bb771957 Allow plugins to change ID and Data during BlockPlace event.
Fixes BUKKIT-674
2012-02-03 01:14:47 -05:00
Tahg
1bb011a543 Fixed other types of 'block transmuters'. 2012-02-03 00:51:59 -05:00
Tahg
8bf770c5f9 Added debug to help with diagnosing tile entity issues in the future. 2012-02-03 00:50:35 -05:00
Tahg
2dba592dc4 Remove tile entities when a block is removed. 2012-02-03 00:45:58 -05:00
EvilSeph
8b5289d431 Fixed wrong game type being sent when a player is teleported across worlds. Fixes BUKKIT-510 2012-02-01 01:30:53 -05:00
Tahg
69e766c5f3 Fixed BlockPlace event. Fixes BUKKIT-663 2012-01-30 02:57:58 -05:00
Nathan Adams
875219e28c Fixed vanilla issue where chunks would be mislocated and corrupt. Big thanks to Wug for the fix. 2012-01-30 04:27:25 +00:00
Nathan Adams
72559fe634 Added ChunkLoader.java and ChunkRegionLoader.java for diff visibility 2012-01-30 04:20:59 +00:00
Eric Stokes
3a419481ea Added 'generate-structure' setting support and WorldCreator property.
Fixes BUKKIT-655 and BUKKIT-592
2012-01-29 13:07:44 -05:00
EvilSeph
f1a35effb0 Added useExactLoginLocation(). Closes BUKKIT-145
useExactLoginLocation() looks for settings.use-exact-login-location within bukkit.yml.

If true, we will bypass Vanilla's behaviour of checking for collisions and moving the player if needed when they login.

If false, we will continue to follow Vanilla's behaviour and move players that 'collide' with objects when they login.
2012-01-29 12:33:05 -05:00
Erik Broes
c5a4bfd291 Use OO > new method 2012-01-29 16:06:11 +01:00
Erik Broes
3173b68bbe Filter null/AIR from items dropped on death. Fixes: BUKKIT-653 2012-01-29 13:37:32 +01:00
Erik Broes
4c2f57592d Add some testing 2012-01-29 11:22:11 +01:00
EvilSeph
1ea0037f49 Fixed maps crashing/disconnecting the client under certain circumstances. 2012-01-29 01:15:55 -05:00
Tahg
9b635aacc4 Moved BlockPlace event. 2012-01-28 03:09:48 -05:00
EvilSeph
7bdfea4820 Reverted onPlace changes. 2012-01-28 03:09:48 -05:00
Erik Broes
9d90839723 Put statement inside CraftBukkit block 2012-01-28 09:04:16 +01:00
EvilSeph
bb730f0ee7 Cleanup. 2012-01-27 18:23:58 -05:00
Erik Broes
38ad0ea5fd Prevent (Entity) null to be added to the entity list. 2012-01-27 19:42:14 +01:00
Erik Broes
16d3b705c5 Fix 'Block Transmute'. Bug where you could change the data of a block 'on demand'. 2012-01-27 19:29:33 +01:00
EvilSeph
98fd1a3606 Let's be a little less tricky to the client. Relates to BUKKIT-637 2012-01-26 20:35:20 -05:00
EvilSeph
5900268e7a Fixed the behaviour of fluid blocks. Fixes BUKKIT-629 2012-01-26 20:04:31 -05:00
EvilSeph
5bcb23502e Trick the client instead of modifying the world. Fixes BUKKIT-637 2012-01-26 19:36:27 -05:00
EvilSeph
b987d1b052 Really loosened the throttles strictness this time. 2012-01-24 23:43:23 -05:00
EvilSeph
3e0a26f270 Fixed redstone torches not updating indirect neighbors. Fixes BUKKIT-477 2012-01-24 23:38:15 -05:00
Tahg
989acd0afb Fix invalid data in pistons 2012-01-24 21:42:45 -05:00
EvilSeph
b416dd337f Loosen throttle strictness. 2012-01-24 18:45:30 -05:00
Tahg
39935eb3f2 Fix diodes not updating indirect neighbors. 2012-01-24 18:03:34 -05:00
Erik Broes
3b46222c54 Persist locking of an animal's age to disk 2012-01-24 22:06:37 +01:00
Mike Primm
94231f1ecf [Bleeding] Implemented EnchantmentTable API. 2012-01-24 06:15:34 -05:00
Tahg
c7716e1de4 [Bleeding] Audit of onPlace methods, Moved to postPlace as appropriate.
Closes BUKKIT-89
2012-01-24 05:18:23 -05:00
Sam Wilson
e92bdab57a Fixed CraftLivingEntity.damage when the entity is an EntityComplex.
Fixes BUKKIT-589: if you call damage on an instance of EnderDragon, no damage
is done.

Reason for bug: damage calls Entity.damageEntity.  But EntityComplex
overrides damageEntity to do nothing.

Fix: CraftComplexLiving should call EntityComplex.e instead of
Entity.damageEntity.  e is the method that actually does damage to an
instance of EntityComplex.
2012-01-24 04:10:47 -05:00
Zeerix
872dad5540 [Bleeding] Implemented PotionSplashEvent. Closes BUKKIT-307 2012-01-24 02:12:41 -05:00
Travis Watkins
74ead3abd1 Immediately tell client a block is broken, then process the event.
In order to avoid clients seeing blocks break, reappear, then break again due
to lag caused by plugins taking too long to process the BlockBreakEvent we
immediately tell the client the block is air then process the event. If the
event ends up being cancelled the client will get another packet telling them
the block still exists.
2012-01-23 23:59:36 -05:00
Travis Watkins
cf521b5a5c Only truncate player name when sending spawn packet. 2012-01-23 23:32:21 -05:00
EvilSeph
97ce5c4479 Implemented PlayerShearEntityEvent in EntityMushroomCow.
Due to the Vanilla client overzealously predicting things, shearing produces
client-side artifacts. See BUKKIT-611 for more information.
2012-01-23 22:41:34 -05:00
Aidan Matzko
93bc8ecd93 [Bleeding] Implemented Sheep, Shear and EntityChangeBlock API. Thanks
tips48! Closes BUKKIT-512
2012-01-23 18:58:37 -05:00
Mike Primm
229337bc8f Use BlockFadeEvents to signal fire blocks burning out 2012-01-22 18:20:01 +01:00
EvilSeph
51b29eff06 Removed accidentally committed change. Needs more investigating 2012-01-21 18:52:32 -05:00
EvilSeph
4f02563c63 Reverted changes to getItem(). Will be reimplemented after RB. 2012-01-20 14:52:32 -05:00
EvilSeph
1bbeec1f75 Accounted for NMS getItem() returning null in recent commit. 2012-01-20 11:46:24 -05:00
Nathan Adams
85ab95cec7 Nullcheck EntityItem's ItemStack where required. This fixes BUKKIT-552 2012-01-20 16:40:27 +00:00
Nathan Adams
51a056ecd5 Disallow colour names in offline-mode. This fixes BUKKIT-439. Thanks to cainfool for the discovery. 2012-01-20 16:03:15 +00:00
EvilSeph
76d7a1ce1d Properly handle null and air items. Fixes BUKKIT-435 and BUKKIT-550
We'll probably want to implement an ItemStack.EMPTY and return that
instead of NULL in the near future.
2012-01-20 05:40:10 -05:00
Tahg
4b0f819af2 Updated timing code for new event system 2012-01-19 18:50:39 -05:00
Nathan Adams
28fcbec3b1 Prevent re-use of internal world dimension IDs. This fixes BUKKIT-448. Thanks to snowleo for the PR. 2012-01-19 16:10:52 +00:00
Nathan Adams
b0f29b1755 Throw PlayerLevelChangeEvent and PlayerExpChangeEvent events. Thanks to feildmaster for the PR. 2012-01-19 16:07:18 +00:00
Nathan Adams
1f1c9c0d4b Correctly take in ChatColor length when limiting player list size. This should fix BUKKIT-571 2012-01-19 15:10:00 +00:00
Erik Broes
737cf284e3 Fix giving wrong arguments to callEntityDamageEvent. Forgot to update after changing the signature :( 2012-01-18 08:16:38 +01:00
Erik Broes
112e0816b9 Actually close the inventory on a *cross*-world teleport. 2012-01-17 22:50:18 +01:00
Erik Broes
f5f268f939 Implement Player.setBedSpawnLocation(Location). Thanks md_5 2012-01-17 22:35:31 +01:00
Mike Primm
b22e727cda [Bleeding] Make BaseBiome to Biome mapping faster, detect missing mapping in future updates 2012-01-17 19:51:33 +01:00
Zeerix
bcf6440bc4 [Bleeding] Implement EntityShootBowEvent. Thanks Zeerix. 2012-01-17 19:51:06 +01:00
Erik Broes
edbb7358fc [Bleeding] Implementation of the brewing stand. 2012-01-17 19:50:29 +01:00
Tahg
387d7319bc [Bleeding] Prevent BlockSnow from recursively calling a physics update. 2012-01-17 19:50:10 +01:00
Erik Broes
1d4a9e1df5 [Bleeding] Make sure to close any open inventory windows before teleporting. Thanks md_5. 2012-01-17 19:49:52 +01:00
Zeerix
1d04305cea [Bleeding] Added event calls for healing and harming by potions 2012-01-17 19:49:11 +01:00
Zeerix
2cc70bb055 [Bleeding] Implemented Block.breakNaturally and Block.getDrops 2012-01-17 19:48:44 +01:00
Mike Primm
fb1cfea89e [Bleeding] Implemented Block.getLightFromSky() and Block.getLightFromBlocks() 2012-01-17 19:45:23 +01:00
Mike Primm
f7585e552d [Bleeding] Implemented World.getEntitiesByClass(Class<T>... classes) 2012-01-17 19:44:35 +01:00
Erik Broes
29096577b6 [Bleeding] Implement animal breeding API changes. 2012-01-17 19:44:11 +01:00
Nathan Adams
520cb5aa5b Fixed bug involving pistons and powered rails. This fixes BUKKIT-517. 2012-01-15 20:50:00 +00:00
Nathan Adams
864397d6c8 Added MinecartTrackLogic.java and BlockMinecartTrack.java for diff visibility 2012-01-15 19:05:36 +00:00
Nathan Adams
d3b4375d31 Fixed LongHashset incorrectly using read lock for popAll, and made it use write lock. This fixes BUKKIT-509 2012-01-15 18:49:16 +00:00
Nathan Adams
95a72d1c59 Implemented World.getWorldType 2012-01-15 17:44:15 +00:00
Nathan Adams
65f30fd99d Dragons now throw events when creating portals 2012-01-15 12:01:11 +00:00
Erik Broes
233de0de2c Some efficiency updates to hit-mechanics. Thanks mintplant for the PR. 2012-01-15 12:54:58 +01:00
Nathan Adams
a753ee587d Implemented allowFlight methods. Thanks to Qala for the PR. 2012-01-15 10:56:09 +00:00
Erik Broes
6d49b11338 Made World.playEffect a bit more efficient. Thanks mintplant for the PR. 2012-01-15 11:42:40 +01:00
Erik Broes
9c1534336c Fix broadcasting to people without permission. Fixes BUKKIT-464. Thanks grandwazir for the PR. 2012-01-15 11:32:00 +01:00
Erik Broes
d7cec38c38 Adding the option to suppress overload warnings as a bukkit.yml option. Thanks oloflarsson for the PR. 2012-01-15 11:11:41 +01:00
Nathan Adams
25050e38eb Disallow people spawning invalid entities using monster eggs. Thanks to md-5 for the PR. 2012-01-15 10:01:49 +00:00
Nathan Adams
390a79e098 Added ItemMonsterEgg.java for diff visibility 2012-01-15 10:01:42 +00: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
6495eee0c9 Throw an EntityBlockFormEvent for snowmen. Thanks to feildmaster. 2012-01-15 09:13:30 +00:00
Nathan Adams
93b3c96126 Don't allow explosions at the top of the world to wrap around. This fixes BUKKIT-232, thanks to wilsonsd for the PR. 2012-01-15 07:29:48 +00:00
Nathan Adams
23adb0d02f Minor optimization in BlockGrass by only checking light once instead of twice. Thanks to oloflarsson for the PR. 2012-01-15 05:58:56 +00:00
Nathan Adams
b369805590 Don't allow players with modded clients to send empty (0 char) chat messages. Thanks to a PR by robin0van0der0v 2012-01-15 05:52:46 +00:00
Nathan Adams
dfbcd36ab7 Fixed a further exploit with players attacking more things that they shouldn't. 2012-01-14 18:12:59 +00:00
Nathan Adams
2ab160e484 Implemented new PlayerDeathEvent methods for exp setting 2012-01-14 18:08:27 +00:00
Nathan Adams
548ccabe2f Fixed .createWorld not respecting container folder 100%. Thanks to plleg for the PR. 2012-01-14 17:50:31 +00:00
Nathan Adams
366d310186 Added .equals and .hashcode to CraftBlockState 2012-01-14 17:47:15 +00:00
Nathan Adams
657f458ba7 Player.setPlayerListName no longer counts colors towards the 16-char limit. Thanks to an (unfortunately old) PR by ZachBora. 2012-01-14 17:42:18 +00:00
Nathan Adams
d73c29aad7 Implemented entity.playEffect. Thanks to main-- 2012-01-14 17:36:47 +00:00
Nathan Adams
743c623d53 Modified ConsoleReader to use System.in instead of FileDescriptor.in. Big thanks to escortkeel for the (unfortunately very old) PR. 2012-01-14 17:12:45 +00:00
Feildmaster
6cc56b8c2c Added ItemDespawnEvent 2012-01-14 17:03:38 +00:00
Mike Primm
cc05bea457 Prevent unbounded TickList growth on busy servers (>1000 events/tick). This completes another Bleeding request. 2012-01-14 16:47:57 +00:00
Nathan Adams
52c526f313 Small optimization in EntityPlayer by caching the hashcode. Thanks to a very old PR by Belphemur. In addition, changed and slightly improved the hashcode formula for entities 2012-01-14 15:01:44 +00:00
Nathan Adams
77a12d4dce Correct casting for creature target typechecking 2012-01-14 14:49:41 +00:00
Nathan Adams
e6bb19f63a Fixed any chance of creatures .getTarget throwing a class cast exception - thanks to an old PR by garbagemule! 2012-01-14 14:45:56 +00:00
Nathan Adams
3d31c27864 Fixed players attempting to attack item entities - This fixes BUKKIT-341 2012-01-14 13:27:15 +00:00
Nathan Adams
d5438c30b9 Fixed block.getBiome returning null in new 1.1 biomes. This fixes BUKKIT-496 2012-01-14 13:14:14 +00:00
Nathan Adams
9da730c8e1 Made Mycel blocks throw BlockFade and BlockSpread events. This fixes BUKKIT-488. Thanks to tips48 for the pull request. 2012-01-14 12:56:54 +00:00
Nathan Adams
64ac337d4c Added BlockMycel.java for diff visibility 2012-01-14 12:54:20 +00:00
Nathan Adams
3ee8a2372c Additional commit to fix #BUKKIT-24 2012-01-14 12:46:23 +00:00
Nathan Adams
84b0310ae8 Fixed items retaining enchantment visual effects after all enchantments are lost
Issue #BUKKIT-24 - Upon removing enchantments, visual effect on item does not go away
2012-01-14 12:29:11 +00:00
Nathan Adams
0a2a38c25b Added NBTTagCompound.java for diff visiblity 2012-01-14 12:27:38 +00:00
Nathan Adams
9ac06e7720 Fixed informing players of supported Plugin Channels 2012-01-14 01:46:22 +00:00
md-5
4dc2065f54 Undo commit cc60920 to allow for proper integration with the new Bukkit enum values 2012-01-14 11:14:43 +11:00
Tahg
24fe96ada8 Add fix for new login protocol 2012-01-13 10:20:30 -05:00
Nathan Adams
b4f215e913 Implemented new Plugin Message API - see http://dinnerbone.com/blog/2012/01/13/minecraft-plugin-channels-messaging/ 2012-01-13 08:53:39 +00:00
md-5
d8052a63ed Fix NPE involving WorldTypes when using CraftServer.createWorld(WorldCreator creator) 2012-01-13 07:33:57 +01:00
Nathan Adams
8aaa528763 Fixed version in startup message 2012-01-12 22:33:31 +00:00
Erik Broes
7219d4dd85 Updated to Minecraft 1.1 2012-01-12 23:10:13 +01:00
Erik Broes
7d0e739f96 Fix balance of CraftBukkit start/end. 2012-01-12 19:43:34 +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
EvilSeph
42e473783e Fixed our handling of network packets. 2012-01-10 23:21:38 -05:00
EvilSeph
194f54a90e Revert "Improved our handling of player interactions."
This reverts commit b4d325e0efe44bc74e69371fb11e7c3e1124b2a3.
2012-01-10 22:19:23 -05:00
EvilSeph
bff4d0f696 Improved our handling of player interactions. 2012-01-10 01:17:19 -05:00
Andrew Ardill
67dbe71bd9 Fix calling CombustEvent caused by enchantment
The CombustEvent created when an Entity attacks with a fire enchanted weapon
was never raised through the plugin manager. Thanks for pointing it out
EdGruberman!
2012-01-09 10:46:07 +11:00
EvilSeph
93aed40c4f Fixed filled bottles not appearing in inventory. Fixes BUKKIT-325. Thanks
md-5!
2012-01-07 22:06:41 -05:00
EvilSeph
13470ccf79 Inform the client when break events are cancelled. Thanks mrapple! 2012-01-07 20:26:23 -05:00
EvilSeph
86fef037e0 Fixed NPE in World. Fixes BUKKIT-306. Thanks Evenprime! 2012-01-07 19:12:38 -05:00
Tahg
b74a69041e Fix door physics and revert to pre 1.0 behavior 2012-01-07 18:38:05 -05:00
Andrew Ardill
483a619e8a FIX: CraftServer.getOfflinePlayers was not converting set->array well.
An incorrect method was being used to convert from Set<OfflinePlayer>
to OfflinePlayer[].

Relates to BUKIT-404
2012-01-02 10:25:43 +11:00
Erik Broes
bcdad9f837 Fix snowball not recognizing int damage values properly from Craftbukkit -- Thanks Sleaker 2011-12-29 20:15:06 +01:00
Andrew Ardill
60a2d12250 CraftItemStack: Make sure this.item is not null when cloning.
Fixes BUKKIT-424
2011-12-29 22:44:58 +11:00
Andrew Ardill
5124f8f462 Test cloning of CraftItemStacks created with null nms ItemStacks 2011-12-29 22:44:58 +11:00
EvilSeph
8b735bf47a Made startup completion time actually be reported in seconds. Again. 2011-12-27 20:10:49 -05:00
EvilSeph
8b21a0eeef Disconnected means disconnected. 2011-12-27 19:57:54 -05:00
sunkid
066a95769c fixed double firing of EntityDamageByEntityEvent 2011-12-27 20:21:28 +01:00
sunkid
5adcf526ab moved firing of ProjectileHitEvent for mojang projectiles 2011-12-27 19:33:28 +01:00
Andrew Ardill
fb8a45b648 Teach CraftServer.getOfflinePlayers to also give all online players.
This method is most useful when it gives all the players who have ever
logged on to the server. Previously, it was not distinguishing between
players who had previously logged on, and were currently logged in,
and those who had previously looged on and were not currently logged in.
A distinction was made, however, between those currently logged in,
but who had not logged in previously.

This commit ensures that all players who have ever logged in (and are
listed as either logged in, or they have a player .dat file) will be
returned by the mentioned method.

Fixes BUKKIT-404
2011-12-27 16:48:09 +11:00
Erik Broes
834c420257 Update for cleanup in Bukkit 2011-12-25 15:35:12 +01:00
Tahg
81c751a8a3 Fix for water and lava removal in creative mode BUKKIT-362 2011-12-20 21:20:43 -05:00
Tahg
474b7838a6 Fix for big trees not growing BUKKIT-304 and BUKKIT-365 (thanks M D) 2011-12-20 18:02:39 -05:00
Tahg
299a0d0919 Fixed signs being editable after placement. Fix for BUKKIT-364 2011-12-20 18:02:39 -05:00
Nathan Adams
972b2087f2 Fixed bonemeal not being consumed on failed growth attempts. This fixes BUKKIT-337. Thanks to md-5 for the pull request! 2011-12-19 16:41:55 +00:00
Nathan Adams
246d07482b Fixed world.getHighestBlockYAt(x,z) returning 0 for existing but not loaded chunks. This fixes BUKKIT-327. Thanks for dredhorse for the pull request! 2011-12-19 16:30:26 +00:00
Nathan Adams
bea7b1373e Fixed vanilla->bukkit world migration for The End. This fixes BUKKIT-326. Thanks to chewi for the pull request! 2011-12-19 16:26:11 +00:00
Nathan Adams
3648fb571d Make rcon .sendMessage each write on a new line. This fixes BUKKIT-353. Thanks to ks07 for the pull req. 2011-12-19 16:22:59 +00:00
Andrew Ardill
1c6adc1587 Fix error when cloning enchanted ItemStacks.
The existing method for cloning a Bukkit ItemStack fails to correctly copy
the underlying enchantments. Fix this by overriding .clone() in
CraftItemStack, cloning the underlying nms ItemStack correctly.

Fixes BUKKIT-360
2011-12-20 00:30:54 +11:00
Andrew Ardill
acfb4f2fbe Test cloning enchanted CraftItemStacks 2011-12-20 00:25:15 +11:00
Andrew Ardill
b0ab686964 Avoid some avoidable calls, clean PluginManager accessors 2011-12-19 18:32:35 +11:00
Sam Wilson
a7744ac751 Prevent VehicleEnterEvent being sent when player exits vehicle.
Fix for BUKKIT-223.

Issue BUKKIT-223: When a player exits a minecart or boat, both a
VehicleExitEvent and a VehicleEnterEvent are fired.  Only the
VehicleExitEvent should fire.

Reason for bug: This occurs because the VehicleEnterEvent is fired in
EntityBoat.b and EntityMinecart.b *any* time a player right-clicks on
a vehicle, whether the right-click is to enter the vehicle or exit it.

Fix: By moving the creation of VehicleEnterEvents from EntityBoat.b
and EntityMinecart.b to Entity.setPassengerOf, we can create either a
VehicleEnterEvent or a VehicleExitEvent, depending on whether the
player is entering or exiting a vehicle.
2011-12-19 18:22:38 +11:00
Nathan Adams
e1586e017a ... Fixed dispensers again! 2011-12-12 21:49:35 +00:00
Nathan Adams
5412d6f5a8 Fixed crash with dispensers dispensing dispensables 2011-12-12 21:23:46 +00:00
Nathan Adams
52faa415ef Fixed clients not seeing EXP update immediately after using .setTotalExp and level methods 2011-12-12 19:44:57 +00:00
EvilSeph
bd181fa04e The dead are not meant to walk. Fixes BUKKIT-95. Thanks Evenprime! 2011-12-12 12:50:10 -05:00
Nathan Adams
b653ce3c1c Implemented (offline)player date methods 2011-12-12 17:39:52 +00:00
Nathan Adams
91ff0b059d Made OfflinePlayer and Player share the same .equals and .hashcode 2011-12-12 15:34:49 +00:00
Andrew Ardill
82965eb10f Stop converting ItemStack to nms ItemStack by hand
This should fix many issues with enchantments being lost, as the method used takes care of enchantments.
Additionally, use the new nms ItemStack constructor in places where appropriate.

Fixes (at least part of) BUKKIT-7. Need to identify any further places to fix.
2011-12-13 01:46:55 +11:00
Andrew Ardill
d34e289434 Teach nms ItemStack constructor how to take enchantments 2011-12-13 01:45:58 +11:00
EvilSeph
14754c71a2 Added missing CraftBukkit comments in previous commit. 2011-12-12 03:16:50 -05:00
EvilSeph
322330e942 Fixed players not receiving movement packets after trying to leave The End. Fixes BUKKIT-289. 2011-12-12 02:55:20 -05:00
Andrew Ardill
d7d48d8229 Teach CraftWorld.spawn how to spawn a Giant
Fixes BUKKIT-235
2011-12-12 14:36:13 +11:00
Nathan Adams
b2af70e5c7 Implemented getKiller in LivingEntity 2011-12-11 16:05:27 +00:00
Nathan Adams
1fc8092ea6 Fixed corrupt mob spawners crashing on load - this fixes BUKKIT-69, BUKKIT-144 2011-12-11 15:59:55 +00:00
EvilSeph
88d1512507 Fixed issues with Ender Pearls. This fixes BUKKIT-248 and BUKKIT-264. 2011-12-11 02:13:48 -05:00
Tahg
77c07095bd removed changes to MobSpawner behavior 2011-12-10 17:07:32 -05:00
EvilSeph
de1a32bb16 Fixed spiders not respecting the EntityDeathEvent. This fixes BUKKIT-275. 2011-12-10 15:59:07 -05:00
EvilSeph
ec59dd9173 Fixed issues in our handling of The End as per BUKKIT-11.
This also addresses BUKKIT-27.
2011-12-10 15:15:27 -05:00
EvilSeph
84a19565d4 Fixed (Bukkit multiworld) maps as described in BUKKIT-142. 2011-12-10 15:15:26 -05:00
EvilSeph
32a913a222 Linked thundering and storming. 2011-12-10 12:20:24 -05:00
Erik Broes
f7649724fe Implemented CraftServer.getAllowEnd(). Thanks codename-B! 2011-12-09 18:55:36 +01:00
Nathan Adams
d36ac82c83 Fixed NPE in ServerConfigurationManager when sometimes attempting to flee the End 2011-12-09 17:09:21 +00:00
Nathan Adams
5e43c61fad Implemented onStructureGrow event, thanks to md-5. 2011-12-09 16:11:56 +00:00
Nathan Adams
076460b419 Added ItemDye and WorldGenHugeMushroom for diff visibility 2011-12-09 16:01:37 +00:00
Andrew Ardill
d75d1660b3 Make EntityEnderDragon call the ExplosionEventi
Rather than just creating the event and not worrying any further about it.
Thanks for the heads up snowleo!
2011-12-08 10:30:20 +11:00
Andrew Ardill
a25151306c Fix NPE as described in BUKKIT-245. Thanks snowleo 2011-12-08 10:26:39 +11:00
Andrew Ardill
b08b85bd26 Teach EnderDragon how to throw EntityExplosionEvents when it breaks blocks
We also teach CraftWorld how to explode an event, taken from
Explosion.a(boolean) (the code that breaks blocks and drops them on the ground).

The EnderDragon has a flag that slows it down when it hits unbreakable blocks:
Obsidian, White Stone or Bedrock. It might be useful to extend the event so that
plugins can set this.

Letting the API set the default yield for an explosion event has been
deprecated, so we now set the default yield using the appropriate constructor.
2011-12-08 00:31:21 +11:00
Andrew Ardill
4e318dd1c8 Implement new interface ConsoleCommandSender.
Also use abstracted ServerCommandSender to reduce complexity! Yay!
2011-12-07 17:46:30 +11:00
Andrew Ardill
93a4a9ba8c Teach MinecraftServer how to handle Remote Console commands.
This fixes BUKKIT-220. Thanks for the help bawoodruff!
2011-12-07 17:45:50 +11: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
Tahg
eead44a692 fix NPE issue with CB inventory 2011-12-06 08:48:45 -05:00
Tahg
57112887ca Another fix for enchantments when moving around inventory. (Still glitches visually at times) 2011-12-05 04:02:59 -05:00
Andrew Ardill
bf60f44013 Teach EnderDragon how to throw EntityDamage events
Relates to BUKKIT-129
2011-12-05 19:23:54 +11:00
Andrew Ardill
b1a3aa602a Clean-up some events to maintain general style 2011-12-05 19:23:40 +11:00
Nathan Adams
8363eadcab CraftInventory.remove shouldn't care about amount (BUKKIT-138) 2011-12-05 01:51:33 +00:00
Nathan Adams
dbd3ff71fc Implemented server.getOfflinePlayers 2011-12-04 17:57:00 +00:00
Nathan Adams
c6d182286c Fixed some various CraftInventory bugs related to dropping Enchantments 2011-12-04 13:22:50 +00:00
Nathan Adams
1185ca75fc Fixed player teleporting not working with a certain method. This fixes BUKKIT-198 2011-12-04 13:22:31 +00:00
Nathan Adams
1dbebb4593 Fixed exp resetting upon teleporting cross-world (fixes BUKKIT-46. Again.) 2011-12-04 12:16:15 +00:00
Nathan Adams
98e062f0cf Fixed a few player-respawn issues. This should resolve BUKKIT-28 (Dupe bug), BUKKIT-29 (Poisons lasting), and BUKKIT-46 (XP resetting) 2011-12-04 12:10:02 +00:00
Nathan Adams
55a532c251 Indicate when a teleport event was triggered by ender pearls or unknown internal teleports 2011-12-04 11:04:14 +00:00
Andrew Ardill
645079be08 Make the EnderDragon respect experience drop set in death event 2011-12-02 21:50:57 +11:00
Andrew Ardill
f15c466e89 Add EntityEnderDragon 2011-12-02 21:50:57 +11:00
Andrew Ardill
480376ef50 Ensure that DeathEvents are raised even for non loot-dropping living entities
Related to BUKKIT-129
2011-12-02 21:38:51 +11:00
Andrew Ardill
c298c104ea Remove unused import 2011-12-02 21:38:50 +11:00
Andrew Ardill
8511ef3902 Register damage caused by PrimedTNT entities as BLOCK_EXPLOSION
This fixes BUKKIT-74
2011-12-02 16:55:23 +11:00
Nathan Adams
9fe5529791 Fixed ender pearls ignoring damage cancellation 2011-12-02 00:06:27 +00:00
Nathan Adams
0c958c0dff Fixed exploit with Ender Pearls, and made them perform a damage event. This fixes BUKKIT-38 2011-12-01 23:34:14 +00:00
Nathan Adams
6f79ca5c54 Don't disconnect a player if they're already disconnected (fixes BUKKIT-43) 2011-12-01 22:35:19 +00:00
Nathan Adams
6ea3cec762 Made world.spawnCreature just delegate to world.spawn. This fixes BUKKIT-57 2011-12-01 21:50:23 +00:00
Nathan Adams
062d94d6bc Implemented 1.0.1 fixes. This fixes BUKKIT-3, BUKKIT-39, BUKKIT-150 2011-12-01 21:43:54 +00:00
Erik Broes
650717ad32 Fire BlockPlace event when placing a lilypad, Thanks DiddiZ; Fixes BUKKIT-162 2011-12-01 21:43:46 +01:00
Erik Broes
da6b412fd2 Fix CraftBlock toString. 2011-12-01 21:03:23 +01:00
Erik Broes
51f724f24d Fix missing data-value when placing a stair-block (somehow gets set after the fact) - Fixes BUKKIT-40 2011-12-01 21:03:22 +01:00
Erik Broes
df935a5eed Add more information to 'Fetching addPacket' so we might be able to find the reason why it happens. Gives info for BUKKIT-32 2011-12-01 21:02:59 +01:00
Nathan Adams
d02a2eb49d Fixed rare NPEs with CraftItemStack. This fixes BUKKIT-51 2011-12-01 05:21:03 +00:00
Nathan Adams
4ce061ccbe Fixed Players from technically only dying once (thanks Qala) 2011-11-30 23:45:55 +00:00
Nathan Adams
a513406005 Fixed exp methods returning wrong values 2011-11-30 22:31:03 +00:00
Nathan Adams
8fbe78a2c3 Updated to use mc-dev rename revision 1 2011-11-30 21:46:19 +00:00
Erik Broes
8665161eaa Fixed multiworld loading of some worlds, yay for 1 letter fixes :D 2011-11-30 21:48:16 +01:00
Erik Broes
67924529a0 Fix drops of StairBlocks 2011-11-30 20:19:15 +01:00
Andrew Ardill
c6af919114 Fix CraftEnderCrystal so that it implements EnderCrystal, not EnderSignal.
Thanks zhuowei!
2011-11-30 09:21:54 +11:00
Andrew Ardill
9455ff1777 cleanup of projectiles 2011-11-29 21:30:37 +11:00
Andrew Ardill
a1ad0c0103 Add events for EntitySmallFireball 2011-11-29 21:26:55 +11:00
Andrew Ardill
2759809ecb Fix Craft Entity constructors and toStrings.
Also, standardise getHandle and clean up in general.
getHandle is now using the 'entity' member variable instead of
super.getHandle, as this reduces the number of chained calls needed.
2011-11-29 21:22:35 +11:00
Andrew Ardill
2b751111d2 Add EntitySmallFireball.java from nms 2011-11-29 18:32:16 +11:00
Andrew Ardill
3da00ee41a Implementation of reworked EntityCombustEvents
Also includes some extra comments, and a refactoring of the
PaintingBreakByEntity event that is raised when lighting strikes a painting.
2011-11-29 18:20:21 +11:00
Andrew Ardill
0c88f05c0d Fix CraftVillager constructor to only take an EntityVillager 2011-11-29 09:46:20 +11:00
Andrew Ardill
89338db181 BUKKIT-57 Fix using Bukkit interface instead of nmc Entity for type check.
Thanks nidefawl!
2011-11-29 09:42:09 +11:00
Nathan Adams
7db72dfd2c Doors and trapdoors should function correctly once again 2011-11-28 07:00:04 +00:00
Nathan Adams
91b673e375 Ignore empty messages (not just null) for join and quit 2011-11-28 06:21:35 +00:00
Nathan Adams
aa90f2ff9c Made Snowmen obey animal spawning rules (thanks Amaranth) 2011-11-28 05:18:41 +00:00
Nathan Adams
fe3756f7a0 Fixed Enchantments being lost on inventory.setItem 2011-11-28 05:17:05 +00:00
Nathan Adams
99771b7b72 Fixed magma slimes from being nonspawnable 2011-11-28 05:08:28 +00:00
Andrew Ardill
4b87704c5a Add new Entity types to CreatureSpawnEvent 2011-11-28 11:21:43 +11:00
Andrew Ardill
c0073e466d Add CraftMagmaCube 2011-11-28 11:17:04 +11:00
Nathan Adams
9c2b11ae94 Fixed gravel's enchantment detection 2011-11-27 17:00:20 +00:00
Nathan Adams
f6dc6745ed Fixed EntityDeathEvent not throwing for Ghasts and Pig Zombies (fixes issue #13) 2011-11-27 04:22:24 +00:00
Nathan Adams
8d49f500ec Fixed NPE in CraftPlayer.getBedSpawnLocation 2011-11-27 04:09:34 +00:00
Nathan Adams
402e3c26e1 Clone item enchantments unchecked 2011-11-27 03:58:43 +00:00
Nathan Adams
894ab9f949 Fixed issue with enchantments reseting under certain conditions 2011-11-27 02:45:34 +00:00
Nathan Adams
139ad8c34a Fixed crash when breaking gravel with a high fortune enchant 2011-11-27 01:41:56 +00:00
Nathan Adams
eb7bd5f23b Implemented Enchantment API 2011-11-27 01:37:00 +00:00
Erik Broes
ba608f55e4 Remove expensive debugcalls from production code 2011-11-26 18:27:39 +01:00
Nathan Adams
9907638130 Fixed ancient vanilla typo in offline mode warnings. Thanks to Alexitaly92 for catching it. 2011-11-26 01:09:04 +00:00
Nathan Adams
256d4ba555 Fixed the NPE in inventoryplayer once again, thanks to don4of4 2011-11-26 01:01:43 +00:00
Nathan Adams
8062d5c7be Added death events for blaze and snowman, fixed reported loot for chickens 2011-11-26 00:56:11 +00:00
Nathan Adams
b9aaf3977c Fixed NPE travelling to the nether from a custom world 2011-11-25 21:10:16 +00:00
Nathan Adams
197fdbd84c Nether portals should now only work in the default world 2011-11-25 20:54:29 +00:00
Nathan Adams
bb16e6c5c1 Fixed portal event reporting wrong from-world 2011-11-25 20:05:51 +00:00
Nathan Adams
a105ec32b3 Fixed comment 2011-11-25 03:50:10 +00:00
Nathan Adams
ef75a286ac Implemented world.getWorldFolder 2011-11-25 03:47:12 +00:00
Nathan Adams
20a0b0a9be Changed Entity.isDead to be aware of health for living entities 2011-11-25 00:32:44 +00:00
Nathan Adams
620f101487 Another attempt at the vanilla tile entity bug 2011-11-25 00:15:00 +00:00
Nathan Adams
e31cedf583 Fixed NPE in player inventory + don't ignore the cancel state of world unloads 2011-11-24 20:27:16 +00:00
Nathan Adams
a7664a104f Implemented new age methods in animals, and made spawned animals via eggs properly age back to children 2011-11-24 20:16:43 +00:00
Nathan Adams
47b4406b7e I've either fixed going to The End, or made it worse. I'm sure we'll find out soon! 2011-11-24 20:00:55 +00:00
Nathan Adams
61edd36378 Made BlockStates inform playes upon update 2011-11-24 18:48:23 +00:00
Nathan Adams
c6beae8872 Fixed allow-nether being ignored 2011-11-24 18:48:01 +00:00
Nathan Adams
de7402ea8e Fixed fireballs sleeping on the job 2011-11-23 03:33:53 +00:00
Nathan Adams
03762600df Fixed trapdoors + few comments 2011-11-23 00:08:56 +00:00
Nathan Adams
929e5ff6c7 Implemented new biome values 2011-11-22 21:21:33 +00:00
Nathan Adams
774e59e179 Fixed vanillas tile-entity placement bug (thanks Moo0) 2011-11-22 21:14:42 +00:00
Nathan Adams
a3399c6431 Fixed crash on right clicking dragon eggs 2011-11-21 22:56:17 +00:00
Nathan Adams
a83fc1d6a2 Implemented new EnderCrystal entity class 2011-11-21 22:39:33 +00:00
sunkid
0a8bd56f16 fixed spawn method for projectiles 2011-11-20 18:21:21 -08:00
Nathan Adams
246ff3b352 Made the new Status info list plugins (test it out at http://dinnerbone.com/minecraft/tools/status/ ) 2011-11-20 00:01:57 -08:00
Erik Broes
345ea36c7b Update for 1.0.0 2011-11-20 00:01:33 -08:00
Nathan Adams
589f66bd1b Added new --noconsole command argument, thanks to mkurzeja for the idea 2011-11-05 20:15:19 +00:00
Nathan Adams
b1671be875 Implemented bukkit versioning 2011-10-31 04:03:47 +00:00
Tahg
c69f5fda9b added some missing comments for falling entities 2011-10-27 20:03:28 -04:00
Erik Broes
2f1513cae0 Add missing CraftBlock hashCode() 2011-10-20 23:20:26 +02:00
sk89q
695f25a32b Added a case previously not covered by VehicleDestroyEvent for boats. 2011-10-13 01:17:04 -07:00
Tahg
8c02599256 fixed mapping of Art <-> EnumArt in Paintings 2011-10-12 14:13:11 -04:00
Nathan Adams
7d153a9f58 Added header to bukkit.yml 2011-10-12 13:26:07 +01:00
Nathan Adams
75d9b04deb Added new bukkit.yml entry (settings -> world-container) to control the directory worlds are stored in 2011-10-12 04:25:03 +01:00
Nathan Adams
f4229fcadd Implemented getPlayer of OfflinePlayer 2011-10-11 14:52:07 +01:00
Nathan Adams
fd57c7111c Fixed fauxSleeping check on leaving bed 2011-10-11 02:38:32 +01:00
Nathan Adams
af1838305c Implemented entity age methods 2011-10-11 02:23:10 +01:00
Nathan Adams
ac0641887b Fixed Explosion cast error 2011-10-11 02:12:22 +01:00
Nathan Adams
a49a358349 Changing the blockList on explosions now correctly updates which blocks are changed 2011-10-11 00:37:39 +01:00
Nathan Adams
7e005474b6 Added hashCode and equals to CraftWorld 2011-10-10 22:45:52 +01:00
Nathan Adams
1195944c90 Removed deprecated ConcurrentSoftMap 2011-10-10 22:05:35 +01:00
Nathan Adams
c818414fd5 Updated to the new Configuration api 2011-10-10 21:10:48 +01:00
Erik Broes
255778b388 Fix CraftBlock.equals as they are not singletons anymore 2011-10-07 11:48:14 +02:00
Tahg
d39c363e5c another attempt at mob spawners - 3rd time's the charm? 2011-10-06 11:02:39 -04:00
Tahg
696349884b don't store weak references for EmptyChunks or cache CraftBlocks 2011-10-05 11:36:03 -04:00
Tahg
8ab90b344c fix for spawners not properly checking whether an entity can spawn 2011-10-05 11:36:02 -04:00
Tahg
d74145ef23 hopeful fix for blocks not being pistons when they should be 2011-10-05 11:36:02 -04:00
EvilSeph
73f419197a Fixed Skeletons not dropping experience. 2011-10-04 10:04:45 -04:00
EvilSeph
09801eeabf Exempted moving pistons from the tile entity fix. 2011-10-03 18:18:14 -04:00
EvilSeph
1f4e671af9 Fixed Silverfish having a base damage of 0. 2011-10-03 17:40:53 -04:00
EvilSeph
9177c205b4 Revert "Added callback line of sight methods. Thanks xZise!"
This reverts commit 49cf586f969626bdb59632bb2fd5adfe79d38057.
2011-10-03 15:17:34 -04:00
EvilSeph
11b388ff39 Fixed multiworld difficulty.
World difficulty was incorrectly being set to 0 or 1 on reload depending
on spawn-monsters instead of the difficulty server property.
2011-10-03 10:53:17 -04:00
EvilSeph
7c5007c016 Added Difficulty API. 2011-10-03 10:29:24 -04:00
sunkid
3a224266c4 Fixed PlayerChangedWorld event.
Moved the call of PlayerChangedWorldEvent to more appropriate location
2011-10-03 00:28:47 -04:00
EvilSeph
3b2347093f Added missing call for WorldUnload event. 2011-10-02 23:16:58 -04:00
EvilSeph
aaefd4ecb5 Added callback line of sight methods. Thanks xZise! 2011-10-02 23:04:03 -04:00
Dinnerbone
80c2bc266a Minimal diffs! Move methods for the new list-name away from nms 2011-10-03 00:37:44 +01:00
Dinnerbone
bf09121354 Attempt to fix any damage caused by misplaced tile entities 2011-10-03 00:14:06 +01:00
sunkid
199a5c2a77 Implemented PlayerChangedWorldEvent. 2011-10-01 15:38:25 -04:00
EvilSeph
d532136903 Fixed bed spawns for multiworld worlds. Thanks Meaglin! 2011-10-01 13:37:20 -04:00
EvilSeph
22baa13894 Painting improvements. Thanks CelticMinstrel!
Implement get/setArt and facing direction for paintings; expanded painting break causes; added painting support to World.spawn
2011-10-01 13:37:03 -04:00
EvilSeph
d53a155e4c Packet handling improvements. 2011-10-01 01:40:08 -04:00
Mike Primm
aa66851119 Correct biome data in ChunkSnapshot - wrong API used 2011-09-30 23:31:37 -04:00
EvilSeph
64322ed26b Added SlimeSplit event. Thanks garbagemule!
The SlimeSplit event is fired when a Slime attempts to split upon death.
The event may be cancelled, and the amount of smaller slimes may be
customized.
2011-09-30 19:50:19 -04:00
Tahg
b73d095a9f revert change to make mobspawners drop a spawner of that type
removed some debug code
fixed a 1.5 compatibility issue
2011-09-29 15:36:52 -04:00
Dinnerbone
935313dea7 Fixed players not receiving broadcasts (and other similar issues) after signing out and in rapidly 2011-09-27 23:14:53 +01:00
Tahg
95666779f8 added fallback code for invalid entities from mobspawners 2011-09-27 16:46:29 -04:00
sk89q
40c8cc0421 Fixed monsters being spawned even when one was faux sleeping. Thanks to EdGruberman. 2011-09-26 15:37:38 -07:00
sk89q
afd95b7e30 Added server list ping event. 2011-09-26 15:32:05 -07:00
sk89q
87494d46f8 Added Player.get/setListName to change the name of the player on the player list. 2011-09-26 15:10:35 -07:00
EvilSeph
484376bbac Fixed saturation handling for FoodLevelChange event. 2011-09-26 14:33:37 -04:00
Tahg
31eef6e001 fixed build issues, code cleanup 2011-09-26 04:30:24 -04:00
Tahg
d226e551ae data improvements 2011-09-26 03:07:46 -04:00
sk89q
b7c43fbff1 Boat get/set (double) occupied acceleration, (double) unoccupied deceleration, (boolean) work on land. Good values to maximize boat utility: 0.6 (fast accel.), 0.99 (no loss of boat), true/false, respectively. 2011-09-25 11:20:51 -07:00
Dinnerbone
8f8c62b71b Ensure there's only one OfflinePlayer object per actual offline player 2011-09-25 04:21:35 +01:00
Dinnerbone
a1f8d3fd47 Changed max player count from 126 to 60 for ingame player list rendering fixes 2011-09-25 04:14:27 +01:00
Celtic Minstrel
aece687d01 Implementation of the Jukebox BlockState 2011-09-25 03:54:51 +01:00
Dinnerbone
6c6eef8759 Implemented get/setPickupDelay on Item entities, thanks robin0van0der0v 2011-09-25 03:40:28 +01:00
Dinnerbone
ceba082703 Implemented getOperators 2011-09-25 03:28:00 +01:00
Dinnerbone
cb49379b24 Adds a method that returns the File representation of the update folder. Thanks raphfrk 2011-09-25 02:22:06 +01:00
Wizjany
3c7a843944 Made grass throw a BlockSpread event when growing and a BlockFade event when receding. 2011-09-25 01:54:38 +01:00
Dinnerbone
79e7ae85dd Swapped an =="" for "".equals in EntityHuman 2011-09-25 01:36:05 +01:00
Dinnerbone
fad2656c63 Implemented world.getSeaLevel, made getHeight load from world instead of hardcoded 2011-09-25 01:05:55 +01:00
Dinnerbone
1fbd439dc5 Implemented new createWorld method 2011-09-25 01:05:10 +01:00
Dinnerbone
44136f2e7d Blocked access to ColouredConsoleSenders constructor, implemented getConsoleSender 2011-09-24 23:14:13 +01:00
Dinnerbone
0118a20d6a Update to mcdev rename revision 01 for 1.8.1 2011-09-24 22:05:22 +01:00
Erik Broes
75ac4e00b2 Cancel bed return method if entity is ignoring sleep. Thanks to EdGruberman. 2011-09-23 21:05:23 +02:00
Erik Broes
a2957c7b8f Stop sending multiple time packets to each client 2011-09-23 20:20:18 +02:00
EvilSeph
e08535d688 Fixed FoodLevelChange event adding too much to the food level. 2011-09-22 15:53:39 -04:00
EvilSeph
a7717d4d79 Added RegainReason.SATIATED.
This reason is used when a player regains health from generating due to their hunger being satisfied.
2011-09-22 01:36:31 -04:00
EvilSeph
aa0739d90a Added FoodLevelChange event. 2011-09-21 22:13:54 -04:00
EvilSeph
8d5a8667de Made death message handling check for 'null' to disable death messages, along with an empty string. 2011-09-21 18:02:59 -04:00
EvilSeph
217b414118 Added EntityDamageEvent for caused by starving. 2011-09-21 17:11:06 -04:00
Rigby
e6e9cec1e9 Added PlayerToggleSprint event and sprinting related API. 2011-09-21 16:25:26 -04:00
Rigby
1da2d1f5b6 Implements the ability to customise and remove Player death messages. 2011-09-21 16:55:27 +01:00
Dinnerbone
59908c43c9 Ok, this'll have to do for exp orbs. 2011-09-21 16:28:46 +01:00
Dinnerbone
02f6e99d9e Let's swap that around. More results! 2011-09-21 16:12:11 +01:00
Dinnerbone
5a8ec0cb9d This should reduce the amount of exp-orbs quite a bunch 2011-09-21 16:07:19 +01:00
Dinnerbone
20ddc944bb Refactored a bunch of death code into the event factory 2011-09-21 15:41:24 +01:00
Tahg
751ab82be0 stopgap build - mostly stable 2011-09-21 08:38:41 -04:00
Tahg
f6ab0f8611 more chest checks 2011-09-21 05:01:44 -04:00
Tahg
75e18f304a better chest fix 2011-09-21 04:26:05 -04:00
Tahg
d06d111b94 fix for stair data 2011-09-21 01:40:18 -04:00
EvilSeph
905b977670 Added getBedSpawnLocation to CraftPlayer. Thanks fernferret! 2011-09-20 23:44:44 -04:00
EvilSeph
3f04f04be6 Added/updated EntityDeathEvents to reflect changes to the Vanilla spec. 2011-09-20 23:44:44 -04:00
EvilSeph
0a52c7f334 Made health regeneration only occur if difficulty is set to 0 (Peaceful). 2011-09-20 23:44:43 -04:00
Dinnerbone
e4d58faf5b Fixed NPE when players are killed by (for example) dispensers 2011-09-21 00:50:35 +01:00
Dinnerbone
a0216584b0 Return OfflinePlayer for offline wolf tamers. Thanks robinjam 2011-09-20 19:10:06 +01:00
Dinnerbone
2d1d86b77e Fixed endermen not loading carried-data properly 2011-09-20 18:52:37 +01:00
Wizjany
2ae6b431b3 Added event for endermen picking up and placing blocks and methods to get/set what an enderman is holding. 2011-09-20 18:49:47 +01:00
EvilSeph
167febd8e6 Fixed allow-animals not applying to chunk generation.
Moved the legitimacy checking into World.addEntity for better organisation and to better account for future methods being added that control whether or not an entity should spawn.
2011-09-20 01:20:05 -04:00
Dinnerbone
d01a3acd82 Added missing //cb comments from dfa9c9bccb7feac44824c146d2dc11874b50b19d 2011-09-19 22:06:38 +01:00
Dinnerbone
5b68bae02e Fixed NPE when people experience the chest crash 2011-09-19 21:58:47 +01:00
Dinnerbone
914a8a0c04 Nullchex! 2011-09-19 14:26:46 +01:00
Erik Broes
9954a3d8b4 Missed closing the comment block -- doh 2011-09-18 14:26:26 +02:00
Erik Broes
a4355d4bd9 Remove pingpacket updating completely for now -- this needs a better fix, the default original implementation has a hug bug 2011-09-18 13:11:17 +02:00
sunkid
af6ba0f026 implementation of PlayerGameModeChangeEvent call 2011-09-18 11:19:08 +02:00
Dinnerbone
65052c8a59 Workaround for crash when chests mix up with furnaces - need to investigate cause 2011-09-18 11:19:03 +02:00
Mike Primm
3f4ee9ab56 Added support back in for biome temperature and rainfall in snapshots. 2011-09-17 17:12:44 -04:00
Tahg
5534efd66f painting fix 2011-09-17 16:47:33 -04:00
Dinnerbone
f5957c1831 Invalid position errors for chunks now display what world they're for 2011-09-17 14:53:14 +01:00
Erik Broes
0ae6e11761 Fix silly infiniteloop in pingpacket 2011-09-17 14:35:48 +02:00
EvilSeph
e83a197567 Removed extra addEntity call in SpawnerCreature. 2011-09-17 02:26:40 -04:00
EvilSeph
392e2a4272 Implemented configurable ping packet limit. 2011-09-16 22:26:49 -04:00
EvilSeph
096672b3c1 Added toString overrides to new Craft entities. 2011-09-16 22:26:11 -04:00
EvilSeph
820c51ab97 Added new entity mappings to CreatureSpawnEvent factory. 2011-09-16 20:10:49 -04:00
Tahg
fb26465c58 passive fix for chests (add an active fix later) 2011-09-16 16:25:16 -04:00
Dinnerbone
bd93cd7182 Fixed not being able to move properly around doors or trapdoors 2011-09-16 21:08:47 +01:00
Dinnerbone
900c541246 Bunchafixes which may or may not have any end result 2011-09-16 20:10:11 +01:00
Dinnerbone
94d1338feb Fix for doors breaking themselves in certain situations 2011-09-16 13:57:05 +01:00
EvilSeph
88e57fbf2d Fixed bow drawback not affecting arrow damage. 2011-09-16 07:11:48 -04:00
Rigby
456ce51711 More latency handling fixes.
Fixed Clientside rendering issues of the PlayerInfo window if max players > 126.
Limited PlayerInfo packets to 126 at a time as it cannot render anymore than 126.
2011-09-16 06:02:06 -04:00
EvilSeph
76493f9c76 Fixed fall distance accumulating while being in Creative mode. 2011-09-16 05:48:05 -04:00
EvilSeph
72e5ea6cc3 Fixed NPE when a client queries a server that is unable to handle it. 2011-09-16 05:32:25 -04:00
EvilSeph
85c0c1bb51 Fixed the client having an incorrect world seed on respawn/teleporting across worlds. 2011-09-16 05:19:07 -04:00
EvilSeph
f8d36cd09c Fixed food data not persisting appropriately. 2011-09-16 05:19:06 -04:00
EvilSeph
e85c99289c Fixed latency update issues. 2011-09-16 05:19:06 -04:00
Dinnerbone
2995a08324 Removed some unneeded code, possibly fixed animal spawning 2011-09-15 22:29:15 +01:00
Dinnerbone
35defecc41 Fixed a couple of minor obf translations 2011-09-15 20:19:14 +01:00
sunkid
cdbd318bb5 Fixed missing PlayerInteractEvent call in creative mode 2011-09-15 19:24:23 +01:00
Dinnerbone
9252230e3a Update for Minecraft 1.8.1 2011-09-15 18:01:13 +01:00
Dinnerbone
2b5a61f03d Rename revision 2 2011-09-15 17:39:17 +01:00
EvilSeph
3c5632de31 Fixed Creative not having infinite items. 2011-09-15 04:23:14 -04:00
Dinnerbone
53b32f43cc Fixed minecarts forgetting their purpose in life 2011-09-15 06:33:57 +01:00
Dinnerbone
965b185c5c Setting exp shouldn't add, it should set 2011-09-15 06:27:55 +01:00
Dinnerbone
8b08696177 Implemented food methods + fixed dying resetting food 2011-09-15 06:24:45 +01:00
Dinnerbone
7eff773769 Fixed spawning the new entities 2011-09-15 05:53:19 +01:00
Dinnerbone
548ecfdec8 Implemented Exp Orb methods 2011-09-15 05:48:31 +01:00
Dinnerbone
fce1a61254 Fixed logging in to the wrong game mode 2011-09-15 05:38:49 +01:00
Dinnerbone
706f0da595 Fix for ItemDoor crash 2011-09-15 05:23:17 +01:00
Dinnerbone
1c95476a00 Implemented player experience methods 2011-09-15 05:13:10 +01:00
Dinnerbone
ca57a1a1af 1.8 rename fixes 2011-09-15 04:44:32 +01:00
EvilSeph
6e44626d0a Fixed item drop protection. 2011-09-14 22:29:26 -04:00
EvilSeph
d71e83d8d2 Possible fix for flying. 2011-09-14 22:12:32 -04:00
Dinnerbone
ca4810e8d4 Implemented new entities 2011-09-15 02:33:50 +01:00
Dinnerbone
a9b3a90dc9 Implemented gamemode methods 2011-09-15 02:22:20 +01:00
Dinnerbone
5b2c774edc Update for Minecraft 1.8 2011-09-15 01:23:52 +01:00
Top-Cat
54bcd1c1f3 Indentation is important, ok? 2011-09-12 19:40:30 +08:00
Dinnerbone
f36bca9fb7 Implemented new GameMode methods (hint: You can't set game mode yet. Sorry.) 2011-09-09 01:19:23 +01:00
Dinnerbone
59babb2c31 Fixed issue with console being subscribed multiple times to permissions 2011-09-04 00:24:32 +01:00
Dinnerbone
c8d77561b1 Added new Server.getPlayerExact() method, added whitelist methods and don't use vanilla commands 2011-09-03 15:57:54 +01:00
Dinnerbone
09d90e639b Implemented new ban and unban methods 2011-09-03 02:13:07 +01:00
Dinnerbone
598be22800 Implemented IP-banning methods 2011-09-03 01:59:28 +01:00
Dinnerbone
2547c46099 Actually push the CraftOfflinePlayer implementation! 2011-09-03 00:49:10 +01:00
Dinnerbone
0206757029 Implemented OfflinePlayer 2011-09-03 00:41:48 +01:00
Dinnerbone
fe0cd5405b Implemented new broadcast method 2011-09-02 22:24:28 +01:00
Dinnerbone
db691ff5c8 Fixed player.setOp not deopping players 2011-09-02 21:30:16 +01:00
Dinnerbone
7c491b7bc7 Fixed world.save, implemented autosave methods 2011-09-02 20:46:26 +01:00
Dinnerbone
0c20045964 Implemented Server.shutdown() 2011-09-02 20:18:35 +01:00
Dinnerbone
d69bbd38c2 Commands are now "bukkit.command.x" instead of "craftbukkit.command.x", added legacy perms for compat 2011-09-02 19:19:50 +01:00
Dinnerbone
3915c15ef5 Version message doesn't need to be printed manually now 2011-09-02 16:56:10 +01:00
Dinnerbone
f165d4082d Refactored some code from nms to ob for minimal diffs 2011-08-29 16:09:13 +01:00
EvilSeph
1e8bbbfbd5 Fixed PlayerDropItem event cancelling. 2011-08-27 01:18:36 -04:00
EvilSeph
e4a2177281 Fixed memory leak Chunk Compression handling. Thanks Zeerix! 2011-08-27 01:16:53 -04:00
EvilSeph
6f8d4c3a52 Fixed using custom PTAs for PlayerPortal event. 2011-08-27 01:16:53 -04:00
Tahg
6e4b12cdf1 safety check (and hopeful fix) for chunk saving 2011-08-19 23:17:48 -04:00
Dinnerbone
90d1afb748 Refactored default permission registration. Added "craftbukkit" and "craftbukkit.command" parent perms, and fixed whitelist adding 2011-08-18 14:04:59 +01:00
EvilSeph
26bd45c233 Made suiciding through the /kill command not reliant on pvp being allowed. 2011-08-15 14:30:27 -04:00
EvilSeph
8ea590bbcc Revert "Implements interface for changing the view distance." 2011-08-15 14:27:02 -04:00
Andrew Ardill
12e377501e Implements interface for changing the view distance.
Uses default view distance if player's view distance is not set

Throws an illegal argument exception if view distance is set too high
or too low.

Pushes notifications of server and world view distance changes to the player.
Move view distance functions from PlayerManger to WorldServer.
Set player minimum view distance to 1 for now.
Reset player's 'last known' position when recalculating visible chunks.

Use per-player view distance in chunk distance checks
2011-08-15 14:57:25 +10:00
Rigby
a6c03ded28 Movement handling cleanup. 2011-08-12 23:06:02 -04:00
EvilSeph
748a6288e4 Added API for manipulating map items. Thanks SpaceManiac, codename_B, sk89q and dested! 2011-08-12 23:06:02 -04:00
Dinnerbone
e6876a97da Added permissions for each vanilla command - see http://wiki.bukkit.org/Vanilla_permissions. Removed op requirement for all server commands :o 2011-08-13 03:15:32 +01:00
EvilSeph
27f7a99512 Item drop handling changes. 2011-08-12 21:20:44 -04:00
Rigby
96a0e87068 Fixed chunks being overwritten with empty chunks when the memory setting is immediately changed after a world loads. 2011-08-12 21:19:53 -04:00
EvilSeph
f795055012 Fixed a piston crash (AIOOBE). 2011-08-12 21:19:53 -04:00
EvilSeph
c1e85002b6 Added missed colors to ColouredConsoleSender. Thanks flames! 2011-08-12 21:19:52 -04:00
Rigby
587b9662c9 More PlayerMove fixes.
Revert the 'from' location changes.
Only fire a PlayerMoveEvent if the movement is going to be processed.
Attempt to catch Teleporting within the event better.
Fixed issue where PlayerMove would not fire as often as expected. Thanks EvenPrime!
2011-08-08 21:54:42 -04:00
EvilSeph
28b3c9b0d7 Fixed new type reporting in BlockFade event for snow and ice. Thanks DiddiZ! 2011-08-08 16:01:35 -04:00
EvilSeph
831d97c8de Added "getViewDistance()", "getAllowNether()", "hasWhitelist()" and "getAllowFlight()". Thanks robin0van0der0v! 2011-08-08 16:01:34 -04:00
Dinnerbone
47453c6055 Extremely experimental fix to the tile-entity wipe, thanks to Wug 2011-08-08 18:30:57 +01:00
tahg
effc6c8559 Fix placement of scheduler tick 2011-08-07 00:45:56 -03:00
Rigby
bb89847632 Map handling improvements.
Fixed an NPE occurring under certain circumstances.
Made it possible for maps to exist without having to associate them with a world.
2011-08-05 16:02:02 -04:00
Rigby
ae43b837b0 Prevent Nether Portals from teleporting the player from Bukkit worlds to the Nether.
Plugins would need to provide a To Location for Nether Portals to work in Bukkit Worlds.
2011-08-05 16:01:27 -04:00
EvilSeph
a7f2798862 Made PlayerPortal event fire regardless of allow-nether setting. 2011-08-05 15:52:39 -04:00
Rigby
4117d6b65e Implemented per world setting to keep the spawn in memory or not. 2011-08-05 15:52:38 -04:00
Rigby
6ae23e3f03 Chunk Compression on seperate thread. Thanks to Zeerix. 2011-08-03 20:55:44 -04:00
EvilSeph
85805e53a3 Added ServerCommandEvent. Thanks celticminstrel! 2011-08-03 12:10:09 -04:00
EvilSeph
817cd83f0b Made PlayerAnimation cancellable. Thanks desmin88! 2011-08-03 12:10:08 -04:00
sunkid
7d4ec8b183 Retiring EntityDamageByProjectileEvent in favor of EntityDamageEvent. 2011-07-28 01:51:09 -04:00
EvilSeph
e2e4d7f4ca Added PlayerVelocityEvent. Thanks Evenprime! 2011-07-28 01:17:31 -04:00
EvilSeph
57e0a106fe Fixed BlockPlace event for doublesteps. Thanks DiddiZ! 2011-07-28 01:05:07 -04:00
EvilSeph
a8df829a8b Made /kill trigger a damage event. Thanks hollic! 2011-07-28 00:58:50 -04:00
EvilSeph
6b9c7fa678 Added Version startup argument to Main. Thanks cyberdudedk! 2011-07-28 00:58:37 -04:00
EvilSeph
5b7b46593c Added various utility methods to make chunk handling easier. Thanks Meaglin! 2011-07-28 00:32:58 -04:00
EvilSeph
226318d8af Removed deprecated methods.
getNote() that returns a byte has been replaced by getRawNote().
teleportTo(Location) has been replaced by teleport(location).
teleportTo(Entity) has been replaced by teleport(Entity).
SnowForm event has been replaced by BlockForm event.
2011-07-27 23:25:21 -04:00
EvilSeph
4fdc225528 Fixed crash caused by Jukeboxes under certain circumstances. 2011-07-27 13:04:34 -04:00
EvilSeph
f4a789b48a Fixed NPE in BlockFurnace. 2011-07-22 23:04:57 -04:00
EvilSeph
a5f85b6f1a Fixed map render distance when view-distance < 7. 2011-07-22 01:25:07 -04:00
EvilSeph
97a6534ee6 Fixed maps crashing/disconnecting the client under certain circumstances. 2011-07-21 22:35:58 -04:00
Dinnerbone
7ad853a51b Implemented maxheight 2011-07-20 00:03:47 +01:00
Dinnerbone
5d2a195835 Implemented new permission system 2011-07-17 17:19:41 +01:00
Erik Broes
cc9ccc8976 Removed some old deprecated code and clean up javadocs + warnings 2011-07-17 18:14:45 +02:00
Erik Broes
fd260b0f4d Allow colorchar to be uppercase 2011-07-17 18:14:45 +02:00
Erik Broes
f7712eb20c Deprecated Block.getFace(Face) and Block.getFace(Face,int); use getRelative() 2011-07-17 18:14:45 +02:00
Erik Broes
f3a86eaaca Implemented BLOCK_PISTON_CONTRACT/EXPAND 2011-07-17 18:14:45 +02:00
Dinnerbone
e4edbf288d Don't use weak/soft references for keys, attempt to lessen memory impact further 2011-07-16 02:55:54 +01:00
Dinnerbone
c101c3553b Readded ConcurrentSoftMap because apparently some plugins need this. (They really, really shouldn't be using it. At all.) 2011-07-15 21:49:53 +01:00
Dinnerbone
a507add4ea Fixed huge memory leak (gigabytes/hour!) by placing a bukkit under the ceiling. 2011-07-15 20:52:54 +01:00
EvilSeph
0bd535e054 Made fire spread trigger BlockSpreadEvent. Thanks N3X15! 2011-07-14 23:26:01 -04:00
sunkid
30a382a6dc Made ProjectileHitEvent fire instantly when projectiles don't hit entities. 2011-07-14 22:37:31 -04:00
Dinnerbone
43492ab6af Revert "Do not immediately re-queue repeating tasks, or they may simply keep repeating on this tick, until the 35ms time limit runs out." See 3632d99122 (commitcomment-478252)
This reverts commit 3632d99122e8795cadb8f94e14e42eb4aa6d7c4c.
2011-07-14 23:21:28 +01:00
Afforess
4a932c11de Do not immediately re-queue repeating tasks, or they may simply keep repeating on this tick, until the 35ms time limit runs out. 2011-07-14 15:49:23 -04:00
EvilSeph
958acee5af Use ColouredConsoleSender to send chat to console. Thanks TheDgtl! 2011-07-14 15:45:24 -04:00
EvilSeph
3c5ecd0854 Fixed missing BiomeBase.SKY to Biome.SKY mapping. Thanks mikeprimm! 2011-07-14 15:05:43 -04:00
Celtic Minstrel
cc94325b28 Implemented pig zombie get/set anger functions. 2011-07-14 14:58:12 -04:00
EvilSeph
c9979169b9 Possibly fixed crashes caused by tile entities under certain circumstances again. 2011-07-13 21:27:42 -04:00
EvilSeph
185d590146 Fixed the accounting for world UID conflicts. 2011-07-13 15:40:31 -04:00
Dinnerbone
3d28c67c08 Implemented helper methods + new biome methods 2011-07-13 10:44:03 +01:00
EvilSeph
7f6e7060d7 Account for world UID conflicts. 2011-07-13 03:29:43 -04:00
Warren Loo
eb19e4e8dc Fixed uuid code that was prematurely pushed. 2011-07-13 02:19:56 -04:00
Rigby
9e49127c7d Made the order of aliases matter. We may or may not re-do this in a later build. 2011-07-13 00:31:05 -04:00
Warren Loo
a9cdc36f2c Possibly fixed crashes caused by tile entities under certain circumstances. 2011-07-13 00:31:05 -04:00
Tahg
d0f904fc50 uuid changes 2011-07-13 00:06:07 -04:00
stevenh
83fd8fad69 Added command line logging configuration which enables log file:
* Size limiting (--log-limit <size in bytes>)
* Rotation (--log-count <count of files>)
* Custom naming (--log-pattern <filename pattern>)
* Append (--log-append <true|false>)
Note: This is done via command line and not bukkit-settings as that would require lots of refactoring of both core server and CraftBukkit due to the current initialisation ordering and depenencies.
All settings default to that of the standard server
2011-07-10 18:28:57 +01:00
Dinnerbone
c56d0c0842 Use generators from bukkit.yml if none was specified at createWorld 2011-07-08 19:01:03 +01:00
Dinnerbone
2f218ba6b1 Update for 1.7.3 2011-07-08 13:25:53 +01:00
Dinnerbone
cc635ed51c Try find conflicting UIDs 2011-07-07 20:49:13 +01:00
Dinnerbone
0993e6cbd1 Okay, back to arbitrary offsets! 2011-07-07 20:29:57 +01:00
Dinnerbone
2564043882 No longer use an arbitrary offset to locate the correct map 2011-07-07 20:22:03 +01:00
Dinnerbone
83abbfe4d6 Cleaned up this worlduid stuff a little. 2011-07-07 19:47:42 +01:00
Rigby
4cab8635db Made maps support MultiWorld worlds. 2011-07-07 14:40:27 -04:00
Rigby
9ced39421f Implements a World UID. 2011-07-07 14:20:05 -04:00
EvilSeph
3789f61c7e Added PlayerFish event. 2011-07-03 03:01:38 -04:00
EvilSeph
aacb95e275 Fixed Sheep not firing EntityDeath event. 2011-07-02 21:28:45 -04:00
EvilSeph
f7e17b68de Fixed PlayerPickupItem event returning wrong amount picked up and added function to get the amount remaining on the ground. 2011-07-02 21:27:31 -04:00
EvilSeph
22097a9962 Fixed NPE in BlockFurnace. 2011-07-02 20:46:25 -04:00
EvilSeph
7cd03e65d1 Improved FurnaceBurn event.
- Added the ability to set the burn time of the fuel.
- Added the ability to set if a fuel should burn or not.
2011-07-01 18:55:40 -04:00
Erik Broes
68506e2a4a Forgot version in CraftBukkit 2011-07-01 14:24:59 +02:00
Erik Broes
1497eec04a Update for 1.7.2 2011-07-01 14:07:34 +02:00
EvilSeph
25f72c9caa Fixed doors not updating their state to reflect any redstone currents when placed. 2011-06-30 13:54:12 -04:00
EvilSeph
b530299759 Made trapdoors fire BlockRedstone events. 2011-06-30 13:51:42 -04:00
Rigby
1e209e8e11 Improved PlayerMove event implementation. 2011-06-30 13:42:18 -04:00
EvilSeph
49df44ad6c Possible fix for cancelled CraftScheduler tasks still running. 2011-06-30 13:42:18 -04:00
EvilSeph
8a521ec629 Added reasons for entities regaining health. 2011-06-30 13:42:18 -04:00
EvilSeph
f518ced9ad Fixed BlockRedstone event firing too many times under certain circumstances. 2011-06-30 13:11:47 -04:00
Dinnerbone
61a7a0633c Update to minecraft 1.7_01 2011-06-30 15:47:36 +01:00
Dinnerbone
a679e7f380 Update to Minecraft 1.7 2011-06-30 15:19:25 +01:00
Erik Broes
a98c7ba2c7 Massive renaming update in nms. If you bypassed Bukkit, you will likely break.
Also minimized all the nms diffs and generic cleanups all around.
2011-06-27 00:47:03 +02:00
Erik Broes
9e5dba8306 Picking up arrows now also fires PlayerPickupItem 2011-06-27 00:05:17 +02:00
Erik Broes
f0402d9d6c Fixed cancelling the PlayerPickup event, getAmount(), item duping issue. 2011-06-26 05:04:14 -04:00
EvilSeph
b4c0492b15 Fixed Explosion.setYield(0) still dropping blocks. 2011-06-26 00:02:56 -04:00
Dinnerbone
528e8c7221 Don't register commands only on init 2011-06-26 02:46:04 +01:00
EvilSeph
0b92a51ba7 Fixed the fix of the EntityTame event. 2011-06-23 20:07:34 -04:00
Rigby
a5dd42adb9 Portals created by fire now trigger PortalCreateEvent. 2011-06-23 20:02:00 -04:00
Dinnerbone
b94bb27663 Delayed alias registration until postworld 2011-06-24 00:57:46 +01:00
EvilSeph
22c28e593e We build for JDK 1.5. 2011-06-23 15:41:07 -04:00
sunkid
6e746ef79a Made bukkit settings reload on reload(). 2011-06-23 14:35:05 -04:00
EvilSeph
ebfd973d09 Fixed PlayerPickupItem event firing even if the player could not pick up the item. 2011-06-23 01:25:08 -04:00
Dinnerbone
98098481e9 Fixed default command alias to do an array 2011-06-22 19:20:14 +01:00
Dinnerbone
0a3b89c8f8 Implemented new alias system 2011-06-22 19:10:29 +01:00
Dinnerbone
e73b10cf9e Fire WorldLoad events on default worlds for plugins who load:startup 2011-06-22 18:33:23 +01:00
Dinnerbone
7f0126a364 You may now set a generator to a default world using plugin.yml 2011-06-22 18:27:52 +01:00
Dinnerbone
d647e2098e Implemented startup plugin loading 2011-06-22 18:27:51 +01:00
EvilSeph
ff67eda4c4 Fixed players not healing in other worlds when spawn-monsters is false. 2011-06-22 12:52:02 -04:00
Rigby
7efaa1a02e Inform the client when a move event is cancelled. 2011-06-22 12:49:50 -04: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
EvilSeph
faab690dc7 Added Sky biome for the Skylands. Thanks robin0van0der0v! 2011-06-21 15:46:02 -04:00
EvilSeph
cd1c3858eb Fixed spawn location offset. 2011-06-21 00:24:20 -04:00
Rigby
0648302078 Implements isBedSpawn() to the PlayerRespawnEvent. 2011-06-21 00:21:11 -04:00
Rigby
138c70183d Changed Nether portals to be handled by a customiseable PortalTravelAgent and updated the PlayerPortalEvent 2011-06-20 18:33:21 -04:00
sunkid
214d412505 Added the abitility to spawn fireballs. 2011-06-20 16:26:22 -04:00
EvilSeph
8df3fe62f4 Remove Squid spawning restriction as Squids seem to obey spawn flags. 2011-06-20 12:45:33 -04:00
EvilSeph
5335508c2e Possible fix for furnaces leaving items behind. 2011-06-20 01:40:11 -04:00
EvilSeph
918f488d23 Added Furnace smelt and burn events. 2011-06-20 00:15:32 -04:00
sunkid
6cf0fc4a7b No more ghastly pigs! 2011-06-19 18:39:47 -04:00
sk89q
57d677d1e8 Fixed CraftWorld.spawn() having all the inheritance checks backwards. 2011-06-19 12:59:36 -07:00
EvilSeph
7ac53dfc8b Fixed NPEs in infinite item loss fix 2011-06-19 13:58:38 -04:00
EvilSeph
cb7b82d452 Added API to allow plugins to set the world's spawn flags. 2011-06-19 06:34:22 -04:00
EvilSeph
89a524678a Added getOnlineMode() for the Server. Thanks Rigby! 2011-06-19 06:34:21 -04:00
EvilSeph
a6e5c97223 Fixed losing an infinite item when interacting with an entity. Thanks for the help Rigby! 2011-06-19 04:25:57 -04:00
EvilSeph
12b7499c4f Added Entity target events to EntityGhast. Thanks winsock! 2011-06-19 01:44:42 -04:00
EvilSeph
98f05f7756 Fixed hostile entities continuously targeting dead entities. Thanks Rigby! 2011-06-19 00:53:45 -04:00
EvilSeph
b292a9dfbc Added more events for Wolves. Thanks Deaygo!
Added events for when wolf owner attacks an entity, or is attacked. Also added event for when a non-tame wolf targets a sheep.
2011-06-18 22:37:52 -04:00
sunkid
155874eec9 Implemented the concept of a projectile. 2011-06-18 22:21:02 -04:00
sunkid
546e1306d8 Fix for spawnMinecart. 2011-06-18 21:56:42 -04:00
Rigby
0ef0bdb61c I'm sorry Paintings... please come back... 2011-06-19 09:05:28 +08:00
sk89q
a6b8b80fad Added PlayerToggleSneakEvent.isSneaking(). 2011-06-18 14:35:51 -07:00
EvilSeph
4cefee5be7 Added world seed display to 'Preparing level' log message for each world 2011-06-18 00:29:34 -04:00
EvilSeph
87b421767c Added wolf damage and target events. Thanks Deaygo! 2011-06-18 00:12:47 -04:00
EvilSeph
b0fcbe7fca Fixed several NPEs within World. Thanks Deaygo! 2011-06-18 00:12:47 -04:00
EvilSeph
68695fb9d6 Fixed EntityTame event firing too many times. 2011-06-17 23:06:20 -04:00
EvilSeph
d48e9c22f5 Added BlockSpread, BlockForm and BlockFade events. 2011-06-17 22:19:43 -04:00
EvilSeph
22f26895ec Added Redstone event support for detector rails. 2011-06-17 20:11:16 -04:00
EvilSeph
b92f54639a Added recommended work-around for handling player movement in such a way that it doesn't trigger the movement speed check. Thanks for the help Rigby!
Plugins are advised to no longer teleport players in the PlayerMove event and to use setTo instead, as we now trigger a teleport when setTo is used.
2011-06-17 19:22:57 -04:00
EvilSeph
f3d25e647f Added EntityRegainHealthEvent. Thanks TimWolla! 2011-06-17 16:55:00 -04:00
sunkid
fadd962b9c Added the implementation of the concept of an Explosive. 2011-06-17 16:55:00 -04:00
EvilSeph
10fb5dc843 Added ChunkSnapShot improvements. Thanks mikeprimm!
Added support for biome data to chunk snapshot
Added method for returning empty chunk snapshot (for ungenerated chunks)
2011-06-17 09:23:19 -04:00
EvilSeph
105cc5393c Forgot to account for code shuffling with player.dat fixes. 2011-06-17 08:59:03 -04:00
EvilSeph
39332e5c87 Added Instrument enum, Note class and get/setNote functions. Thanks xZise! 2011-06-17 03:16:18 -04:00
EvilSeph
cc1b0a005c Added per player time support. Thanks eisental, Shamebot and needspeed10! 2011-06-17 02:29:16 -04:00
sunkid
a70a5abc3d Added implementation of general spawn method. 2011-06-17 01:57:33 -04:00
sunkid
a8817b7bd1 Implemented extended createExplosion methods. 2011-06-17 01:44:32 -04:00
EvilSeph
be45f900e5 Fixed issues with infinite items. Thanks for the help Rigby!
Dropped infinite items now become a stack of 1. Our reasoning behind this is that people who want an infinite item can usually give it to themselves or have someone else give it to them through a plugin (most plugins provide this functionality already).
2011-06-17 01:12:49 -04:00
Rigby
0c56bfb62f Possible Player.dat fixes to address issues with switching between Vanilla and Bukkit or vice versa. 2011-06-17 01:00:19 -04:00
Dinnerbone
7aadc3d666 Moved spawn-protection from server.properties into (settings.)spawn-radius in bukkit.yml 2011-06-17 04:49:58 +01:00
Dinnerbone
c0244eda04 Implemented bukkit.yml command aliases 2011-06-17 04:09:43 +01:00
Dinnerbone
7e22faf9d6 Moved some craftbukkit stuff down from WorldServer to World; should fix a few NPEs during generation, and saves on a lot of casting 2011-06-17 03:06:45 +01:00
Dinnerbone
a818669be0 When someone moves to Bukkit from a vanilla (or other mod) server, move the old nether folder to the bukkit location. (Yes, it sucks, no, there's no alternative.) 2011-06-16 21:41:01 +01:00
Dinnerbone
e08568de4a Implemented ChunkPopulateEvent 2011-06-16 19:33:36 +01:00
EvilSeph
6f1d6a4ca8 Fixed EntityTame event. 2011-06-15 15:01:09 -04:00
EvilSeph
e2c9e92d98 Properly fixed BlockPlace event for Redstone wire. 2011-06-15 14:56:20 -04:00
EvilSeph
9d8428607b Fixed login message and CraftBukkit comment. 2011-06-14 10:16:54 -04:00
EvilSeph
8bfa8e2d04 Made Squids fire EntityDeath events. 2011-06-14 10:16:53 -04:00
Erik Broes
9adc03abab Generic cleanup of the org.bukkit.craftbukkit classes. 2011-06-12 12:51:54 +02:00
Dinnerbone
b042f48b24 Fixed random NPEs when generating a world 2011-06-11 23:47:30 +01:00
Erik Broes
96b1b8a10c Generic cleanup 2011-06-12 00:30:52 +02:00
sk89q
938db4de2d Updated the block place cancellation code for steps to handle many more cases. There's still one edge case left however. 2011-06-11 01:50:08 -07:00
EvilSeph
73e34c2fe3 Added ItemSpawnEvent. Thanks myers! 2011-06-11 02:00:05 -04:00
EvilSeph
5b93f5565a Fixed from and to worlds being the same for a PlayerTeleportEvent for crossworld teleports. Thanks for the help Rigby and Verrier! Tahg is responsible for the mess. 2011-06-11 01:33:37 -04:00
EvilSeph
cd12f057a7 Fixed cancelled lighting strikes dealing damage. 2011-06-10 20:37:33 -04:00
EvilSeph
fb3e3ade90 Possible fix for clay generation. 2011-06-10 19:59:52 -04:00
EvilSeph
80770314d8 Fixed fireball explosions not producing fire. 2011-06-10 19:59:31 -04:00
EvilSeph
a9e7b56ef2 Improved handling of being sent to your bed spawn if the world saved in your player.dat no longer exists. 2011-06-10 06:33:25 -04:00
EvilSeph
a98f4f8934 Fixed not being able to login if the world saved in your player.dat no longer exists. Thanks for the help Rigby and Verrier! 2011-06-10 05:45:17 -04:00
EvilSeph
8f4c36974b Added world name to player logged in message. 2011-06-10 05:35:44 -04:00
EvilSeph
6607b6785d Fixed getting stuck in the ground when respawning to a bed under certain circumstances 2011-06-10 03:52:50 -04:00
EvilSeph
ad95bf4095 Redid packet prioritisation to fix chunk loss bug encountered when teleporting, also addresses issues caused by teleport fixes. 2011-06-10 03:52:49 -04:00
EvilSeph
cb9c7d1b2a Fixed trapdoors not updating their state if a Player Interact event is cancelled. 2011-06-10 03:52:48 -04:00
EvilSeph
7e3895b69a Fixed Creepers being killed even if their Explosion Prime event is cancelled. 2011-06-10 03:52:48 -04:00
sk89q
e5c6b329d5 Whoops, need this commit too. 2011-06-09 23:56:42 -07:00
sk89q
bf4a4a767c Added some missing @Override. 2011-06-09 23:30:38 -07:00
sk89q
ccabbcbf0a Added World.createExplosion() that takes a Location, instead of just raw X, Y, Z values. 2011-06-09 23:13:38 -07:00
sk89q
a25ab644df Cleaned up some Javadocs. 2011-06-09 23:11:37 -07:00
sk89q
e45c502ec1 Moved playSound/Effect(Player, ...) to Player.playEffect(Location, ...) to be consistent, and because the code didn't really do what the Javadoc said. 2011-06-09 23:08:00 -07:00
sk89q
846bd468d4 Changed sound playing to effect dispatching, since these seem more like more like encompassing effect than mere sounds. 2011-06-09 22:57:32 -07:00
sk89q
baf9a9f501 Merge branch 'sound' of https://github.com/sunkid/CraftBukkit 2011-06-09 22:38:44 -07:00
EvilSeph
f627b69be9 Improved CreatureSpawnEvent and made Water Animals obey spawn-animals setting. 2011-06-09 18:42:30 -04:00
sunkid
5fe9ac362b implementations of the playSound methods 2011-06-09 12:37:27 -07:00
Tahg
baa92bdd06 reverted some changes that broke stuff 2011-06-09 14:24:21 -04:00
Tahg
ca0711fdb3 fixed support for multiworld beds 2011-06-09 09:46:55 -04:00
EvilSeph
4a0eb0a4a1 Added method to create an explosion in world. Thanks Zaraza107! 2011-06-09 04:17:19 -04:00
EvilSeph
b0714775e1 Added EntityTame event. Thanks halvors! 2011-06-09 04:03:15 -04:00
EvilSeph
0c24f86a09 Fixed redstone current being sent even if a BlockPlace was cancelled. 2011-06-09 02:54:58 -04:00
EvilSeph
053e05dd37 Fixed weather changes affecting players in all worlds, instead of their respective worlds. 2011-06-09 02:33:16 -04:00
EvilSeph
569b1d2746 Made it possible to block punching fire out through PlayerInteract event. 2011-06-09 01:06:24 -04:00
EvilSeph
4bdc752acd Fixed issues introduced by recent 'portal changes' commit. 2011-06-08 20:08:29 -04:00
raphfrk
8320917363 Adds update chunk method for sending fake chunk updates to the client. This is to match the sendBlockChange method. 2011-06-08 19:05:01 -04:00
Stephen
1a1fc953cb Implemented 1.6 portal events. 2011-06-08 18:46:29 -04:00
EvilSeph
a285a7b211 Added more control over block placement on interactable objects. Thanks Acru!
Plugins can now allow placing a block on an interactable object, by DENYing the
interact and ALLOWing the place.
2011-06-08 17:52:10 -04:00
EvilSeph
b5d1619e75 More teleport changes. Thanks Zeerix! 2011-06-08 17:00:30 -04:00
Tahg
5296f97cde Portal changes. 2011-06-08 16:57:46 -04:00
Erik Broes
8b49a945c2 Prevent effects of tickrate degradation on furnaces 2011-06-07 23:10:18 +02:00
Erik Broes
029ca3e2f6 Prevent effects of tickrate degradation on item pickups 2011-06-07 23:09:48 +02:00
Dinnerbone
ce6524d453 Fixing a serious issue caused by SpaceManiac. All his fault. 2011-06-07 19:37:21 +01:00
Dinnerbone
147e3d684d Fixed health on multiworld teleportation 2011-06-07 19:32:14 +01:00
Dinnerbone
864f8d2f0d Fixed nether's identity crises 2011-06-07 19:25:44 +01:00
EvilSeph
17c361a5e4 Exempt Vehicles from Entity.java's sanity check 2011-06-07 04:25:19 -04:00
EvilSeph
d33c06ead2 Added UniqueId to entities. Thanks Afforess! 2011-06-07 04:21:33 -04:00
EvilSeph
95c19d5f22 Added ChunkSnapshot for efficient, thread-safe copies of Chunk data. Thanks mikeprimm! 2011-06-07 03:34:23 -04:00
EvilSeph
68608169cd Implemented unloadWorld(). Thanks Rigby! 2011-06-07 03:16:07 -04:00
EvilSeph
57a1a7422c Re-added per-world PVP setting support which was accidentally lost in translation. Thanks Rigby! 2011-06-07 01:43:12 -04:00
EvilSeph
9fde27bfcd Fixed IPv6 support in NetworkManager. 2011-06-07 01:29:55 -04:00
EvilSeph
6bd509ebde Fixed durability changing regardless of whether or not damage was successful. Thanks Xolsom!
Note: Plugins may need to update the client to keep it in synch.
2011-06-07 01:00:30 -04:00
EvilSeph
ef9295707a Fixed entity damaged by entity event firing twice when players damage each other. Thanks Xolsom! 2011-06-07 00:57:36 -04:00
Dinnerbone
8b3f90f232 Use the custom set spawn 2011-06-06 21:38:35 +01:00
Dinnerbone
d40c690c8f Fix for generator stuff now being class 2011-06-06 21:12:03 +01:00
Dinnerbone
fedcbdf256 Implemented custom chunk generators and block populators 2011-06-06 18:38:47 +01:00
EvilSeph
891dfbcef8 Possible fix for some chunk loading issues experienced when teleporting. Thanks akrieger! 2011-06-05 12:38:56 -04:00
EvilSeph
7499e2e0df Fixed chunks saving more than they need to. Thanks Rigby! 2011-06-05 11:56:21 -04:00
Erik Broes
86de98da9c Squelch stacktrace for 'not so important'-'error' 2011-06-05 12:13:38 +02:00
Tahg
5a29d69731 map cursor rotation fix 2011-06-03 18:38:55 -04:00
Tahg
b9d8248a81 attempted nether fix 2011-06-03 18:38:16 -04:00
Tahg
5f684ef163 fixed environments 2011-06-03 18:36:14 -04:00
Tahg
ebc478388c fixed cross world teleport 2011-06-01 18:35:57 -04:00
Tahg
66109d6e57 moved respawn event 2011-05-31 20:10:21 -04:00
Tahg
8835cb905f More multiworld fixes 2011-05-31 21:19:37 +02:00
Erik Broes
62b5da4e3a Update for 1.6.6 2011-05-31 15:56:05 +02:00
Erik Broes
6dbd710bbf Update for 1.6.5 2011-05-30 22:37:34 -04:00
Tahg
9ec5d8b5df Improved packet handling 2011-05-28 00:33:16 +02:00
Dinnerbone
1784e42d5f Fixed a bunch of multiworld issues (entity tracking etc) 2011-05-27 00:11:45 +01:00
EvilSeph
036f49ddbf Fixed the Bukkit Scheduler. 2011-05-26 17:29:57 -04:00
Dinnerbone
9934dd8561 Version fix 2011-05-26 15:21:54 +01:00
Erik Broes
5e1c969af2 Update for 1.6.4 2011-05-26 16:20:11 +02:00
Dinnerbone
dc76d3a64a Update for 1.6.3 2011-05-26 14:30:16 +01:00
Dinnerbone
6903f20242 Implemented 1.6! 2011-05-26 13:48:22 +01:00
sk89q
f463453d73 Fixed issue where the Bukkit entity was detected before the entirety of the entity's NBT data was read, causing affected entity types to not be differentiated correctly. 2011-05-23 19:42:30 -07:00
EvilSeph
3cd135b08d Possible fix for teleports triggering 'moved too quickly' check. 2011-05-23 03:57:01 -04:00
EvilSeph
949634ad67 Fixed animals not spawning when spawn-monsters is set to false. 2011-05-22 15:33:34 -04:00
stevenh
8b0924bbb4 Fixed duplicate console and player messages when built in server commands where used or an unknown command was issued 2011-05-22 20:30:01 +01:00
Dinnerbone
6319a19073 Possible fix for -nojline printing blank lines 2011-05-19 21:46:47 +01:00
EvilSeph
480c1b9877 Fixed -nojline. 2011-05-19 14:15:13 -04:00
EvilSeph
962f05821b Minimal diffs. 2011-05-19 01:15:51 -04:00
EvilSeph
afb08bb0c5 Account for time drifting backwards on servers with the moved too quickly check changes. 2011-05-19 00:45:42 -04:00
EvilSeph
eac5b9623d Added -nojline CLI option to emulate vanilla console behaviours. Added JLine disabling compatibility (removes the '>').
-nojline disables JLine, removes the '>', sets the timestamp to vanilla's and sets the language to English.

-Djline.terminal=jline.UnsupportedTerminal disables JLine and removes the '>'.
2011-05-18 21:36:30 -04:00
EvilSeph
cd87e51638 Fixed issues with updating redstone state under certain circumstances. 2011-05-17 01:06:59 -04:00
EvilSeph
38ebaa53e1 Limit human entity name length to 16 characters, as per the spec. 2011-05-16 21:36:16 -04:00
EvilSeph
bc5924bbc5 Made the save-all modification respect the original save state. 2011-05-16 20:27:06 -04:00
EvilSeph
605bfd972f Fixed dispensers not working. 2011-05-16 19:34:25 -04:00
EvilSeph
c4138ff4d3 Made save-all force saving like it says it does. 2011-05-16 17:47:08 -04:00
EvilSeph
f8d83d9e03 Made player data save only if saving is turned on, in line with how the rest of saving works. 2011-05-16 17:33:43 -04:00
EvilSeph
7f73594aa8 Added get/setLastDamageCause. Thanks sunkid! 2011-05-16 00:26:22 -04:00
EvilSeph
8de2b52a02 Removed double firing of EntityDamage events by arrows. Thanks sunkid! 2011-05-16 00:04:40 -04:00
EvilSeph
27e75c358d Fixed trees being invisible under certain circumstances. Thanks Zeerix! 2011-05-15 23:52:11 -04:00
EvilSeph
a4570215fd Fixed TileEntity updates occurring upon a multi-block change. Thanks stoneLeaf! 2011-05-15 22:54:13 -04:00
EvilSeph
3439b7f9d9 Made setHealth(0) trigger EntityDeathEvent and drops. Thanks yetanotherx! 2011-05-15 22:16:46 -04:00
Erik Broes
309846d732 Whitespace + general cleanup 2011-05-15 13:41:46 +02:00
EvilSeph
e54d8c3352 Dead men tell no tales. 2011-05-12 16:10:46 -04:00
Andrew Ardill
25a74b624c Edited src/main/java/org/bukkit/craftbukkit/entity/CraftPig.java via GitHub 2011-05-11 17:42:42 -07:00
Andrew Ardill
88d0171c43 Merge pull request #268 from xPaw/master
Implemented hasSaddle/setSaddle
2011-05-11 17:40:13 -07:00
EvilSeph
32fd447715 Cleaned up left over debug messages. 2011-05-10 14:44:45 -04:00
EvilSeph
5ca0a881ad Moved inventory cleaning to occur after the event is called to preserve the exact state of the inventory for plugin use. 2011-05-09 15:53:53 -04:00
EvilSeph
0faaf5af8a Made the movement speed check more reliable on high load servers. 2011-05-09 14:51:01 -04:00
sk89q
98633a9f16 Added dispenser event. 2011-05-08 02:57:44 -07:00
sk89q
6cbd4cdf9e Added World.strikeLightningEffect() that does no damage. 2011-05-06 19:25:44 -07:00
sk89q
c05cc33f7a Changed LightningStrikeEvent to return a LightningStrike and not an Entity. 2011-05-06 19:24:57 -07:00
EvilSeph
99a7b91ef1 Added an update on load feature for plugins. Thanks Raphfrk!
Any files placed in the configurable update folder are automatically copied into the plugins directory the next time a reload happens. This allows safe updating of the plugin .jar files. The name of the update folder is configurable through bukkit.yml.
2011-05-05 17:56:52 -04:00
EvilSeph
54e2254904 Made teleporting between worlds 'smoother'. Thanks Raphfrk! 2011-05-04 22:16:26 -04:00
EvilSeph
ef7e3689b3 Possibly fixed chunk loss bug encountered when teleporting. Thanks Raphfrk! 2011-05-04 22:06:08 -04:00
EvilSeph
1f2c44e657 Fixed 'Entity is already tracked' issues. 2011-05-04 21:25:57 -04:00
EvilSeph
41a2bc9690 Fixed crafting 'lag' introduced by additions to the Crafting API. 2011-05-04 21:08:43 -04:00
sk89q
93708cb748 Added services manager framework. 2011-05-02 11:31:33 -07:00
sk89q
bdcee9025c Added method to fake a block change request for a player. 2011-05-02 11:31:33 -07:00
sk89q
80a1a4ac82 Added Player.playNote(). 2011-05-02 11:31:32 -07:00
sk89q
98cea5cd15 Added NoteBlock.play(instrument, note). 2011-05-02 11:31:32 -07:00
Andrew Ardill
83eecfbd4e AnimalTamer implementations, refactor and clean-up of code 2011-05-03 00:46:38 +10:00
Mike Primm
02d7f32e8f Fix isSitting()/setSitting(), add isTame()/setTame()/getOwner()/setOwner() methods 2011-05-02 23:55:46 +10:00
Andrew Ardill
cd3c8fcfc8 We build for Java 1.5, so no @Override for interface implementations 2011-05-02 23:55:18 +10:00
EvilSeph
bf1f5b00d7 Added PlayerInteractEntityEvent which fires when a player right clicks an entity. Thanks fullwall! 2011-05-02 04:30:51 -04:00
Raphfrk
fdb077e814 Improved the Scheduler.
Adds nag message when async tasks are not properly shut down and adds a limiter for sync tasks. Once they use 35ms in a single tick, any remaining tasks are not executed until later ticks. Adds a method to report the pending tasks and one to report active worker threads
2011-05-02 02:40:07 -04:00
Raphfrk
aa70240917 Added a setArmorContents method to PlayerInventory.
It handles error checking.  Null item stacks and air item stacks are both converted to clear slot calls to prevent crashing the client.
2011-05-02 02:09:24 -04:00
EvilSeph
e56a8d4720 Added SnowFormEvent. Thanks aPunch! 2011-05-02 01:48:08 -04:00
Rigby
f342db744a Added per world PVP setting support. 2011-05-02 00:32:26 -04:00
Celtic Minstrel
5a5ce79035 Implemented addRecipe method in CraftServer and associated recipe classes. 2011-05-01 23:40:48 -04:00
EvilSeph
017b15c3a6 Fixed block lag. 2011-04-29 04:55:04 -04:00
EvilSeph
955a78b8fd Handle NPE in ThreadLoginVerifier that occurs when trying to continue using a closed socket. 2011-04-29 03:14:16 -04:00
EvilSeph
9d7a03a64a Cleaning up some redundant code. 2011-04-29 02:09:30 -04:00
Tahg
97c5f2bb8e improved sign handling 2011-04-28 01:30:15 -04:00
EvilSeph
b054cfdda7 Fixed duping exploit. 2011-04-27 00:43:22 -04:00
Tahg
b075a58657 fixed painting NPE 2011-04-26 15:40:24 -04:00
xPaw
73aa3ac03c Added hasSaddle/getSaddle 2011-04-26 07:29:25 -07:00
EvilSeph
6711975658 Fixed PlayerQuitEvent.setMessage(). 2011-04-25 22:36:55 -04:00
EvilSeph
fe75ab2500 Fixed CraftBukkit comments in World.java. 2011-04-25 22:00:18 -04:00
EvilSeph
57bc71df0e Fixed sleeping. 2011-04-25 21:57:22 -04:00
EvilSeph
8f4ce0988c Added missing CraftBukkit comments. 2011-04-25 21:19:44 -04:00
EvilSeph
b2c558eab1 Fixed rain not putting out fires due to a mistranslation issue. 2011-04-25 21:09:29 -04:00
EvilSeph
d2a4c510b3 Added events related to weather in 1.5. Thanks wizjany! 2011-04-25 19:47:25 -04:00
EvilSeph
1d0a6d56b7 We need to reset the invalid position. 2011-04-25 19:11:44 -04:00
Erik Broes
70c177e0fb Implemented painting events (thanks verrier and tanelsuurhans) 2011-04-25 23:27:10 +02:00
Rigby
5fff84c5a9 Added the ability to retrieve a world's Seed. 2011-04-25 16:49:24 -04:00
Erik Broes
1db5464d91 Fix forgotten call of EntityInteractEvent for PressurePlates. 2011-04-25 22:21:07 +02:00
Erik Broes
88ebcc8db5 Fix TextWrapping issues; Now limits the packets send to the client to either: 119 chars or 320 width. This will strip disallowed characters, propagate colors properly to the next line and not 'eat' multiple color-codes. 2011-04-25 22:17:07 +02:00
EvilSeph
2a9c15c976 Fixed ENTITY_INTERACT event for BlockSoil. Thanks wizjany! 2011-04-25 05:07:31 -04:00
EvilSeph
0740e0c777 Fixes the whitescreen issue some people were having. 2011-04-24 20:16:01 -04:00
EvilSeph
d156fcf9c8 Hid stacktrace for socket exceptions. 2011-04-23 04:47:38 -04:00
EvilSeph
5dfe732f18 Added reset for pitch/yaw if they are somehow set to NaN. 2011-04-23 04:18:00 -04:00
EvilSeph
2ad7856d78 Limited sign text length to 15 characters, as per the spec. 2011-04-23 02:41:12 -04:00
EvilSeph
932d70cde1 Made the server not accept Packet27 as it is not used. 2011-04-22 20:06:48 -04:00
EvilSeph
da85c18230 Reduced console spam under certain conditions. 2011-04-22 19:57:19 -04:00
sk89q
8681752ee2 Fixed NPE in lightning fire event. 2011-04-22 03:13:47 -07:00
sk89q
a042ee1e26 Add methods to control thunder. 2011-04-22 03:13:21 -07:00
sk89q
c3ce6ce3ab Added weather control methods. 2011-04-22 02:18:13 -07:00
sk89q
6739d6d75c Added World.strikeLightning(). Also renamed WeatherStorm -> LightningStrike. 2011-04-22 01:25:55 -07:00
sk89q
628fec752b Added events for fires caused by lightning. (Not 100% sure that they get called though.) 2011-04-22 01:18:24 -07:00
sk89q
4ecbf5f590 Changed Block.setTypeId() back to old behavior before the new translation process. 2011-04-21 23:31:09 -07:00
EvilSeph
58d3107e4c Fixing CLI arguments for the 100th time - now with CraftBukkit comment-ey goodness. 2011-04-22 00:42:56 -04:00
EvilSeph
c18e04ce8b Proper fix for the console spam on disconnect/kick. 2011-04-21 19:08:40 -04:00
EvilSeph
8ba9f32162 Fixed ordering of params used in SignChangeEvent. 2011-04-21 18:44:28 -04:00
Dinnerbone
3afe2df241 Implemented stats/achievement giving 2011-04-21 20:57:34 +01:00
EvilSeph
212ec7f33d Reduced console spam on disconnect/kick. 2011-04-21 15:46:18 -04:00
EvilSeph
4d78c45d8b Made reload support allow-flight. 2011-04-21 15:40:22 -04:00
Dinnerbone
4ae695a176 Fixed the fix of Creeper.setPowered 2011-04-21 18:55:20 +01:00
Dinnerbone
f1b40ed4e3 Fixed creeper.setPowered 2011-04-21 18:41:47 +01:00
Dinnerbone
0586e04981 Implemented LIGHTNING damage 2011-04-21 17:29:35 +01:00
Dinnerbone
d5ee48a0c8 Implemented Weather and WeatherStorm 2011-04-21 16:51:58 +01:00
Dinnerbone
1a68a2aafe Implemented Creeper.is/setPowered 2011-04-21 16:15:44 +01:00
Dinnerbone
7c455380a9 Java compat 2011-04-21 15:43:09 +01:00
Erik Broes
a6c8a36dce Update for 1.5_02. 2011-04-21 04:25:46 -04:00
EvilSeph
2fd3f8d299 Reapplying changes lost with our new system in CraftInventory and CraftInventoryPlayer. 2011-04-21 00:24:27 -04:00
Erik Broes
483a878b8b Update for 1.4_00_01 -- if you bypassed Bukkit, you will most likely break. 2011-04-20 19:05:14 +02:00
sk89q
ac9f297445 Don't want the scheduler taking invalid arguments as well. 2011-04-18 23:52:19 -07:00
sk89q
a450dcbb83 Fixed CraftScheduler to catch exceptions thrown by tasks, rather than crash the server. 2011-04-18 23:48:16 -07:00
EvilSeph
0048b22e44 Fixed another issue involving invalid player positions or movement. 2011-04-19 01:39:23 -04:00
EvilSeph
5e154b2235 Fixed name display in log messages for invalid yaw/pitch check. 2011-04-19 00:49:59 -04:00
sk89q
8aa376fc27 Added pre-login event for catching logins right after name verification has completed. This happens in a different thread from the server (and thus can also block). 2011-04-16 03:08:13 -07:00
Andrew Ardill
dc6c906e1a The @Override annotation should only be used when overriding a method.
Not when implementing an interface.
2011-04-14 12:58:04 +10:00
EvilSeph
2c1f336e97 Fixed an oversight allowing players to set invalid positions. 2011-04-13 21:14:04 -04:00
EvilSeph
f34f41a471 Fixed the NaN check in Entity.java 2011-04-13 03:13:36 -04:00
EvilSeph
70eb283bd0 Removed redundant check due to merging the ifs. Ooops. 2011-04-12 22:14:42 -04:00
EvilSeph
534d546002 Fixed a crash involving invalid positions. 2011-04-12 22:03:54 -04:00
sk89q
7baf5fa484 Made fauxSleeping persist on death and cross-world teleport. 2011-04-11 17:10:17 -07:00
sk89q
8de85b8afb Fixed potential NPE with bed leave event. 2011-04-11 17:07:20 -07:00
sk89q
86c467cb50 Fixin' the problem of AFK people not in bed. 2011-04-11 11:48:31 -07:00
EvilSeph
2685de187a Made what should be the last change missed in translation that might cause chunk issues. 2011-04-07 19:51:29 -04:00
sk89q
27d3396a35 Added bed events and methods. 2011-04-07 11:26:51 -07:00
EvilSeph
e2480e1347 Fixed firstEmpty() by making it search for the first null instead of Material.AIR. 2011-04-07 13:06:55 -04:00
Tony
4525d16842 Prevent nasty connection errors from hitting the console. 2011-04-07 09:52:04 -04:00
Dinnerbone
c99dc23917 Fix for invalid float values too 2011-04-07 07:20:11 +01:00
alron
270310a3a5 Made another change that was missed in translation that might cause chunk issues. This should address one of the chunk issues experienced when teleporting. 2011-04-07 01:56:39 -04:00
Dinnerbone
13218f55e4 Fixed a crash in pitch/yaw calculation, probably a big improvement performance too (but then maybe not :D) 2011-04-07 06:51:36 +01:00
Tahg
3c9944237a Fixed Compile error 2011-04-06 21:51:20 -04:00
Tahg
e1acd683b4 Fixed some NPE issues caused by previous commit 2011-04-06 21:34:50 -04:00
Tahg
2c1f57e20b Fixed stupidity in CraftInventory return types 2011-04-06 13:20:50 -04:00
Tahg
92e3957a0e getContents now returns null for items whose underlying item is null 2011-04-06 12:45:03 -04:00
Dinnerbone
8385b1436e Allows eggs support with Slimes, Wolves and Monsters 2011-04-05 17:19:24 +01:00
EvilSeph
9849076dbf Made changes that were missed in translation that might cause chunk issues. 2011-04-04 20:26:37 -04:00
Tahg
7a99fd7327 added some API for entities 2011-04-04 01:07:39 -04:00
afforess
d1e6408ea2 Changed PlayerQuit to allow last minute modifications to player state. 2011-04-03 16:11:16 -04:00
afforess
0f3f3c552a Added player.saveData and player.loadData. 2011-04-03 15:52:07 -04:00
Erik Broes
083e3ebd6e Base digging/blockbreaks on actual time rather than the servers tickrate.
Servers under high load suffer from tick-time degradation as severe as 1 tick
taking 0.25s (rather than 0.05s).  This will failing blockbreaks.
2011-04-03 11:06:12 +02:00
Raphfrk
121bcd5adc Added the ability to set the quit message 2011-04-02 18:22:19 +02:00
Erik Broes
c84d51f458 Fix chunk.getEntities 2011-04-02 17:56:06 +02:00
Stephen
5247bcba64 Implemented entity.getNearbyEntities() 2011-04-02 17:22:58 +02:00
afforess
a0b2a26c3a implementation of Entity.isDead 2011-04-02 17:19:39 +02:00
afforess
adb13029bc Forces clients to update to the new time immediately when setTime or setFullTime is called. 2011-04-02 17:17:17 +02:00
Robert Sargant
39972530f2 Added VEHICLE_DESTROY event 2011-04-02 17:12:18 +02:00
William Bowers
325f4e0c22 Implemented the new SpawnChangeEvent in CraftWorld.setSpawnLocation() 2011-04-02 16:58:50 +02:00
Dinnerbone
d5096a0193 Changed default database location to {NAME}.db instead of database.db 2011-04-01 16:52:00 +01:00
Dinnerbone
8b25433982 Implemented ebeans 2011-04-01 16:06:46 +01:00
Dinnerbone
160b54c965 Made Server a singleton 2011-04-01 16:06:46 +01:00
Erik Broes
c16ba1f940 Fix Entity.setVelocity 2011-04-01 12:28:55 +02:00
Erik Broes
09cfbfbf73 Fix world.getFullTime() 2011-04-01 09:24:42 +02:00
Erik Broes
c0a78fa6c6 Exempt players from calling CreatureSpawn 2011-04-01 09:15:48 +02:00
Erik Broes
7eeb0d8f4a Fix coordinates on SIGN_CHANGE 2011-04-01 09:10:29 +02:00
Erik Broes
a3a1436df5 Updated packet-filters 2011-04-01 00:27:04 +02:00
Dinnerbone
eb422e4ad4 Capture errors in plugins onLoad 2011-03-31 22:33:06 +01:00
Dinnerbone
baa8c53be0 Implemented Wolf 2011-03-31 22:10:48 +01:00
Dinnerbone
87c36febeb Updated to Minecraft version 1.4 2011-03-31 21:40:00 +01:00
Erik Broes
0635f7c1b8 CreatureSpawnEvent: Fix forgotten inheritance with CreatureType 2011-03-30 08:51:42 +02:00
Erik Broes
e9cc4bbb05 world.spawnCreature cast fix 2011-03-30 00:41:07 +02:00
Erik Broes
c69eac3f3a Add MONSTER to CreatureSpawnEvent 2011-03-29 23:18:48 +02:00
Erik Broes
ec74fe8e37 Move passenger-handling to CraftEntity 2011-03-29 23:14:59 +02:00
Erik Broes
195423cd0b Allow GIANTS to spawn from Eggs 2011-03-29 23:14:59 +02:00
HACKhalo2
33f7af519f Changed the Kick result from KICK_BANNED to KICK_WHITELIST because not being on the whitelist doesn't mean your banned. 2011-03-29 21:39:38 +01:00
Stephen
a31f37262d RegisterInterface reload bug fix 2011-03-29 21:32:24 +01:00
Dinnerbone
2ac43ce223 Ctrl+C saves world before stopping 2011-03-29 21:01:04 +01:00
Drakia
b37dd48ae5 Moved WORLD_LOAD event to after world is actually loaded 2011-03-29 18:41:52 +11:00
Dinnerbone
ee815b7e40 Fixed trickle exploit 2011-03-27 21:19:05 +01:00
Dinnerbone
c47db7092b Line endings, damnit! 2011-03-27 20:57:46 +01:00
Erik Broes
f1ffeb256d Limit server to only send the packets it creates and only accept the packets the client creates 2011-03-27 12:36:51 +02:00
Erik Broes
ce5ee0996c Updated for the changes done in Bukkit 2011-03-27 00:34:33 +01:00
Erik Broes
84054ec680 Fix some wrong event creations after previous change 2011-03-26 23:20:35 +01:00
Erik Broes
8dc7b55749 Reset 'stance' to something valid after receiving a broken one. Hopefully stops the server from falling over. 2011-03-26 22:47:35 +01:00
Erik Broes
e24b10dfd9 Updated for the cleanups done in Bukkit 2011-03-26 22:32:56 +01:00
Celtic Minstrel
47497aa3f9 Implement Sheep.get/setSheared. 2011-03-26 17:54:03 +01:00
Celtic Minstrel
9f30c9f8f4 Implement Slime.set/getSize() 2011-03-26 17:53:26 +01:00
Celtic Minstrel
cd50683f78 World.spawnCreature now returns LivingEntity instead of Creature, to allow Ghasts and Slimes to be spawned using the command. 2011-03-26 17:52:04 +01:00
Raphfrk
abf7f8581e Added ability to disable the join/leave notices by setting the message to null in the event. The join message is moved to the onJoinEvent rather than during login 2011-03-26 15:07:55 +01:00
Raphfrk
8e53077efe Switched biome coords from chunk based to block based 2011-03-26 15:05:16 +01:00
Erik Broes
1cbed230d6 Add LEFT_CLICK_BLOCK's face 2011-03-26 09:56:24 +01:00
sk89q
49955d5a1d Added Server.getServerId() for ID purposes. 2011-03-26 01:40:15 -07:00
Erik Broes
1eb2f75f53 Copy displayname when cross-world teleporting 2011-03-25 21:22:57 +01:00
Erik Broes
9162a654c4 Implement player.getCompassTarget 2011-03-25 21:22:03 +01:00
sk89q
6fc4d9dcfe Fixed CraftWorld.getSpawnLocation() not return the exact spawn location. 2011-03-25 12:24:18 -07:00
Erik Broes
95c08f854f Fix inability to use items under certain circumstances 2011-03-25 07:35:47 +01:00
Erik Broes
f330025f1f Fixed unable to eat/throw 2011-03-24 23:27:40 +01:00
Erik Broes
92518f4fc0 Stop GIANT discrimination 2011-03-24 22:51:47 +01:00
Erik Broes
ce714ab329 Fix CreatureType of CreatureSpawn event 2011-03-24 22:44:03 +01:00
Erik Broes
93fff2d5f5 Prevent double CraftWorld for the same world 2011-03-24 22:43:21 +01:00
Erik Broes
69d5132df4 Reset blocks faster clientside 2011-03-24 22:42:23 +01:00
Erik Broes
d6c3fe23e5 Minor logic change and small cleanups 2011-03-24 12:11:28 +01:00
Erik Broes
748b71b3cc Fix accidental Double.MAX_VALUE coordinates in initial PlayerMoveEvent 2011-03-24 00:52:10 +01:00