1
0
Commit Graph

5562 Commits

Author SHA1 Message Date
Mat
5a2163d7e6
Don't send entity velocity for boats (#4488)
* Don't send entity velocity for boats
2020-03-07 13:56:02 +02:00
Mat
83a41c93e9
Attached entities can't enter portals (#4484)
* Attached entities can't enter portals

* Whitespace fixes
2020-03-05 21:33:43 +02:00
Mat
d572ad7faf
Don't spawn boats in ground 2020-03-05 16:05:30 +02:00
Mat
cff9f7571b
Use LastSentPos for mob spawn packet in 1.11+ (#4490) 2020-03-05 12:58:46 +02:00
Mat
7d4934534e
Stabilise MoveToWorld (#4004)
* Stabilise MoveToWorld

* Fix comments and deprecate ScheduleMoveToWorld

* Enhanced thread safety for m_WorldChangeInfo

* Return unique_ptr from cAtomicUniquePtr::exchange

* cWorld now calls entity cEntity::OnAddToWorld and cEntity::OnRemoveFromWorld.

Allows broadcasting entities added to the world from the world's tick thread.
This also factors out some common code from cEntity::DoMoveToWorld and cEntity::Initialize.

As a consequence, cEntity::Destroy(false) (i.e. Destroying the entity without broadcasting) is impossible.
This isn't used anywhere in Cuberite so it's now deprecated.

* Update entity position after removing it from the world.
Fixes broadcasts being sent to the wrong chunk.

* Fix style

* cEntity: Update LastSentPosition when sending spawn packet

* Add Wno-deprecated-declarations to the lua bindings

* Kill uses of ScheduleMoveToWorld
2020-03-05 12:52:34 +02:00
peterbell10
d7a726a423
Update LastSentPosition when entity has no speed (#4487)
* Update LastSentPosition when entity has no speed

* Restructure BroadcastMovementUpdate and always process relmove
2020-03-04 16:47:51 +02:00
Mat
aba329544f
Prevent container item duplication (#4476) 2020-03-04 15:12:15 +01:00
Mat
1ab87be80c
Play correct sound when entities are hit by arrows (#4481) 2020-03-04 02:05:04 +02:00
Mat
dca896dfcc Boats can be spawned on land 2020-03-01 13:27:19 +00:00
Mattes D
a0d2e934eb BlockTypePalette: Improved loading speed in MSVC Debug builds. 2020-02-24 09:37:40 +01:00
mathiascode
3d699c0dc4 Remove 1.13 from supported protocol list 2020-02-24 09:33:59 +01:00
Mat
6d938c0e3f
Blocks are usable in adventure mode (#4464) 2020-01-15 23:54:48 +02:00
Mattes D
4aef80b47e Added temporary block type mapping for 1.13+ protocols. 2020-01-07 06:53:17 +01:00
Mattes D
e234fbdafe StringUtils: Added note to StringsConcat about StringJoin. 2020-01-07 06:53:17 +01:00
Mattes D
583fd0a387 ProtocolRecognizer: Updated to unique_ptr. 2020-01-07 06:53:17 +01:00
Mattes D
b63bb2f694 Root: Load the UpgradeBlockTypePalette on startup. 2020-01-07 06:53:17 +01:00
Mattes D
208313dba1 main: Terminate if an exception is thrown. 2020-01-07 06:53:17 +01:00
Mat
dd665f092f
Clean up server folder for Android (#4448) 2020-01-02 17:59:07 +02:00
Alexander Harkness
bf10b56638 Fix android builds (#4432)
* Terminate android build script early if any step fails

* Remove deprecated android types

* Use android NDK cmake support rather than cmake android NDK support as that support is better supported

* Android uses GNU strerror_r?

* Fix compilation

* Rebase

* Fix final issues

* Drop submodule changes

* Revert change

* Parentheses

* Lower api levels

* Don't use GNU strerror_r for Android

Co-authored-by: Mat <mail@mathias.is>
2020-01-02 03:54:40 +02:00
Mat
fd3866154e
Include missing server files (#4446) 2019-12-30 19:05:19 +02:00
Mat
586a618640
Remove lang folder (#4445) 2019-12-30 16:02:11 +02:00
Mat
5074527d2c
Disable block placement in adventure mode (#4424) 2019-12-30 01:54:37 +02:00
Mattes D
2894ce3812 CMake: Fix builds in folders with spaces 2019-12-29 11:49:00 +01:00
Mattes D
5df6d4f535 CMake: Don't create symlinks if link == orig. 2019-12-28 23:26:54 +01:00
Mattes D
2d6f6a574d BlockTypePalette: Load from TSV or original reports' JSON. 2019-12-28 22:43:35 +01:00
Mattes D
7453a9fbe1 Moved ProtocolBlockTypePalette functionality into BlockTypePalette. 2019-12-28 22:43:35 +01:00
Mattes D
2de6b7537d BlockTypePalette: Refactored for usage in both directions.
Improves index() lookup speeds and allows BlockTypePalette to be used in place of ProtocolBlockTypePalette.
2019-12-28 22:43:35 +01:00
Mattes D
cc72b204b2
Output the binaries into a per-configuration Server subfolder. (#4440)
Make links to the original Server subfolder's items from the per-configuration Server subfolder.
2019-12-28 12:53:37 +01:00
Mat
f5af0e2e04
WebAdmin improvements (#4433)
* WebAdmin improvements

* Remove stray div tag

* Revert path change

* Remove buildserver link

* Further simplification

* Reduce horizontal padding

* Add svg icons

* Remove unneeded css

* Make login and logout icons colored

* Use same capitalization for Log in and Log  out

* Remove leftover code from old Webadmin design

* Remove more leftover code from earlier Webadmin versions

* and don't add earlier leftovers back...

* PR test

* Fix max width overflow

* Add missing css changes
2019-12-28 02:15:12 +02:00
NiLSPACE
dc787e1d96 Improved large jungle and acacia tree generation (#4413) 2019-12-22 23:38:11 +01:00
Peter Bell
fb2ef33c89 Correct block transparencies 2019-12-05 15:26:47 +01:00
Mattes D
61904af626 Moved growing from cWorld / cChunk to cBlockHandler descendants. 2019-10-28 10:45:43 +01:00
Mattes D
221cc4ec5c
Refactored block-to-pickup conversion. (#4417) 2019-10-16 10:06:34 +02:00
NiLSPACE
241d97bbf9
Fixed crash in hopper while pulling items from blockentity above itself (#4412) 2019-10-04 15:50:47 +02:00
Lukas Pioch
7b603f3c95 Added another check if the item is place able (#4404) 2019-10-03 12:34:15 +02:00
Mattes D
365cbc6e1c
Refactored more of Entities and BlockEntities to use Vector3. (#4403) 2019-09-29 14:59:24 +02:00
Lukas Pioch
ba664340f3 Cactus can now grow and will be dropped if there is no place to grow. 2019-09-29 13:42:29 +02:00
Mattes D
180a43d097 Fixed MSVC warnings (#4400) 2019-09-27 16:51:44 +01:00
Bond-009
eda2fc42d9 Fix clang8.0 build (#4399)
The protocol 13.0 PR broke clang 8.0 builds.
2019-09-24 20:38:54 +01:00
Mattes D
66e73a2d68 NBTChunkSerializer: Cleaned up interface.
Removed dependency on cChunkDataCallback.
Moved all the serializing code into a worker class.
Changed the serialization into a single-call action.
2019-09-24 17:38:59 +02:00
E14
d1c95742dd Add ProtocolBlockTypePalette (#4391) 2019-09-22 22:57:54 +02:00
Lukas Pioch
70d0b46b60 Added missing closing } in message output 2019-09-20 14:33:53 +01:00
Mattes D
c7132a3091 Protocol 1.9: Alpha-sort, add useful debugging code. 2019-09-16 15:37:54 +02:00
Tiger Wang
77731f80fb Initial support for 1.13 clients
+ Can look at *shape* of world
+ Can look at *shape* of inventory
2019-09-16 15:37:54 +02:00
E14
83013d19ca GCC: Added pragma to ignore fallthrough warnings within Unicode Inc. code (#4392) 2019-09-13 15:56:56 +02:00
Mattes D
3bc0f07fea Fixed warnings in ChunkDataSerializer. 2019-09-10 09:45:28 +02:00
Mattes D
2c804dd34a Protocol: Use logical outgoing packet types. 2019-09-10 09:45:28 +02:00
Mattes D
ad24702b4e ChunkGenerator: Changed to use cChunkCoords. 2019-09-08 20:21:49 +02:00
Mattes D
5f4df3e87d ShapeGen, HeiGen: Changed to use cChunkCoords. 2019-09-08 20:21:49 +02:00
Mattes D
e4ac84a6ab BiomeGen: Changed to use cChunkCoords params. 2019-09-08 20:21:49 +02:00
Mattes D
343bc2729e Generator: Added repeatability test. 2019-09-07 13:38:07 +02:00
Mattes D
f50c6735f8 CompoGenNether: Fixed different data produced in Linux Release builds. 2019-09-07 13:38:07 +02:00
Mattes D
d8d1e6e1d2 Added a BasicGeneratorTest. 2019-09-06 16:12:33 +02:00
Mattes D
878393a03d Moved the generator defaults to ComposableGenerator. 2019-09-06 16:12:33 +02:00
Mattes D
a2ffa432b3 Separated chunk generator from world / plugin interfaces.
The generator now only takes care of servicing synchronous "GetChunk(X, Y)" and "GetBiomes(X, Y)" requests.
2019-09-06 16:12:33 +02:00
Mattes D
f021e2fe22 Updated LibEvent to release 2.1.11-stable. (#4383)
This finally restores my ability to compile on Windows and Linux from the same source folder (on a network drive).

LibEvent broke this long ago by writing a config file into the source folder, rather than build folder. Now it's finally fixed.
2019-09-04 22:34:54 +01:00
Mattes D
2504538a3a
Added a basic PalettedBlockArea implementation (#4377) 2019-08-28 08:29:02 +02:00
Mattes D
74579fbadf
Improved testing framework. (#4376) 2019-08-26 21:38:34 +02:00
Mattes D
02fbf16865 Added BlockState implementation for 1.13 support. 2019-08-24 12:03:38 +02:00
Julius Oeftiger
9a1ed26893 Fix mobs targeting dead players (#4344)
Fixes #4340
2019-08-16 11:10:47 +01:00
Bond-009
e0ca4d8399 Fix building with clang 8.0 (#4346) 2019-08-11 10:39:43 +01:00
Bond-009
4de232bdae Wake up redstone simulator on slot changes for blockentities (#4348)
Fix #1898
Fix #2194
Fix #3063
2019-08-11 00:11:57 +01:00
Lukas Pioch
528db6eea7 Added null check for position (#4366) 2019-08-11 00:32:22 +02:00
Mattes D
26d0605121
Improved CMake generator (#4365) 2019-08-10 13:15:51 +02:00
Mattes D
d0b095ad51 Added more clamping operations to cCuboid. 2019-08-10 12:25:06 +02:00
Mattes D
e7016b1525
Removed coord-based API from cCuboid. (#4362) 2019-08-09 03:13:15 +02:00
peterbell10
a2547bf1fe
cBoundingBox: Fix tolua warning (#4361)
tolua was warning about no support for `operator =`.
Ref: #4360
2019-08-08 19:49:00 +01:00
Aplaus228
466d986e5e Change TakeDamageInfo::FinalDamage from int to float (#4359)
Closes #4357
2019-08-08 11:51:38 +01:00
Mattes D
f0cd34357e Fixed compilation on VS2019 2019-08-06 10:13:18 +02:00
Mattes D
8212f163b5 Register vanilla blocks in BlockTypeRegistry. 2019-08-05 21:42:54 +02:00
Mattes D
f48ac9f0c3 BlockTypeRegistry: Added hint manipulation 2019-08-05 21:42:54 +02:00
Mattes D
3722a239bf BlockTypeRegistry: Initial skeleton 2019-08-05 21:42:54 +02:00
Mark Asp
c00b365617 Check for nil in cWorld:SpawnSplitExperienceOrbs binding (#4354)
Adds explicit nil check for 'position' parameter to prevent crashes if invalid.

Fixes #4352
2019-07-28 14:09:51 +01:00
peterbell10
9dc1343bda
Ignore whitespace only lines in brewing and furnace recipes (#4332) 2019-06-11 13:39:44 +01:00
DaPorkchop_
52e6543ba5 Respect return value of cLuaWindow's OnClicked handler (#4322) 2019-06-11 12:07:35 +02:00
Wilhem Barbier
85006d10f5 Fix directory traversal bug (#4341)
Refuse to serve an URL containing `../`.
2019-06-11 10:33:56 +02:00
Zach DeCook
31a8d017d9 * Sponge: Add water absorbtion (#4333)
Closes #1411
2019-06-11 00:28:02 +01:00
Zach DeCook
24a8456f79 Create Ender Portal with Eyes of Ender (#4126)
The algorithm was designed so All portals must be facing the center, no matter which block had the eye inserted in last.

Note: Still need to create a block entity so that portals don't become invisible when you relog.

Addresses part of #3445
Fixes #3695
2019-05-11 20:43:26 +01:00
Zach DeCook
b9e7505d7f Buckets: Be able to place fluids through other fluids. (#4331) 2019-05-07 20:15:58 +01:00
DaPorkchop_
8b4d37771f Fix player skin sending through BungeeCord (#4328)
This fixes sending of player skins through BungeeCord by actually parsing the JSON instead of setting the player properties as a string.
2019-04-22 18:54:22 +01:00
DaPorkchop_
10b60971f5 Make Nether portals spawn the player inside of them (#4325)
Currently the player is spawned immediately in front of them.

Simply changing `cNetherPortalScanner::OutOffset` to 0.5 wasn't enough, as the player would always be spawned on top of the portal, however checking for non-solid blocks instead of air fixes this.
2019-04-18 14:54:55 +01:00
peterbell10
7d512f2191 Limit the size of cListAllocationPool's free list 2019-02-20 09:07:44 +00:00
Bond-009
2010a2b700 Add colors to console for macOS (#4303) 2018-10-15 17:03:08 +01:00
peterbell10
4727ed2084 Add a formatting function for Vector3 (#4282)
* Vector3: Add custom fmt compatible formatter.

* cLuaState: Add fmt version of ApiParamError

* Use vector formatting in manual bindings

* Always log vectors with FLOG
2018-09-24 21:33:39 +01:00
Muhammad Kaisar Arkhan
73689024f0 Add BurnsInDaylight to Lua API and Monsters.ini (#4295)
* Monster.h: Export SetBurnsInDaylight

This commit also adds BurnsInDaylight to check if the Monster burns in daylight
or not.

Closes https://github.com/cuberite/cuberite/issues/4294

* MonsterConfig.cpp: Add BurnsInDaylight

Closes https://github.com/cuberite/cuberite/issues/4294
2018-09-24 21:32:47 +01:00
peterbell10
ee84197014
Force all headers other than "Globals.h" to be included with relative paths (#4269)
Closes #4236

CMake now creates a header file in the build directory under the path "include/Globals.h" which just includes "src/Globals.h" with an absolute path. Then instead of adding "src/" to the include directories, it adds "include/".

#include "Globals.h" still works by including the build generated file and any other src-relative path will not work.
2018-08-29 01:51:25 +01:00
Alexander Harkness
c4f43cd8ec
Store and pass entity effect duration as an int not a short. (#4293)
Fixes #4292.
2018-08-26 15:52:39 +01:00
Rick van Schijndel
a1e52cb6d6 Fixes bed item 26 and 355 being spawned, only 355 spawns now (#4290) 2018-08-23 16:28:41 +01:00
changyong guo
89017dfbbc solve new player login crash issue (#4285)
currently if new player login, server will crash during send player ability to client.
this pull request solve this issue.
2018-08-17 16:46:06 +01:00
Nate
e7b552603f Handle the lapis slot separately (#4286)
This is my attempt to fix #4112. The root cause of the issue was that the lapis slot was treated exactly the same as the enchanting slot, so it on the server side it would only ever slot one item.

My fix is to check if its the second slot in the window, then check if it's lapis (it would slot whatever). If it is lapis I call the base click handler.
2018-08-17 09:08:06 +01:00
Nate
801d5d7170 Fix: Create players folder recursively (#4283)
Problem: On a new server the players folder was not created on windows.

Root Cause:
`GetUUIDFolderName` was returning a folder structure for players with `/` while CreateFolderRecursively was checking for `\\` for win32. 

The fix is to recognise both forward and backward slashes as file separators on windows.

Fixes #4284
2018-08-12 23:47:38 +01:00
changyong guo
57690b81a2 Experience orb (#4259)
* Replace cWorld::FindClosesPlayer with cWorld::DoWithClosestPlayer
* Implement experience reward splitting into the orb sizes used in vanilla
* Modified speed calculation in cExpOrb::Tick to make the orbs fly towards the player

Fixes #4216
2018-08-02 15:59:10 +01:00
peterbell10
1e014a54dc
Ocelots no longer multiply exponentially (#4272)
Along with a call to `destroyentities`, this fixes #4271

I'm guessing the intention of this code was to modify the normal spawning of ocelots. However, `cEntity::SpawnOn` is actually called to send the entity to an individual client. That means this code was run for every single player, every time they were sent a chunk with ocelots in it. Thus, the ocelots population would grow exponentially as players log in and move around.
2018-07-30 12:49:46 +01:00
bionext03
90d552a702 Add new flow direction calculating algorithm (#4160) 2018-07-27 10:01:53 +01:00
peterbell10
cdd8e42587
cWorld: Manually bind deprecated broadcast functions (#4265)
Ref: https://github.com/cuberite/cuberite/pull/4264#discussion_r204769193
2018-07-27 00:12:41 +01:00
peterbell10
950aeffff8
CheckBasicStyle: Check number of empty lines between functions (#4267)
Add check for number of empty lines between functions and fix the corresponding failures
2018-07-26 22:24:36 +01:00
Tiger Wang
b8ab03bc6b At long last... Piston animations!
* Fixes #3198
* Fixes #57 (again lol)
2018-07-25 15:29:53 +01:00
Tiger Wang
74f5160332 Reimplemented fall particles
Regression when 1.9.x support introduced in #3135, originally implemented in #461.
2018-07-25 15:29:26 +01:00
peterbell10
c94d7184eb Broadcast refactor (#4264)
* Move Broadcast functions from cChunkMap to cBroadcaster

- Remove cBroadcastInterface in favour of cBroadcaster.

- cChunk: Remove broadcast functions.

* resurect broadcast interface

* Absorb cBroadcaster into cWorld.
Removes the need for forwarding the function calls.

* Improve const-correctness

* Use Int8 instead of char

+ Comment `ForClients` functions

* Improve comments

* Broadcaster: Rename ForClients functions
2018-07-24 22:30:49 +01:00
peterbell10
b5f29d5d2c Stop cFunctionRef constructor from disabling default copy constructor. (#4173)
* Stop cFunctionRef constructor from disabling default copy constructor.
+ cFunctionRef: Improve documentation
2018-07-24 22:30:05 +01:00