50f273c041
Vector2: Fixed ceil() and floor() totally broken logic
...
"So if I Vector2->ceil()->ceil() my vector2 magically gets incrementing values..." @Sandertv 2018
2018-01-01 12:57:34 +00:00
a0a2ea01bc
LevelDB: Check for LEVELDB_ZLIB_RAW_COMPRESSION when checking for the extension's presence
...
We always want to validate that the leveldb provided supports the world format.
2017-12-31 17:49:02 +00:00
5132ab6cd9
LevelDB: Remove redundant folder creation in generate()
...
This is pointless because the call below - which is _also_ recursively creating directories - will create this directory anyway.
2017-12-31 17:46:07 +00:00
256bdf2581
McRegion: Use MainLogger::getLogger()
...
another one bites the dust
2017-12-31 16:06:08 +00:00
8a3f8b4706
LevelProvider: Remove redundant method requestChunkTask()
...
This removes one more dependency that LevelProvider has on Level.
2017-12-31 16:05:58 +00:00
7264ce43ae
McRegion: Added method pathToRegion()
2017-12-31 14:25:17 +00:00
66e475cbb8
Region: Remove RegionLoader/McRegion cyclic dependency
2017-12-30 19:59:35 +00:00
1e896efff9
McRegion: Added an assert
2017-12-30 19:49:44 +00:00
4db7a7e57f
Region: Change chunk offset calculation in regions to use bitmasks
...
I don't know why it wasn't done like this to start with. However this has not been tested yet, so this goes on a different branch for now to test.
2017-12-30 19:41:58 +00:00
54b23968e7
McRegion: Refactor some ambiguous variable names
2017-12-30 18:59:01 +00:00
bcb080e2b9
Level: Make sleepTicks private, don't write directly
2017-12-30 18:41:13 +00:00
e5c58f9b04
Player: Add typehint for maxDistance parameter of canInteract()
...
Not sure why this was missing :<
2017-12-30 17:43:12 +00:00
af7aef70db
Implemented TextFormat::colorize() ( #1837 )
...
Implemented TextFormat::colorize()
See 4c46087ffc
for the initial discussion
2017-12-30 16:51:04 +00:00
3ea72a0bf9
Merge PR #1775 : NBT streams refactor
2017-12-30 15:53:47 +00:00
be02fbb352
NBT: Add typehints to PHP 7.2 standards
2017-12-30 15:07:50 +00:00
a67f7e3930
Add header includes and preprocessor checks
2017-12-30 14:56:29 +00:00
965c19375f
NBT: Split up concerns of endianness and varint NBT into their own classes, separate stream handling from NBT class
...
The remaining methods, constants and fields in the NBT class now pertain to generic NBT functionality (except for the matchList()/matchTree() methods, but that's a job for another time). All NBT I/O specific logic has now been moved to NBTStream and its descendents.
2017-12-30 14:55:45 +00:00
63edcb8934
Updated PreProcessor submodule
2017-12-30 14:15:33 +00:00
e7a012d69a
Player: Remove dead imports
2017-12-30 12:42:42 +00:00
99c55ac889
Plugin: Fixed return type documentation for getResource()
2017-12-30 12:40:50 +00:00
f14adf5827
Updated RakLib dependency
2017-12-28 12:51:16 +00:00
c64b9ad63a
MovingObjectPosition: Use asVector3() instead of creating a new vector the hard way
2017-12-26 15:37:00 +00:00
dda71b06ae
AxisAlignedBB: Use elseif in calculate*Offset()
...
It's impossible for both of these conditions to be met in the same call.
2017-12-26 14:31:42 +00:00
3c4dca7fdb
ZippedResourcePack: Handle json decoding errors correctly
...
Previously this would crash if it failed to decode the JSON (https://forums.pmmp.io/threads/texture-pack-shows-errors-not-working.4880/ )
2017-12-25 19:01:02 +00:00
ddbc5cf960
Player: Use fmod() instead of modulo operator for yaw/pitch
...
the modulo (%) operator only operates on integers. If it's used on floats, they are silently casted to ints, which results in loss of accuracy. Fractions of a degree might not seem important, but for ray-tracing purposes a fraction of a degree can make the difference between hit and miss.
2017-12-24 19:48:43 +00:00
1edf69892a
Fixed chorus fruit teleporting players into the void in superflat worlds
2017-12-24 16:27:58 +00:00
f10c2a2df2
FlowerPot: Fix drops retaining damage
...
close #1844
2017-12-23 17:54:22 +00:00
3bbdc5ab5b
Implemented chorus fruit
2017-12-23 15:11:48 +00:00
082e3404c3
Potion: Implement potion effects
2017-12-23 15:07:39 +00:00
547833ae23
Effect: Add constants with vanilla names where missing
2017-12-23 14:48:56 +00:00
6e1df36188
Consumables refactor ( #1796 )
...
* Removed broken EntityEatEvents - these don't fit the pattern since they only apply to Human entities anyway. PlayerItemConsumeEvent and PlayerInteractEvent can be used for cancellation purposes, and plugins can do custom stuff without mess.
* Restrict item consuming to Living entities only
* Added FoodSource->requiresHunger()
* Only items implementing the Consumable interface can now be consumed.
* The effects from consuming items are now generic-ized by way of the Living->consume() function. This is overridden in Human to allow applying food and hunger.
* Fixed the hardcoded mess for buckets
2017-12-23 13:03:41 +00:00
329fe7d844
Effect: Implement Saturation effect
...
I thought I did this months ago, but apparently not. Whatever, it's here now.
2017-12-23 11:35:01 +00:00
b7aaf54a6f
Effect: Fixed mistake in bitshifting with effect level in instant effects
...
This should be the amplifier, otherwise the effect will have double-effect on level 1.
2017-12-23 11:32:58 +00:00
6332814a04
Effect: Minor cleanup on Instant Health/Damage effect amplification
2017-12-23 11:23:29 +00:00
9d4818d360
Effect: Hunger is supposed to apply every tick
...
This fixes oddities in the behaviour noticeable with higher effect levels.
2017-12-23 11:15:23 +00:00
36f3accf4b
Effect: Don't allow cancellation of expired effect removal, close #1770
2017-12-23 10:55:25 +00:00
8d08840ea4
Effect: Better fix for duration bug seen in 3614711a02
2017-12-23 10:45:59 +00:00
7f0d0c9d63
Revert "fixed negative effect durations when level tick rate is > 1"
...
This reverts commit 3614711a02
.
2017-12-23 10:44:21 +00:00
bf55f03a3e
Merge pull request #1842 from pmmp/issues/983-interact-fix
...
Fix direction checking for player interactions, close #983
2017-12-23 09:42:39 +00:00
a5c3fbdd7a
Player: Remove obsolete maxDiff parameter from canInteract()
2017-12-22 20:38:39 +00:00
a8bf2191b9
Player: Do direction checks for interaction in 3D instead of 2D
...
This fixes #983 , but I haven't yet tested if this will prevent cheating in an actual hacker scenario. Needs more tests.
Additionally, this should remove the need for the negative threshold - if the diff is less than 0, the player is almost definitely cheating.
2017-12-22 20:06:59 +00:00
0688a86f57
Player: Fixed interaction checks preventing placing blocks when stood on the corner of one when using crosshairs
...
This issue can be seen on W10 Edition. Stand on the corner of a block and turn so that the majority of the target block is behind you. Then look down and try to mine it.
2017-12-22 19:58:33 +00:00
2e11e448dd
Player: Dump crafting grid on death, not on respawn
...
This fixes players managing to retain items by getting killed while they have something in the crafting grid.
2017-12-22 11:34:33 +00:00
8bf275cb8b
Player: Execute PlayerPreLoginEvent before banlist/whitelist checks, close #1831 ( #1833 )
2017-12-22 11:19:56 +00:00
1896576a24
ResourcePackManager: Remove Server constructor dependency
2017-12-22 11:11:58 +00:00
8f811c29d7
ResourcePackManager: Remove redundant config property
...
This was only used in the constructor, there's no need to store it.
2017-12-22 11:05:47 +00:00
3a4f79629c
ResourcePackManager: Add API method getPath()
2017-12-22 11:04:15 +00:00
375243860e
Potion: Restrict item stack size to 1
2017-12-21 15:02:56 +00:00
a842a5319f
Enchantment: Create constant name once, and reuse it
...
this is more readable and more maintainable.
2017-12-21 13:11:31 +00:00
c2b0f6af22
Enchantment: Simplify getEnchantment() with null coalesce
...
This is made possible by 0e538ee51d
.
2017-12-21 13:02:24 +00:00