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

1441 Commits

Autor SHA1 Nachricht Datum
Thinkofdeath
930a59c68c Remove the length limit on inventory titles
1.8 no longer has a small limit like previous versions
2016-01-29 10:29:12 +00:00
ryanbennitt
07c300164a SPIGOT-1390: Fixed issues with Array.fill upper bound in setRegion 2016-01-03 15:21:05 +11:00
md_5
18fbb24b46 SPIGOT-1235: Correctly validate MaterialData for playEffect.
Thanks Jikoo for the report / fix.
2015-10-18 19:40:00 +11:00
Adam Thomas
f4c67a5c32 SPIGOT-1232: CraftServer.getPlayer(String name) returns incorrect results in some cases.
Use the absolute value of the delta to prevent negative values resulting in a better match.
2015-10-18 19:38:46 +11:00
md_5
12698ea5ad SPIGOT-1230: Normalize null log names in ForwardLogHandler.
Not technically 100% correct since null != "null", but without sacrficing performance this is the best way to fix the issue in the current implementation.
2015-10-10 22:09:31 +11:00
DemonWav
d4e32cef0c SPIGOT-759: Add FireworkExplodeEvent. 2015-09-30 09:02:11 +10:00
BlackyPaw
8cc1683e83 SPIGOT-989: Cap assignment of pickup delays to Short.MAX_VALUE due to storage implementation constraints.
Changed assignment of pickup delays in such a way that they may not be larger than the value actually stored inside the NBT format that is Short.MAX_VALUE. Did not change method signature in order not to produce any shortening cast warnings in existing code. All values larger than 32767 are generally used to indicate that an item should never be picked up. Shortening this to 32767 will actually cause the pickup delay to never decrease, thus resulting in non-pickupable item stacks.
2015-09-30 08:48:28 +10:00
md_5
62a216966f SPIGOT-1076: Add HurtEntities API for FallingBlock. 2015-09-19 09:27:51 +10:00
Thinkofdeath
a0d2928ba4 Add a missing break statement for openInventory, fixes opening dropper inventories 2015-09-18 21:42:40 +01:00
0x277F
2d4f577bbf Fixed how Dropper inventories are shown to players. 2015-09-18 15:16:50 +10:00
md_5
701ae54ffc SPIGOT-1192: Restore some behaviour to entity.getNearbyEntities 2015-09-18 15:15:56 +10:00
md_5
5e9f698fac SPIGOT-1165: Restore getNearbyEntities behaviour to include spectators. 2015-09-06 14:54:41 +10:00
Antony Riley
880a53248e New ChunkGenerator.generate api for block ids and avoiding magic values. 2015-08-01 21:22:29 +10:00
Riccardo Paolo Bestetti
5e85956281 SPIGOT-1080: Added support for opening all inventories implementing Bukkit's Inventory class. 2015-07-31 18:47:09 +10:00
md_5
9935adc4ed Update for minor remapping changes. 2015-07-30 17:13:35 +10:00
Thinkofdeath
2642f9b344 SPIGOT-1068: Limit the number of patterns on banners 2015-07-23 20:50:53 +01:00
Xor Boole
3e9b5c93d6 Prevent an Entity from riding itself. 2015-07-20 16:18:08 +10:00
Antony Riley
87b9f46d72 SPIGOT-1060: Allow custom generators to use block ids > 127 with bytes. 2015-07-19 09:23:48 +10:00
md_5
09ddd9b35e SPIGOT-1051: CraftInventoryPlayer.setItem can cause NPE. 2015-07-18 12:43:33 +10:00
Antony Riley
bf4818b94a Fix ItemStack.isSimilar(CraftItemStack) when HideFlags are set. 2015-07-15 19:47:59 +03:00
md_5
b105298f2e Simplify getPlayerExact / try for exact match first in getPlayer. 2015-07-13 19:00:33 +10:00
md_5
65cd4d79fd Simplify OfflinePlayer.getPlayer() logic. 2015-07-13 18:54:08 +10:00
md_5
1f73bbb56a Simplify isOnline() logic. 2015-07-13 18:30:25 +10:00
Morphan1
2359f6fcb0 Implement ItemMergeEvent 2015-07-12 19:57:38 +10:00
Jofkos
a03743b3b4 Add basic sendTitle / resetTitle API.
More APIs to follow pending feedback of whether this is the preferred implementation. Methods marked as deprecated and subject to change, but work as is.
2015-07-10 16:24:02 +10:00
Thinkofdeath
f27339caf8 SPIGOT-977: Use vanilla's handling for command messages for vanilla commands
Fixes gamerules that control the output of those messages
2015-07-08 23:19:21 +01:00
BlackyPaw
e91aed81b3 SPIGOT-986: Default back to skull ID 0 (SKELETON) whenever an invalid ID is encountered instead of throwing an AssertionError 2015-06-28 08:44:27 +10:00
DoctorDark
d432434fd8 SPIGOT-980: Fix NPE when setting items of offline players 2015-06-27 15:48:22 +10:00
md_5
76c834a849 Clean up World.getPlayers().
Original idea from CyberTiger, PR #150
2015-06-27 15:46:19 +10:00
md_5
994b2aae3f SPIGOT-892: Set chicken egg baby age before adding it to world. 2015-06-21 09:20:07 +10:00
md_5
0dfb243c86 SPIGOT-436: Add accompanying getSpectatorTarget(). 2015-06-21 09:20:07 +10:00
Nathan Wolf
1880a9c0b6 SPIGOT-973: Add marker API to ArmorStand 2015-06-09 09:36:31 +10:00
md_5
f4ecc39ffc SPIGOT-436: Add spectator camera API. 2015-06-09 09:17:54 +10:00
Nathan Wolf
845336b511 Serialize full skull item profile data in internal blob 2015-06-07 20:31:01 +01:00
md_5
d33f0dd3ba Remove unused bukkit.yml options and update links / info. 2015-05-31 12:11:56 +10:00
Thinkofdeath
8c14eb49ef Handle a missed case with our vanilla permissions override 2015-05-30 00:06:18 +01:00
Matt
55202e1f99 Add ability to add a string to a scoreboard instead of a player 2015-05-29 19:36:14 +10:00
DemonWav
c637b933dc Send the packet for the correct container, rather than just the container that is active at the time. - SPIGOT-932 2015-05-28 17:19:36 +10:00
DemonWav
75f835c07a Send the set item packet to the client when an item is changed or added in a player's inventory - Addresses SPIGOT-883 2015-05-26 18:46:24 +10:00
md_5
25de1e6baf SPIGOT-769: Fix opening custom inventories. 2015-05-24 10:42:53 +10:00
Nathan Wolf
7bc9c08eb4 Default to BlockFace.SELF for null directions in getFacing 2015-05-24 09:25:02 +10:00
Thinkofdeath
a486600749 Update to 1.8.4 2015-05-17 10:32:59 +01:00
Matt
0a645a2726 Remove unneeded Java 1.5 Compat 2015-05-03 09:11:45 +10:00
Cory Redmond
7722428895 Add the ability for commandblocks to be sent messages via the API. 2015-04-19 09:15:15 +10:00
Thinkofdeath
8e5e4c189b SPIGOT-581: Allow for unhandled nbt tags to be serialized to yaml 2015-04-16 11:01:13 +01:00
Thinkofdeath
5b2764148d SPIGOT-798: Allow for CustomPotionEffects to be empty 2015-04-15 15:02:34 +01:00
Thinkofdeath
e4ca2af9c4 Strip events from book pages on signing 2015-04-14 10:28:34 +01:00
Thinkofdeath
a25c96eda7 SPIGOT-742: Throw an exception instead of passing null when the sender cannot be converted 2015-04-13 11:51:04 +01:00
Thinkofdeath
35d953bac8 Replace the two nextTickList sets with a single one that combines both
Should prevent them from going out of sync
2015-04-13 11:04:38 +01:00
Nathan Wolf
96c2c39245 Implement World.getNearbyEntities 2015-04-07 19:08:07 +10:00
Thinkofdeath
61ef214f91 Implement BlockStateMeta which allows creating and editting 1.8's blockEntityTag 2015-03-24 16:02:47 +00:00
Thinkofdeath
3fce0ec0f5 SPIGOT-729: Revert the entity slice move 2015-03-22 19:01:30 +00:00
Thinkofdeath
350cb9927e Update the rename markers 2015-03-19 21:29:33 +00:00
Thinkofdeath
234e60735c SPIGOT-716: Fix regenerating chunks 2015-03-17 21:17:56 +00:00
Thinkofdeath
30d751b362 Move the entity slice loading 2015-03-16 19:44:51 +00:00
Thinkofdeath
7f609b12b9 SPIGOT-705: Fix possible CME 2015-03-15 21:38:05 +00:00
md_5
6e0120a058 SPIGOT-323: Enchanting tables can no longer be force opened. (reverted from commit bbe75338c1) 2015-03-13 17:53:15 +11:00
md_5
bbe75338c1 SPIGOT-323: Enchanting tables can no longer be force opened. 2015-03-13 17:48:57 +11:00
Thinkofdeath
7f52bd6c95 Fix getActivePotionEffects ignoring the particles flag 2015-03-11 13:18:06 +00:00
Thinkofdeath
294d07dcc0 SPIGOT-678: Fix the particles flag being ignored in PotionMeta 2015-03-11 11:54:31 +00:00
Thinkofdeath
d8a9c7be42 Update to Minecraft 1.8.3 2015-03-04 09:48:58 +00:00
Thinkofdeath
3ee97a30eb SPIGOT-586: Fix a mistake in CraftMetaItem 2015-02-18 10:21:40 +00:00
md_5
726656b864 Fix hashcode / equals / formatting. 2015-02-15 12:54:18 +11:00
md_5
709f95833b API for setting/getting hideFlags. Implementation of the hideFlags to be saved in NBT. 2015-02-15 12:47:07 +11:00
FearThe1337
116514c162 Implement armor stand event. 2015-02-15 12:24:14 +11:00
BillyGalbreath
9648edfa61 Add alternatives for deprecated methods 2015-02-15 12:16:12 +11:00
Thinkofdeath
15e81cf551 SPIGOT-449: Fix the wrong caller being used in chain execute commands 2015-01-25 15:17:48 +00:00
Thinkofdeath
4b6df5adfe SPIGOT-456: Provide equals & hashCode methods for CraftObjective and CraftTeam 2015-01-25 14:39:20 +00:00
md_5
0d52f683db SPIGOT-469: Increment and print reload count. 2015-01-25 10:31:31 +11:00
BuildTools
17962f66ec SPIGOT-443: Synchronize access to HANDLED_TAGS as Spigot uses it async 2015-01-18 17:33:13 +00:00
Thinkofdeath
59dd2ddb9d SPIGOT-438: Correct CraftScoreboard.getObjective NPEing instead of returning null for missing objectives 2015-01-17 23:10:08 +00:00
md_5
00eba538b0 Fix mismatch between teams and player teams. 2015-01-17 19:59:16 +11:00
md_5
42ebec1f71 SPIGOT-242: Fix scoreboard API.
In particular don't maintain an internal list of state, as this gets out of whack when Minecraft adds or removes scoreboards / teams.
2015-01-17 09:41:52 +11:00
md_5
e6f9fd4dc7 isThundering should just reflect thunder state. 2015-01-13 20:42:33 +11:00
md_5
93e7b199bd Fix the CraftWorld weather methods duplicating events. 2015-01-13 20:40:23 +11:00
Hitoprl
5e6c347daa Fix SPIGOT-260: Item drops don't spill in correct place. 2015-01-11 09:46:54 +11:00
md_5
7658819130 Fix off by one in CraftRabbit. Fixes SPIGOT-392 2015-01-10 14:15:34 +11:00
md_5
4470462a54 SPIGOT-387: Remove redundant custom vehicle handling. 2015-01-09 16:59:40 +11:00
Thinkofdeath
5b92dc3d0a Whoops missed a file 2015-01-04 23:36:55 +00:00
Thinkofdeath
6ac32df219 Redirect execute through our command system and allow entities to be CommandSenders 2015-01-04 23:26:02 +00:00
md_5
dde25d45ef SPIGOT-323: Allow force creating enchant table containers. Usefullness is not guaranteed. 2015-01-05 10:05:01 +11:00
md_5
c99cdafd3f SPIGOT-323: Enchanting tables can no longer be force opened. (reverted from commit 9784338acf) 2015-01-05 10:00:26 +11:00
md_5
9784338acf SPIGOT-323: Enchanting tables can no longer be force opened. 2015-01-05 09:59:31 +11:00
md_5
e5c51c790f Actually return. 2015-01-05 09:25:27 +11:00
md_5
93efa5a803 "Fix" SPIGOT-349 - don't allow + or ! in path. 2015-01-05 09:24:44 +11:00
Xor Boole
e8e3ca29e2 Add null check before iterating over iterator. 2014-12-28 13:57:27 -04:00
Thinkofdeath
0a0d3aa5a7 SPIGOT-287: Fire a cancelled inventory open event for locked chests 2014-12-28 15:14:53 +00:00
Thinkofdeath
0e2396c22f Remove tile entity tags for signs and command blocks 2014-12-27 22:44:51 +00:00
Thinkofdeath
d51936efb4 SPIGOT-298: Fix book serialization 2014-12-27 12:13:28 +00:00
Thinkofdeath
306b233a40 SPIGOT-279: Fix all metadata being cleared for items that support blockEntityTag on material mis-match 2014-12-27 00:51:59 +00:00
Thinkofdeath
264d479fd8 SPIGOT-136, SPIGOT-267: Store pages as chat component to retain chat events unless a plugin touches them 2014-12-26 21:55:35 +00:00
FearThe137
2db3ea29a6 Implement Rabbit types. 2014-12-24 09:11:25 +11:00
md_5
6dfcbc61ab SPIGOT-204: Add way to set block type without using IDs or updating physics. 2014-12-22 19:48:02 +11:00
Thinkofdeath
40aaa31c49 Fix EntityEquipment for armor stands and redirect the getters/setters to use it 2014-12-21 23:26:42 +00:00
FearThe1337
53fc3cf74f Fix custom chunk generators. Fixes SPIGOT-193. 2014-12-21 17:38:42 +00:00
FearThe1337
89944c09c9 SPIGOT-231 and SPIGOT-229. Fix itemframe behaviour.
Confirmed fix for itemframes not showing up. Based on the code in
CraftPainting.
Besids this fix we now pass null itemstacks directly to the
EntityItemFrame to allow the removal of items in ItemFrames.
2014-12-21 09:59:45 +11:00
Fabian Faßbender
ce7dd34b5c aW() does re register Attributes which causes a IllegalArgumentException. This fixes it and sets the Guardian back to a normal Guardian without any problem. 2014-12-21 08:52:20 +11:00
Adam Thomas
606cf0eea4 Implement NameTag visibility API for Teams. 2014-12-18 21:27:46 +11:00
0x277F
dadb43af92 Use value from new potion effect particle visibility API. 2014-12-18 21:20:51 +11:00
FrozenBrain
618abf7a36 SPIGOT-228: Don't deserialize meta of written books twice 2014-12-18 09:47:10 +11:00
FearThe1337
6fab8fe51e SPIGOT-236 - fix notes playing wrongly.
Formula is from BlockNote (NMS), slightly formatted different to be smaller.
2014-12-18 09:47:10 +11:00
Thinkofdeath
20c65caae7 SPIGOT-210: Remove the exception when dropping a non-existant task
If the server crashes during chunk generation then the chunk would have never
been added to the executor, this caused a second exception to be thrown when
the server shutdown from the first exception
2014-12-16 10:53:29 +00:00
Thinkofdeath
6b061e2581 SPIGOT-152, SPIGOT-197: Add a system to handle new tags before an api is ready for them 2014-12-15 15:44:57 +00:00
Stefan
e1070b9fbb SPIGOT-206 Further checks and fixes for Hanging entities.
Adds an check for existing entities before selecting the location allowing
for hanging entities to be spawned in blocks where there already is an
hanging entity at the default rotation.
Fixes the CraftHanging setRotation function to use the new 1.8 logic.
2014-12-15 14:42:00 +00:00
Thinkofdeath
28f37a113c Fix entities freezing when a chunk is regenerated 2014-12-15 13:46:41 +00:00
TheCutter
07c2162118 Implement WorldBorder API 2014-12-14 10:02:33 +11:00
Stefan
01f0122a9e Fix the spawning of HangingEntities by picking the right direction
Related to SPIGOT-206.
Currently HangingEntities should be located next to the block they are
hanging on. With the direction set to the opposite of the block they
are hanging from.
This code is modified to find the correct direction.
2014-12-13 19:15:29 +01:00
Thinkofdeath
d5ede3bd6d Rework the vanilla link fix so that hover/click events aren't lost 2014-12-13 10:27:26 +00:00
Thinkofdeath
5f2a9eadde SPIGOT-199: Default to white instead of black for chat messages 2014-12-13 09:37:47 +00:00
Thinkofdeath
64157d1de5 SPIGOT-189: Remove ListenerWrapper in favour of just doing it in EntityPlayer 2014-12-12 19:27:37 +00:00
Thinkofdeath
54888dfafb Wrap player's ICommandListener so that our permission system can handle permission
for vanilla commands
2014-12-12 10:33:54 +00:00
Thinkofdeath
81db41b4d2 Ignore errors when parsing books and treat them as old books
In previous versions there was a mistake with book handled which
may leave books in a broken state, this tries to handle that
2014-12-12 09:46:31 +00:00
zreed
45be36a7b8 Update JLine
Later releases include the TerminalLineSettings patch. Also move call to AnsiConsole.systemInstall() to avoid patching AnsiWindowsTerminal.
2014-12-12 11:06:13 +11:00
FearThe1337
c13e6e69a2 Implement displayblocks for minecarts (SPIGOT-14). 2014-12-12 11:01:47 +11:00
TheCutter
fe8d20e376 using generator settings from WorldCreator to specify presets for FLAT or CUSTOMIZED world types 2014-12-12 11:00:41 +11:00
md_5
9fa497cd55 Add implementation of the elder Guardian API 2014-12-12 10:57:00 +11:00
Thinkofdeath
6575597292 Merge pull request #43 in SPIGOT/craftbukkit from ~FEARTHE1337/craftbukkit:perm to master
* commit '33af6fbbbf1c1a8fee3ecc8d4cf79b4a2ba17c16':
  Add the new minecraft command permission nodes.
2014-12-11 21:43:19 +01:00
FearThe1337
33af6fbbbf Add the new minecraft command permission nodes.
Previously bukkit ones were in bukkit. Moved to CraftBukkit with new prefixes.
2014-12-11 21:36:02 +01:00
Thinkofdeath
b13fd35165 Re-enable selectors for players and the console using vanilla commands 2014-12-11 20:05:48 +00:00
Thinkofdeath
84699b36a8 Rewrite book handling, Fixes SPIGOT-182 and part of SPIGOT-164 2014-12-11 19:38:09 +00:00
Thinkofdeath
14d69f1513 Remove old dev comments 2014-12-11 00:40:25 +00:00
Thinkofdeath
a6465002bf Add some missing Tile Entities 2014-12-07 13:38:16 +00:00
Thinkofdeath
44ea9d88c2 Add CraftMetaTileEntity, fixes the previously broken tests 2014-12-07 13:22:56 +00:00
Thinkofdeath
fb445e5337 Minor bug fixes 2014-12-07 12:18:50 +00:00
Thinkofdeath
c571bbe590 Disable some tests whilst issues with them are looked into 2014-12-07 11:50:45 +00:00
Thinkofdeath
6880e5277f Fix isEmpty and hashCode for CraftMetaItem 2014-12-07 11:42:37 +00:00
Thinkofdeath
6268eb5a3e Fix BlockEntityTag being stripped from items 2014-12-07 11:36:31 +00:00
Thinkofdeath
1227934d57 Make CraftMetaItem's attribute handling less strict on types 2014-12-07 10:48:14 +00:00
Thinkofdeath
cc2b09de09 Add basic support for executing commands from signs
TODO: Wrap the player in to allow for plugins to handle it better
2014-12-05 23:10:47 +00:00
zreed
9e04f2f765 Use PlayerList's UUID->EntityPlayer map in CraftServer.getPlayer(UUID) 2014-12-05 02:03:49 -05:00
Thinkofdeath
e2c4f20ed1 Serialize baseColor as a string 2014-12-04 10:10:24 +00:00
Thinkofdeath
2ba7357b4a Merge pull request #27 in SPIGOT/craftbukkit from ~AIKAR/craftbukkit:fixWorldSaveEvent to master
* commit '64492523a761fb37d2b73f4aad8b8041f7a30d83':
  Move WorldSaveEvent to proper location
2014-12-03 20:37:32 +01:00
Aikar
64492523a7 Move WorldSaveEvent to proper location
calling CraftWorld.save() currently does not call WorldSaveEvent, and WorldSaveEvent could fire on worlds that have saving disabled.

New location will always fire during a world save and only during an actual save.
2014-12-03 14:35:33 -05:00
Thinkofdeath
200ae2b6ac Fix a issue with skulls that have a blank owner 2014-12-03 19:04:19 +00:00
Thinkofdeath
4c02ffcaf3 Merge pull request #5 in SPIGOT/craftbukkit from ~DMCK2B/craftbukkit:feature/implementDepthStrider to master
* commit 'cce45591f624c915e87ce132b508adf8e0d7961b':
  Implement the Depth Strider enchantment for the API
2014-12-03 17:41:27 +01:00
Fabian Faßbender
497a7b4cfb Add ANVIL and BEACON custom inventories. Also handle a few special cases for inventory sizes 2014-12-03 16:20:55 +00:00
Thinkofdeath
8110f51b50 Minor formatting fixes 2014-12-03 11:08:35 +00:00
Thinkofdeath
a972ddfc74 Missed a case 2014-12-02 23:57:29 +00:00
Thinkofdeath
1613d09138 Don't wrap the y coordinate in World.getBlockAt 2014-12-02 23:54:38 +00:00
BuildTools
351edbf4e5 Fix CraftMetaBanner serialization. 2014-12-02 15:29:04 +01:00
Thinkofdeath
275603d37a Merge pull request #21 in SPIGOT/craftbukkit from ~GENAZT/craftbukkit:bugfix/SPIGOT-93 to master
* commit '7371301edb1c44ab9153e1fba3722ba2f4e3c411':
  Forgot that i work in Bukkit... Screw sun conventions
  Implementation for the new rotation values. Fixes SPIGOT-93
2014-12-02 13:23:46 +01:00
Thinkofdeath
733e4290d8 [Slightly breaking] setType(Id) will not longer reuse the previous data value
of the block and instead reset the the data value to the block's default
2014-12-02 12:03:02 +00:00
Thinkofdeath
b58808d54d Fix tree related crashes due to lazy BlockState updating 2014-12-02 11:51:49 +00:00
Fabian Faßbender
7371301edb Forgot that i work in Bukkit... Screw sun conventions 2014-12-02 00:20:31 +01:00
Fabian Faßbender
0d5693dec5 Implementation for the new rotation values. Fixes SPIGOT-93 2014-12-02 00:13:25 +01:00
Adam Thomas
cc9b479fe6 Fix show player 2014-11-30 20:12:54 +00:00
Thinkofdeath
22df292258 Add a somewhat hacky fix for plugins converting between book types 2014-11-30 15:06:14 +00:00
Thinkofdeath
6eb0c79271 Fix Chunk.getTileEntities() (Fixes SPIGOT-62) 2014-11-30 12:15:56 +00:00
Thinkofdeath
20207a0124 Correct the return value of getPlayerListName 2014-11-30 10:30:32 +00:00
Fabian Faßbender
b08f233fe1 Rewrite the level.dat properly. This fixes SPIGOT-46 2014-11-29 20:33:33 +01:00
Mike Primm
4692204921 SPIGOT-30: Fix restoring of WorldData when loading worlds 2014-11-29 09:34:54 -06:00
Suddenly
cce45591f6 Implement the Depth Strider enchantment for the API 2014-11-29 15:13:43 +00:00
Thinkofdeath
f498585ecc Ignore invalid blocks in ChunkSnapshots 2014-11-29 15:05:28 +00:00
Mike Primm
dd33bcf6a5 Fix chunk snapshot generation (needed for Dynmap) 2014-11-28 18:30:59 -06:00
Thinkofdeath
585a827dcd Fix setAge and related methods 2014-11-29 00:17:45 +00:00
Thinkofdeath
923b375d8e Fix missed case in CraftBlock 2014-11-29 00:14:46 +00:00
Thinkofdeath
2575b3f9c0 Remove extra color codes at the start from converted json chat 2014-11-28 19:59:41 +00:00
Thinkofdeath
24557bc2b3 Update to Minecraft 1.8
For more information please see http://www.spigotmc.org/
2014-11-28 17:16:30 +11:00
bendude56
a4805dbd77 Allow teleportation of entities on vehicles. Fixes BUKKIT-4210
Up until Minecraft version 1.5 it was not possible to teleport entities
within vehicles. With the 1.5 update came the change in the Minecraft
teleportation logic to dismount before teleporting the entity, if
applicable.

This commit ammends the existing CraftBukkit logic for rejecting
teleportation for entities in vehicles to permit the action. Due to this
change, CraftBukkit is now in-line with Minecraft 1.5 teleportation logic.
2014-08-17 11:49:27 -06:00
Jerom van der Sar
80e8f2ab87 Implement ability to keep items on death via plugins. Adds BUKKIT-5724
When a player dies their inventory is normally scattered over the the area
in which they died. Plugins should be able to modify this behaviour by
defining whether or not the player's inventory will be dropped on the ground or waiting for the player when they eventually respawn.

This commit implements the methods included in the Bukkit half for the new
behaviour by acting upon the boolean flag. The boolean flag is tested
prior to clearing the inventory as well as prior to dropping the items on
the ground. If the flag is true (indicating "keep inventory"), the items
are not removed from the player's inventory and are not dropped on the
ground.
2014-08-17 11:41:40 -06:00
Wesley Wolfe
b3e83b00fc Implement deprecated methods. Adds BUKKIT-5752 2014-08-07 19:35:16 -05:00
Wesley Wolfe
1f0c791444 Use sensible AssertionError instead of ambiguous RuntimeException 2014-08-07 19:29:35 -05:00
feildmaster
971329c42b Fix removal of items from Item Frames. Fixes BUKKIT-5736 2014-08-02 16:12:03 -05:00
Wesley Wolfe
c7398b9fdf Provide modifier functions to EntityDamageEvent. Fixes BUKKIT-5688 2014-07-13 00:07:38 -05:00
Travis Watkins
13482ac7f6 Put damage modifiers in Functions for event. Fixes BUKKIT-5681 2014-07-09 18:21:59 -05:00
Travis Watkins
dbb5e6e3cd Update CraftBukkit to Minecraft 1.7.10 2014-07-08 14:31:10 -05:00
Wesley Wolfe
a8628fd645 Use 4787c23dce0f5ac856d8d398225828971a93a3ff Guava patch for onlinePlayers
This change improves the quality of life for plugin developers using
iterator iteration with side-effects. In the specified Guava patch, the
internal iterator no longer relies on the AbstractList iterator which
iterates by index, and will instead wrap the provided iterator in a
transformer given the Function.
2014-07-01 00:48:07 -05:00
Wesley Wolfe
b602b5efa4 Implement new getOnlinePlayers. Adds BUKKIt-5668 2014-06-25 15:59:58 -05:00
t00thpick1
9099e48e74 [Bleeding] Ignore damage done by LivingEntity.damage(). Fixes BUKKIT-5666
This matches behavior previous to new damage event API of not throwing
events for plugin-triggered damage.
2014-06-23 16:42:31 -05:00
t00thpick1
6f21d3ca8f [Bleeding] Implement new damage api. Fixes BUKKIT-5326, BUKKIT-3878.
This commit centralizes event handling to where damage is actually applied
to the entity to avoid bugs that have resulted from nodamageticks,
modifications to damage after the event has been called, and similar
mishaps. This also implements new API for getting and setting of
modifications made to the damage amount actually applied to the entity.
This is done by storing the change in the damage amount as each modifier
is applied by vanilla code.

The method that actually damages the armor worn by an entity has been
relocated beneath the event called as to not apply durability loss when
the event has been cancelled.
2014-06-22 15:23:16 -05:00
Travis Watkins
5b9950b5f7 Avoid checking for loaded chunks for lighting and entity ticking.
When a chunk is loaded the server tries to ensure it has its initial light
calculations done before sending it to the player. When ticking entities
the server tries to ensure the entity does not walk into an unloaded chunk.
To accomplish these the server checks a one chunk radius around the chunk
to be lit or a two chunk radius around the chunk the entity is in. These
lookups happen every tick even though their result is unlikely to change
that often. To reduce the cost of these checks we replace them with a
system to keep track of what neighbor chunks a chunk has loaded and update
it when chunks load or unload which is a much less frequent action. On a
server with ten players this change removes about 100,000 calls a tick to
LongObjectHashMap's containsKey method.
2014-06-21 21:12:46 -05:00
Daniel Naylor
0a45c3ebf7 Use UUIDs in CraftPlayer equals and hashCode methods. Fixes BUKKIT-5634 2014-05-26 19:45:07 -05:00
Wesley Wolfe
4ab4fa5bb1 Fix polarity of Bat.isAwake() and Bat.setAwake(boolean). Fixes BUKKIT-5624 2014-05-20 03:18:26 -05:00
Wesley Wolfe
fa1b6ba834 Update CraftBukkit to use new YamlConfiguration encoding changes 2014-05-14 05:49:04 -05:00
Wesley Wolfe
8daacb9017 Implement awake flag for bats. Adds BUKKIT-5606 2014-05-13 20:38:42 -05:00
Travis Watkins
5610337b4f Only set skull profile if it is a player skull. Fixes BUKKIT-5605 2014-05-12 23:22:04 -05:00
Travis Watkins
690a908b97 Avoid using the user cache in skull meta.
To handle changes in 1.7.9 we changed skull meta to use GameProfile
instances instead of strings of player names. This reflects what vanilla is
actually storing for skulls now. As skulls still require a name our API was
not changed and we instead look up the rest of the profile information from
the name. The way this was implemented made it so that deserializing a skull
or setting its name potentially involved a network request. As skull meta
itself does not actually require a complete profile we now simply create one
that only contains a name and leave populating it to the server when it is
actually needed.
2014-05-03 17:49:59 -05:00
eueln
2bf22a9c49 Implement inventory creation by type and title. Fixes BUKKIT-4045
With the current API it is possible to create an inventory with a specific
type, but it is not possible to give such an inventory a title other than
the default.

The commit changes that by adding a method to optionally supply the title
for the given inventory type and holder, creating the functionality to
display any supported inventory type with a 32 character length String.

If the inventory title supplied is larger than 32 characters then an
IllegalArgumentException is thrown stating so.
2014-04-30 22:50:58 -06:00
GJ
76e6277175 [Bleeding] Allow generation of cocoa trees. 2014-04-28 10:18:55 -04:00
GJ
d91ee7d7ab [Bleeding] Correct issues with MEGA_REDWOOD trees. Fixes BUKKIT-5568
In commit 6efeddfe57, TALL_REDWOOD was used instead of the proper TreeType
of MEGA_REDWOOD. Additionally, this fixes an issue in CraftWorld with an
improper boolean flag related to the generation of MEGA_REDWOOD trees.
2014-04-28 09:49:33 -04:00
bloodshot
576758bc55 Refactored BlockPlaceEvent and BlockChangeDelegate. Adds BUKKIT-5558
23 classes have been removed as they are no longer needed using the new
capture logic. This should help quite a bit with future MC updates.

BlockPlaceEvent Refactor

Before calling Item.interactWith, a recording flag is turned on for
setTypeAndData to capture a blockstate for each block that attempts to be set.
When a block place event is cancelled, the recorded blockstate, stack
size, and metadata will revert back to the captured state. If the event is
not cancelled, a notification will be sent to clients and block physics
will be updated.

BlockChangeDelegate Refactor

Now that we have the ability to capture blockstates through world, there
is no need to modify world gen classes with BlockChangeDelegate. Instead
we will simply capture blocks during world generation in order to "replay"
all of the captured blockstates to send back to delegates.
StructureGrowDelegate and BlockSapling.TreeGenerator have also been
removed as part of this change. BlockSapling and BlockMushroom will
capture blockstates the same as block placement and revert back any grow
events if needed.
2014-04-23 21:25:55 -06:00
Andre LeBlanc
5d24f2b9c0 Make AnvilInventory.getItem() use both containers. Fixes BUKKIT-2788
The AnvilInventory reports its size as the sum of the ingredient and
result inventories, but when trying to access the slots, only the
ingredient inventory is used, leading to an ArrayIndexOutOfBounds exception.

This change overrides getItem(I) and setItem(I) to use both inventories,
with the slot number adjusted based on their size.
2014-04-18 13:21:21 -05:00
PaulBGD
941650b9b2 Fix setting entity's target. Fixes BUKKIT-1358
Setting the goal target overrides the entity's will to do something
else. This makes it so entities like wolves with attack another player
with .setTarget(), instead of hanging next to their owner.
2014-04-18 12:55:07 -05:00
Devin Ryan
d0be633ed9 Catch exceptions when abandoning conversions. Fixes BUKKIT-5436
If a conversation is abandoned due to a player disconnecting and an
exception is thrown in a ConversationAbandonedListener, the server will
crash. This commit prevents the exception from propagating further up
the stack and instead just logs the error.
2014-04-18 12:33:56 -05:00
Des Herriott
8a6ed3a88b Check that item in hand is not null after book event. Fixes BUKKIT-5443 2014-04-18 12:30:53 -05:00
GJ
730adbbf42 [Bleeding] Don't allow null display names. Fixes BUKKIT-5254
Currently, plugins can set a player's display name to null, which could
cause issues for other calls to getDisplayName that aren't expecting a null
value. This changes setDisplayName to follow the same logic as
setPlayerListName, which sets the player's name back to their unmodified
"vanilla" name if it receives a null value as a parameter.
2014-04-18 10:21:33 -05:00
GJ
a4fe7cd3c4 [Bleeding] Return correct player SlotType. Fixes BUKKIT-3188
Previously, the SlotType for the last 4 slots in a player's inventory
returned QUICKBAR when it should have returned SlotType.CONTAINER. This
updates the code for determining slot type to return the proper value.
2014-04-18 10:01:31 -05:00
GJ
9c251595d4 [Bleeding] Return correct furnace SlotType. Fixes BUKKIT-5400
Previously, the SlotType for the 0 slot in a furnace returned CONTAINER,
when it should have returned SlotType.CRAFTING. This updates the code for
determining slot type to return the proper value.
2014-04-18 10:01:24 -05:00
GJ
ec41228fb5 [Bleeding] Ensure skeletons spawn with equipment. Fixes BUKKIT-2836
Previously, when a skeleton was spawned via the spawn(...) function, the
resulting skeleton had no equipped bow and therefore could not properly
attack. This fix gives all skeletons the proper equipment and ensures that
they are able to attack.
2014-04-18 09:52:04 -05:00
Travis Watkins
a81f26716d Handle profiles in SkullMeta, they don't store a string anymore. 2014-04-17 14:09:53 -05:00
Travis Watkins
3e911dba54 Make bans pretend to use names like before 1.7.8.
Bans require a name and UUID but our API only allows for a single string
identifier for a ban entry. Until this is sorted out go back to the old
name based setup since we can always get a UUID given a name.
2014-04-17 10:45:10 -05:00
Travis Watkins
a8d5c1224f Make skulls pretend to only use names like before 1.7.8.
Any new API here needs more thought, skulls require a name but OfflinePlayer
is not guaranteed to have one. There is a Mojang approved way to get a
complete profile from a name but not from a UUID so for now just pretend
this still only uses names.
2014-04-17 08:41:29 -05:00
Travis Watkins
6ad36f09e5 Fix getting white list, ban list, and op list. Fixes BUKKIT-5538
The getEntries methods on these return player names instead of UUIDs.
As we need the UUIDs for our API we add a getValues method to get at
the data we need. To further ensure we get the most data possible we
also add a way to get at the stored GameProfile to ensure we always
have both the UUID and the name from the list.
2014-04-17 03:31:49 -05:00
Travis Watkins
fc39b27d7c Don't do a lookup for obviously invalid usernames 2014-04-17 01:57:35 -05:00
Travis Watkins
5557856144 Add methods to use arbitrary entries in scoreboards. Adds BUKKIT-3977 2014-04-13 23:21:36 -05:00
Travis Watkins
3dcf159ec1 Fix missed diff and other small things 2014-04-13 04:29:21 -05:00
Travis Watkins
b689cfa83a Check actual whitelist for CraftOfflinePlayer too 2014-04-12 07:45:32 -05:00
Travis Watkins
f6a93775bf Check the actual whitelist for Player#isWhitelisted()
The server's check is for whether or not a player can pass the whitelist
not just if the player is on it. That seems like more useful information
but the API has always just checked if they are on it so this commit
restores that.
2014-04-12 07:21:01 -05:00
Travis Watkins
7b409ed4e9 Use fetched GameProfile for getOfflinePlayer(String)
When getting an OfflinePlayer by name we lookup their UUID and then
use that to fetch the OfflinePlayer. If the player has not played on
this server before the resulting OfflinePlayer will return null for
getName(). As this is unintuitive we now create the OfflinePlayer directly
using the profile we looked up and make OfflinePlayer prefer that data.
2014-04-12 03:12:26 -05:00
Travis Watkins
8f771c7378 Update CraftBukkit to Minecraft 1.7.8 2014-04-11 22:28:35 -05:00