1
0
Commit Graph

11037 Commits

Author SHA1 Message Date
KrystilizeNevaDies
23bca00831
Implement Dropspenser Hook (#4903)
* Implement Dropspenser Hook

Implemented a hook for dropspensing.
HOOK_DROPSPENSE

When plugin callback returns true then dropspense is cancelled

* Update src/Bindings/PluginManager.h

Co-authored-by: peterbell10 <peterbell10@live.co.uk>

* Create OnDropSpense.lua

* Fix indent

* Forgot include

Forgot to include the plugin manager. Although now im confused why it was working on my end without including the plugin manager

* Update plugins.lua with dropspense

* fix typos

* haha notepad++ go brr

Co-authored-by: peterbell10 <peterbell10@live.co.uk>
2020-09-21 15:31:45 +00:00
theophriene
0a1bf06c6f
Trapdoor crash fix (#4890)
* [WIP] Trapdoor crash fix

* Fixed code style

* Updated commentary in the code

* Updated commentary in the code again

* Fix copy-past error

* Fix another copy-past error!

* Fixed orientation & clipping

* Remove redundant clause

* Some code cleanup

* Fixed compilation error

* Moved logic into helper function, slightly reorganised the caller

* Fixed comments

* Fixed comments, what an idiot

* Added to CONTRIBUTORS

* Fixed bitwise error

* Use cYawRotator

* Reduce indent

Co-authored-by: Elias Thomson <fiv.pids@gmail.com>
Co-authored-by: Tiger Wang <ziwei.tiger@outlook.com>
2020-09-21 14:41:31 +00:00
Alexander Harkness
8de71fc9d6
Synchronously save chunks on server shutdown (#4900)
+ Synchronously save chunks on server shutdown. Fixes #4884
2020-09-21 13:12:09 +01:00
KingCol13
b6b7fb1a65
Implement fortune for ores, glowstone and sea lanterns (#4897)
* Implemented fortune for ores, glowstone and sea lanterns (but nothing organic or flint).

* Cleanup printf

* Stopped playing golf, gave the Camels a FirstHump and moved the FortuneDropMult comment. Thanks for the review :).

* Got rid of FortuneDropMult and replaced with Peter's massive optimization/simplification.

* Fixed default lapis max droprate (8 -> 9).

* Clamp max drops for non-redstone ores to 10.

* Comment justifying the clamp.
2020-09-20 18:06:28 +00:00
Tiger Wang
80fa364fd7
IBM Z (#4892) 2020-09-20 18:02:00 +00:00
Tiger Wang
5a16620322
Cauldron: backport "use" behaviour to 1.12 (#4902)
* Cauldron: backport "use" behaviour to 1.12
2020-09-20 15:39:17 +01:00
Tiger Wang
68cced73af
BlockHandler initialisation is a constant expression (#4891)
* BlockHandler initialisation is a constant expression

If we can't make it all namespaces, this is the next best I guess.

+ Tag handlers constexpr, const as needed
+ Inherit constructors
* Privatise handler functions

* More constexpr

Co-authored-by: Alexander Harkness <me@bearbin.net>
2020-09-20 13:50:52 +00:00
12xx12
6a0669fb98
Added armor and shulker box cleaning (#4875)
+ Added armor and shulker box cleaning
2020-09-20 02:24:58 +01:00
12xx12
f8de67aace Added end portal and enchanting table block entities 2020-09-20 01:40:20 +01:00
12xx12
a2935efaff
Fixed missing case: in entity damaging crashin the server (#4899)
* made snow golems not crashing the server anymore

* changed damage type to environment

* updated damage in API dopcumentation and changed enderman damage type

* removed incidental d in the code

* added dtEnvironment to ArmorCoversAgainst

Co-authored-by: 12xx12 <12xx12100@gmail.com>
Co-authored-by: Alexander Harkness <me@bearbin.net>
2020-09-19 17:31:36 +00:00
12xx12
1a211b6c46
Changing jungle trees a bit (#4823)
* switch range on jungle tree generation and renamed a confusing variable

* changed two numbers to match vanilla behaviour

* made jungle trees closer to vanilla behaviour

- matched variable names to new checkstyle
- made branch generation independent from noise at block position

* replaced random provider with Noise

* implemented changes suggested by peterbell10

* changed the way to determine the size of the leaves on branches

Co-authored-by: peterbell10 <peterbell10@live.co.uk>

Co-authored-by: 12xx12 <12xx12100@gmail.com>
Co-authored-by: peterbell10 <peterbell10@live.co.uk>
Co-authored-by: Alexander Harkness <me@bearbin.net>
2020-09-19 16:51:26 +00:00
12xx12
55672ca5b3
added 12xx12 to CONTRIBUTORS (#4896)
Co-authored-by: 12xx12 <12xx12100@gmail.com>
2020-09-19 14:34:45 +00:00
KingCol13
272a8029e0
Fix silk-touching glowing redstone (#4893)
* Add src/BlocksRedstoneOre.h to CMakeLists.txt

* Fixed silk touch pickaxe not dropping redstone ore (and dropping null item instead)
2020-09-19 06:59:21 +00:00
Tiger Wang
e2e78abdb7 Style, no need to tag struct with s 2020-09-18 16:41:06 +01:00
Tiger Wang
608e7a9950 Remove unused ServerPort argument 2020-09-18 16:41:06 +01:00
Tiger Wang
7f372b12cb Add State enum to protocol 2020-09-18 16:41:06 +01:00
Tiger Wang
bf253caab5 Remove unused ServerPort member 2020-09-18 16:41:06 +01:00
Tiger Wang
acc399ffb3 Cleanup Protocol classes
* Visibility, static, ordering changes
2020-09-18 16:41:06 +01:00
12xx12
c18fe8aa45
Adding Generator For Single Piece Structures (#4830)
* the beginning of a magnificent work - added basic files and classes without functionality

* fixed checkstyle

* added imports

* moved imports

* - Adding SinglePieceStructureGen
- Adding a cPrefabChestStructure to generate Chests with contents
- Added the options and calls to the ComposableGenerator

* moved Globals to .h file

* removed the chest thingy from the code (for now)

* Update SinglePieceStructureGen.cpp

* readded whitespace

* renamed to SinglePieceStructuresGen for consistency
added new classes to test

* fixed small things (mostly style and cleanup)
removed loottables

* added small changes suggested by madmaxoft

* small change to documentation

* added check for allowed biomes

* check only the biome of the origin position

* fixed error on IsBiomeAllowed

* added new cubesets

* updated structures for with sponging

* updated biome names

* updated metadata to prevent crashing
removed debug output

* updated structures with sponging

* added sponging to deserterWell to make it disappear in sand

* small change in meta

* rename DesertTemple -> DesertPyramid

* minor style changes

Co-authored-by: 12xx12 <12xx12100@gmail.com>
Co-authored-by: Alexander Harkness <me@bearbin.net>
2020-09-17 22:20:50 +00:00
KingCol13
a72769b30e
Added recipe for the observer. (#4880)
* Added recipe for the observer.

* Forgot mirrored recipe.

Co-authored-by: Alexander Harkness <me@bearbin.net>
2020-09-17 21:47:38 +00:00
Elias Thomson
f7091e1b19
Fixed leaves and wheat not breakable with piston (#4882)
* Fixed leaves and wheat not breakable with piston

* Fixed alpha-sort

* Add beetroots

Co-authored-by: Elias Thomson <fiv.pids@gmail.com>
2020-09-17 21:03:02 +00:00
12xx12
ba5312c198
Fixed snow golems and added documentation to damage type and added damage type for damage from environment to mobs (#4877)
* made snow golems not crashing the server anymore

* changed damage type to environment

* updated damage in API dopcumentation and changed enderman damage type

* removed incidental d in the code

Co-authored-by: 12xx12 <12xx12100@gmail.com>
2020-09-17 18:06:41 +00:00
Tiger Wang
c3d2956ba5
BlockHandler: no dynamic allocation (#4862)
* BlockHandler: no dynamic allocation
2020-09-17 14:51:42 +01:00
12xx12
53549a1a4c
Add some const qualifiers to functions (#4874)
* add some const qualifiers to functions

* added changes suggested by @tigerw

Co-authored-by: 12xx12 <12xx12100@gmail.com>
2020-09-16 22:01:20 +00:00
Elias Thomson
a90dedffeb
Fixed doors not breakable by piston (#4869)
Co-authored-by: Elias Thomson <dev@eliasthomson.com>
2020-09-15 19:47:23 +00:00
Tiger Wang
d9d71e1de6
Rail: avoid invalid game states (#4864)
+ Check CanBeAt
Ref: #4859

Co-authored-by: Alexander Harkness <me@bearbin.net>
2020-09-13 13:44:20 +00:00
Tiger Wang
33f3c18bc1
Beds: derestrict clicking block face (#4863)
Ref: https://github.com/cuberite/cuberite/issues/4860#issuecomment-691545904
2020-09-13 10:58:39 +00:00
Tiger Wang
198407807f
Reverse order of ChunkSender priorities (#4858)
* Reduces confusion when using overloaded operator< and priority_queue

Co-authored-by: peterbell10 <peterbell10@live.co.uk>
2020-09-12 19:43:18 +00:00
Tiger Wang
93adbdce9a
Use tracing for explosions (#4845)
* TNT: Implement tracing algorithm

+ Add intensity tracing
* Fix iterating over all players to SendExplosion, even those not in range

* Implemented TNT entity interaction

* Fixed misaligned destruction tracing

* Finalise TNT algorithm

- Remove BlockArea and just use chunks

Using SetBlock makes it so that we can update everything properly, and does appear to be faster.

* BlockInfo learns about explosion attentuation

* Rename Explodinator parameters

* TNT: pull block destruction into common function

Co-authored-by: Alexander Harkness <me@bearbin.net>
2020-09-12 18:57:44 +00:00
SatoKaito
834d61dacc
fixed missing include for FreeBSD. (#4852) 2020-09-10 00:17:06 +01:00
12xx12
c2f8ceb554
Add more statistic tracking (#4837)
+ Added possible 1.8 stats
+ Added stat tracking for 1.8.2
+ Added stat tracking for 1.9
+ Added the breed cow achievement

Co-authored-by: 12xx12 <12xx12100@gmail.com>
2020-09-05 16:13:44 +01:00
12xx12
2d197e147e
Use pitch lookup in noteblock block entity (#4826)
- Removed the calculation in the noteblock block entity

I did the calculation in python if anyone is interested where the numbers are from

Co-authored-by: 12xx12 <12xx12100@gmail.com>
2020-09-05 16:07:01 +01:00
Tiger Wang
040380321c WriteConsoleInput can return FALSE when running as servic 2020-09-05 14:23:54 +01:00
Tiger Wang
29808c61c9 Reformat messages in NonCtrlHandler 2020-09-05 13:41:42 +01:00
Tiger Wang
1bc12ba2b3 Streamline startup sequence
* Clean up cRoot & main
* Move some OS-specifics into OSSupport
2020-09-05 13:16:52 +01:00
Tiger Wang
5e670a050b Rename AddEntityIfNotPresent to AddPlayer
+ Always make a chunk for the player to go into
* Fixes #4847
2020-09-03 22:25:35 +01:00
Alexander Harkness
a3b5cba6be
Define _DEBUG macro for tests and main server (#4843)
Cuberite can now ASSERT its own failure once again...

Signed-off-by: @tigerw
2020-08-30 15:32:03 +00:00
Tiger Wang
f84e805453 Entities can fail to add into a chunk
- MoveEntityToNewChunk, AddEntity can fail. Ensure we handle these cases correctly
2020-08-29 21:34:21 +01:00
Tiger Wang
07ffd9f6f3 Unused/duplicate function cleanup
* FaceIntToBlockFace in 1.8/1.9 protocol merged
- Removed undefined permissions stuff in Player header
2020-08-29 16:47:40 +01:00
Tiger Wang
d2e92440eb Remove redundant DoWithChunkAt in chests 2020-08-28 21:43:12 +01:00
Tiger Wang
5d736b653f Minor style fixes 2020-08-28 21:42:37 +01:00
Tiger Wang
c1ffed60ec FastNBTWriter: AddString now uses string_view
* Avoids an allocation for all those string literals we pass in
2020-08-28 21:42:18 +01:00
Tiger Wang
8fa8ee96fc Broadcaster: don't loop over all entities to broadcast one's position
* Use ForClientsWithEntity
2020-08-28 21:41:18 +01:00
Tiger Wang
be121f9e80 Save enderchest block entities to storage
+ Add EnderChest saving, as Vanilla does
- Remove CreateBlockEntities. Storage should save & load everything so looping over chunk data is not needed
2020-08-28 21:40:40 +01:00
Tiger Wang
da9158937d WorldStorage: Removed unused callback parameters 2020-08-28 21:36:46 +01:00
Tiger Wang
071aee6c79 Clean up pickup collection to use ForEachEntityInBox 2020-08-28 21:35:38 +01:00
Tiger Wang
167247328a Chunk: Make StayCount/AlwaysTicked unsigned 2020-08-28 21:34:23 +01:00
Tiger Wang
7023548de0 Simplify MoveEntityToNewChunk
- No longer try getting from the chunkmap if GetNeighborChunk fails, since nothing else does this and entities (in future) will not tick close to an unloaded chunk edge
* GetRelNeighborChunk uses FindChunk
2020-08-28 21:32:46 +01:00
Tiger Wang
08bd77e547 Clean up GenerateChunk/TouchChunk
- Remove TouchChunk
- Remove unused bool return value in GenerateChunk
- Remove ShouldGenerateIfLoadFailed
2020-08-28 21:26:04 +01:00
Tiger Wang
72ae5ecb5a ChunkMap: do not wantonly make empty chunks
- Removed calls that constructed an empty chunk, found it was invalid, and did nothing with said chunk

Partially addresses #2324
2020-08-28 21:22:44 +01:00