Commit Graph

4147 Commits

Author SHA1 Message Date
TheMode
0bd519c894 Use fastutil for viewable packets
Signed-off-by: TheMode <themode@outlook.fr>
2021-10-15 06:17:48 +02:00
EpicPlayerA10
ca6fbe4d09 Misspelled firework type enum 2021-10-14 19:29:33 -04:00
TheMode
21b751dbd1 Reduce default worker thread count
Signed-off-by: TheMode <themode@outlook.fr>
2021-10-13 12:37:54 +02:00
TheMode
b5b281c717 Use a parallel stream for viewable packets
Signed-off-by: TheMode <themode@outlook.fr>
2021-10-13 12:25:35 +02:00
TheMode
c0024fe4dd Optimize getEquipmentsPacket
Signed-off-by: TheMode <themode@outlook.fr>
2021-10-13 06:36:43 +02:00
TheMode
bd4aa90753
Framed packet cleanup (#489) 2021-10-13 06:33:44 +02:00
TheMode
0f4698bed7 Potentially fix removed entities from still being ticked
Signed-off-by: TheMode <themode@outlook.fr>
2021-10-11 23:38:32 +02:00
TheMode
5c2ab68a0a Add experimental Point#sameBlock
Signed-off-by: TheMode <themode@outlook.fr>
2021-10-11 11:08:35 +02:00
TheMode
eca9b5e32d Flush packets before computing mspt
Signed-off-by: TheMode <themode@outlook.fr>
2021-10-11 03:33:16 +02:00
Andre Roldan
b94d196021
use legacySection() instead of legacyAmpersand() (#488) 2021-10-10 04:19:32 +02:00
TheMode
022ec237ba KeepAliveListener cleanup
Signed-off-by: TheMode <themode@outlook.fr>
2021-10-10 03:29:51 +02:00
EpicPlayerA10
6e16fb7b13
Fix writable book (#478) 2021-10-08 22:24:01 +02:00
TheMode
11806b9166 Ensure no packet corruption due to encryption. A proxy is still recommended for optimal performance
Signed-off-by: TheMode <themode@outlook.fr>
2021-10-06 21:14:08 +02:00
TheMode
45071cebd8
Add EntityInstanceEvent (#480) 2021-10-06 20:40:17 +02:00
TheMode
2f1e4101d1 Add more try-catch to prevent the worker from returning
Signed-off-by: TheMode <themode@outlook.fr>
2021-10-06 18:47:40 +02:00
Matt Worzala
d89e5cf2ee
Hardcode heightmap value to dimension height. (#481) 2021-10-05 23:29:05 +02:00
TheMode
a6f59fc9e9 Ensure that player connections reference are not kept for viewable packets
Signed-off-by: TheMode <themode@outlook.fr>
2021-10-03 19:23:09 +02:00
TheMode
b9746a0574 Give InventoryClickEvent the proper inventory for drag clicks
Signed-off-by: TheMode <themode@outlook.fr>
2021-10-02 20:03:38 +02:00
TheMode
e71c420fa8 Remove unnecessary air check
Signed-off-by: TheMode <themode@outlook.fr>
2021-10-02 01:58:42 +02:00
Moulberry
26341005b1
Passenger Fixes (#476)
Don't teleport player when entering/exiting vehicle + better height offset logic
2021-10-01 16:35:42 +02:00
TheMode
36bcf69728 Buffer collection cleaner
Signed-off-by: TheMode <themode@outlook.fr>
2021-09-29 18:31:28 +02:00
themode
729fc14e6d Skip 3 bytes instead of overwriting 0 2021-09-26 17:39:30 +02:00
themode
d02a898646 Fix buffer view not being used with compression disabled 2021-09-26 17:35:14 +02:00
TheMode
236683c986 No volatile read for compression/encryption
Signed-off-by: TheMode <themode@outlook.fr>
2021-09-26 17:02:05 +02:00
TheMode
f07ab21d3e Use LocalCache for deflaters
Signed-off-by: TheMode <themode@outlook.fr>
2021-09-25 20:29:47 +02:00
TheMode
9fe3f28497 Improve ThreadLocal performance when calling from a minestom thread
Signed-off-by: TheMode <themode@outlook.fr>
2021-09-25 19:37:14 +02:00
TheMode
be9b11f238 Simplify path finding code, do not expose internal parts
Signed-off-by: TheMode <themode@outlook.fr>
2021-09-24 19:31:54 +02:00
TheMode
619a9b3209 Use a parallel stream for flushing
Signed-off-by: TheMode <themode@outlook.fr>
2021-09-23 11:32:13 +02:00
TheMode
68107c9a90 Reuse the tick buffer when possible & avoid iteration
Signed-off-by: TheMode <themode@outlook.fr>
2021-09-22 23:24:22 +02:00
TheMode
d5d4a97694 EntityTeleportPacket must also be prepared
Signed-off-by: TheMode <themode@outlook.fr>
2021-09-22 19:12:48 +02:00
TheMode
93a62ba133 Optimize entity teleport, prevent movement packets from being sent with teleport ones
Signed-off-by: TheMode <themode@outlook.fr>
2021-09-22 01:13:05 +02:00
themode
1d8addaea6 Prevent TickThreads from stopping if something weird happens 2021-09-21 21:31:02 +02:00
TheMode
e97f1db184 Call Player#remove on server shutdown
Signed-off-by: TheMode <themode@outlook.fr>
2021-09-21 19:30:36 +02:00
TheMode
5a4fc95ffd Shutdown the server on OOM
Signed-off-by: TheMode <themode@outlook.fr>
2021-09-21 10:44:36 +02:00
TheMode
e43d001076 Passenger entities should not send velocity packets
Signed-off-by: TheMode <themode@outlook.fr>
2021-09-21 10:37:36 +02:00
TheMode
ccbbf6b512 Fix BinaryBuffer#canRead
Signed-off-by: TheMode <themode@outlook.fr>
2021-09-21 10:17:33 +02:00
TheMode
22ead81ebe Take the vehicle eye height into consideration
Signed-off-by: TheMode <themode@outlook.fr>
2021-09-21 09:10:51 +02:00
TheMode
d8abdef1da Synchronize entity position when removing vehicle
Signed-off-by: TheMode <themode@outlook.fr>
2021-09-20 22:43:54 +02:00
TheMode
2e017c3f0e Put equality check in the final method
Signed-off-by: TheMode <themode@outlook.fr>
2021-09-20 22:32:16 +02:00
TheMode
3ea414fe85 Merge remote-tracking branch 'origin/master' 2021-09-20 22:29:11 +02:00
TheMode
a6fda18af6 Ensure that passengers are visible
Signed-off-by: TheMode <themode@outlook.fr>
2021-09-20 22:28:09 +02:00
Bloepiloepi
497816df5a Allow playerSkin to be null 2021-09-20 20:56:12 +02:00
TheMode
62769fc343
Merge pull request #470 from MrBretze/master
Added isChunkLoaded to Instance.java
2021-09-20 19:56:14 +02:00
TheMode
2c4ea3c3c4 Serialize/Compress tag packet only once
Signed-off-by: TheMode <themode@outlook.fr>
2021-09-20 19:34:43 +02:00
TheMode
8f3e8c5a13 Remove players during their next tick
Signed-off-by: TheMode <themode@outlook.fr>
2021-09-20 19:30:52 +02:00
TheMode
17807f35da Add experimental PlayerConnection#sendFramedPacket
Signed-off-by: TheMode <themode@outlook.fr>
2021-09-20 18:59:15 +02:00
TheMode
4e58d61345 Prevent deadlock when adding/removing viewers very fast
Signed-off-by: TheMode <themode@outlook.fr>
2021-09-20 18:42:31 +02:00
TheMode
e65c9f6a79 Avoid block allocation if the properties map is the same
Signed-off-by: TheMode <themode@outlook.fr>
2021-09-20 18:09:16 +02:00
TheMode
25055413ff Avoid unnecessary allocation in the anvil loader
Signed-off-by: TheMode <themode@outlook.fr>
2021-09-20 17:49:39 +02:00
TheMode
860c6b21d1 Remove threadChunkMap
Signed-off-by: TheMode <themode@outlook.fr>
2021-09-20 13:31:45 +02:00
TheMode
1edab499f1 Make dedicated thread class for tick scheduling
Signed-off-by: TheMode <themode@outlook.fr>
2021-09-20 13:01:58 +02:00
TheMode
82a68cbfad Inline shouldBenchmark
Signed-off-by: TheMode <themode@outlook.fr>
2021-09-20 12:47:22 +02:00
ALS
64100c64e6 Make isChunkLoaded not abstract 2021-09-19 20:54:13 +02:00
ALS
66f476b2cd Added isChunkLoaded to Instance.java 2021-09-19 20:37:39 +02:00
TheMode
cbc87a2a68
Merge pull request #468 from Project-Cepi/relative-vec-coordinate-type-getter
Add `getCoordinateType` to RelativeVec
2021-09-19 14:37:26 +02:00
LeoDog896
7c6c583ce1 Record getter 2021-09-19 08:36:27 -04:00
LeoDog896
7cc50467e2 Update RelativeVec.java 2021-09-19 08:25:22 -04:00
TheMode
872a49d371 Use a bitset for light mask (thanks @Kebab11noel)
Signed-off-by: TheMode <themode@outlook.fr>
2021-09-19 10:09:08 +02:00
TheMode
d53ef36586 Use an array instead of list
Signed-off-by: TheMode <themode@outlook.fr>
2021-09-18 22:14:46 +02:00
TheMode
a3ff3b25c4 Add hint in BlockGetter to only retrieve a block type at a position (ignore the handler + nbt)
Signed-off-by: TheMode <themode@outlook.fr>
2021-09-18 16:18:41 +02:00
TheMode
dda90a6dfe Improve chunk block getter
Signed-off-by: TheMode <themode@outlook.fr>
2021-09-18 15:59:20 +02:00
TheMode
5376b8af76 Synchronize chunk packet creation
Signed-off-by: TheMode <themode@outlook.fr>
2021-09-17 16:58:50 +02:00
TheMode
380f5a5a67 Remove faulty fast exit
Signed-off-by: TheMode <themode@outlook.fr>
2021-09-16 19:50:57 +02:00
TheMode
4b5ec566bd Allow FramedPackets to be sent safely
Signed-off-by: TheMode <themode@outlook.fr>
2021-09-16 19:37:30 +02:00
TheMode
be4542e936 Ignore air when shift clicking
Signed-off-by: TheMode <themode@outlook.fr>
2021-09-16 19:21:36 +02:00
TheMode
ba8da0647e Properly call click events for shift & double clicks
Signed-off-by: TheMode <themode@outlook.fr>
2021-09-16 18:57:13 +02:00
TheMode
13c05626e2 Handle the connection exception being null
Signed-off-by: TheMode <themode@outlook.fr>
2021-09-16 07:50:12 +02:00
TheMode
3211831073 Ensure that the viewable element can be collected
Signed-off-by: TheMode <themode@outlook.fr>
2021-09-16 07:43:08 +02:00
KrystilizeNevaDies
e061c1e640 Correct Instance#getNearbyEntities implementation 2021-09-16 14:56:08 +10:00
TheMode
2589cc4f3e Inline TickThread tick method
Signed-off-by: TheMode <themode@outlook.fr>
2021-09-16 06:21:45 +02:00
TheMode
f1a1adc74f Issue fixed in GraalVM 21.3
Signed-off-by: TheMode <themode@outlook.fr>
2021-09-16 05:08:49 +02:00
TheMode
aa33e2256c Remove useless map lookup
Signed-off-by: TheMode <themode@outlook.fr>
2021-09-15 17:45:09 +02:00
TheMode
0e8c07a811 Simplify ThreadDispatcher even further
Signed-off-by: TheMode <themode@outlook.fr>
2021-09-15 17:33:01 +02:00
TheMode
9ab5e746ca Prevent another lambda allocation
Signed-off-by: TheMode <themode@outlook.fr>
2021-09-15 15:30:24 +02:00
TheMode
cffbf47b94 Prevent lambda allocation
Signed-off-by: TheMode <themode@outlook.fr>
2021-09-15 14:57:17 +02:00
TheMode
7f463cdf94 Cleanup
Signed-off-by: TheMode <themode@outlook.fr>
2021-09-15 14:54:11 +02:00
TheMode
a0c38b94c6 Avoid unnecessary thread local lookup for acquirable entities
Signed-off-by: TheMode <themode@outlook.fr>
2021-09-15 14:41:01 +02:00
TheMode
2ecd10a4ec Cipher#update is copy-safe
Signed-off-by: TheMode <themode@outlook.fr>
2021-09-15 03:47:48 +02:00
Moulberry
c5362bffba Remove debugging 2021-09-14 17:50:56 +08:00
Moulberry
ee435f43f2 Set proper pose once flying finishes 2021-09-14 17:50:19 +08:00
Moulberry
1933914bbc Set proper pose once flying finishes 2021-09-14 17:43:02 +08:00
Moulberry
73ea79bed2 Fix flying clip bug 2021-09-14 17:37:57 +08:00
TheMode
7737d0e5b3 Cleanup MultiBlockChangePacket
Signed-off-by: TheMode <themode@outlook.fr>
2021-09-14 08:14:14 +02:00
TheMode
2d3daf2504 Share code
Signed-off-by: TheMode <themode@outlook.fr>
2021-09-14 07:20:58 +02:00
TheMode
8fce62ccba Simplify tick loop
Signed-off-by: TheMode <themode@outlook.fr>
2021-09-14 04:36:10 +02:00
TheMode
983850171b Use cleaner to reuse connection buffers
Signed-off-by: TheMode <themode@outlook.fr>
2021-09-14 02:22:58 +02:00
TheMode
561a10bddc
Merge pull request #459 from Project-Cepi/log-class-loader-finalization
Use proper logging to log class loader finalization
2021-09-14 01:20:48 +02:00
TheMode
2f9b649466 Reduce memory used for viewable packets
Signed-off-by: TheMode <themode@outlook.fr>
2021-09-13 23:01:37 +02:00
TheMode
e1a3c295a2 Add dedicated PooledBuffers class
Signed-off-by: TheMode <themode@outlook.fr>
2021-09-13 22:12:07 +02:00
Moulberry
5bf4758a3a Remove extra chunk unloads 2021-09-13 15:08:57 +08:00
Moulberry
9531bd5cb3 Merge upstream 2021-09-13 15:07:11 +08:00
Moulberry
0360fd3f79 Fix 2 entity loading issues 2021-09-13 15:05:16 +08:00
TheMode
527141df74 Nvm, the barrier is not necessary
Signed-off-by: TheMode <themode@outlook.fr>
2021-09-12 23:44:53 +02:00
TheMode
ecd2200e1a Insert barrier
Signed-off-by: TheMode <themode@outlook.fr>
2021-09-12 23:22:32 +02:00
TheMode
d9c32fe198 Improve TickThread
Signed-off-by: TheMode <themode@outlook.fr>
2021-09-12 23:20:22 +02:00
TheMode
06d8586f7f Improve the thread provider api
Signed-off-by: TheMode <themode@outlook.fr>
2021-09-12 22:55:37 +02:00
TheMode
c31aa8a7ec More safety in Acquired + doc
Signed-off-by: TheMode <themode@outlook.fr>
2021-09-12 06:29:33 +02:00
TheMode
7b059d2be5 Remove redundant comments/methods
Signed-off-by: TheMode <themode@outlook.fr>
2021-09-12 02:34:29 +02:00
LeoDog896
ab35022f60 Use slf4j instead of println for finalization (MinestomExtensionClassLoader) 2021-09-11 17:42:30 -04:00
TheMode
e77e32889b
Merge pull request #458 from Project-Cepi/add-chunk-ref-to-block-handler-methods
Add chunk reference to Tick, blockPosition (Tick) -> relativeBlockPosition
2021-09-11 23:20:41 +02:00
LeoDog896
adab546d33 Remove unnecessary imports 2021-09-11 17:19:24 -04:00
LeoDog896
332a8536be Use absolute coordinates 2021-09-11 17:08:03 -04:00
TheMode
5106927b10 Add Acquirable#isLocal
Signed-off-by: TheMode <themode@outlook.fr>
2021-09-11 20:24:11 +02:00
LeoDog896
888405c54c Add chunk reference to Tick 2021-09-11 11:49:14 -04:00
TheMode
42f4678db0 More style
Signed-off-by: TheMode <themode@outlook.fr>
2021-09-11 06:13:48 +02:00
TheMode
b5062ab4d6 Gravity tick counter should be part of the velocity tick method
Signed-off-by: TheMode <themode@outlook.fr>
2021-09-11 05:54:26 +02:00
TheMode
3977b6f967 Code style
Signed-off-by: TheMode <themode@outlook.fr>
2021-09-11 05:31:35 +02:00
TheMode
ee95015ed3 Simplify packet reading
Signed-off-by: TheMode <themode@outlook.fr>
2021-09-11 03:39:59 +02:00
TheMode
0c5b37ed18 Optimize unnecessary chunk coordinate conversion
Signed-off-by: TheMode <themode@outlook.fr>
2021-09-11 01:04:11 +02:00
TheMode
73237bb11b Fix wrong constant being used
Signed-off-by: TheMode <themode@outlook.fr>
2021-09-11 00:04:35 +02:00
TheMode
75dbacf8aa
Merge pull request #455 from RinesThaix/inventorySlots
Resolving inventory- events and condition slot-issues
2021-09-10 18:11:59 +02:00
Шандуренко Константин Владимирович
6c76baa940 Code review 2021-09-10 19:08:39 +03:00
Шандуренко Константин Владимирович
1e5dc8d870 Removed stateless-related stuff from BlockManager 2021-09-10 18:42:21 +03:00
Шандуренко Константин Владимирович
e990283c40 Resolving inventory- events and condition issues 2021-09-10 18:38:27 +03:00
Шандуренко Константин Владимирович
98fc704139 BlockHandlerBase 2021-09-10 16:50:38 +03:00
Шандуренко Константин Владимирович
e3600525fa BlockManager#registerStatelessHandler 2021-09-10 16:48:01 +03:00
Шандуренко Константин Владимирович
f45484c840 Removed synchronization on BlockManager methods, related to handlers 2021-09-10 16:45:04 +03:00
Шандуренко Константин Владимирович
2f2254ebc2 Setting up BlockHandler for blocks loaded by AnvilLoader 2021-09-10 16:42:59 +03:00
TheMode
6355f06d53 Compression buffer has now multiple purpose
Signed-off-by: TheMode <themode@outlook.fr>
2021-09-10 06:35:34 +02:00
TheMode
3ddf729a46 Code style, remove deprecated ChatMode
Signed-off-by: TheMode <themode@outlook.fr>
2021-09-10 05:50:08 +02:00
TheMode
e6db47ec6e Add fancy Player#sendPacket shortcut
Signed-off-by: TheMode <themode@outlook.fr>
2021-09-10 05:41:54 +02:00
TheMode
fd027ecfd7 Do not forget to put the buffer back in the pool queue
Signed-off-by: TheMode <themode@outlook.fr>
2021-09-09 23:18:14 +02:00
TheMode
526108b896 Remove unnecessary allocation during encryption
Signed-off-by: TheMode <themode@outlook.fr>
2021-09-09 23:15:57 +02:00
TheMode
344003f36a VanillaStackingRule style
Signed-off-by: TheMode <themode@outlook.fr>
2021-09-09 23:14:59 +02:00
TheMode
f48199397a Simplify acquisition
Signed-off-by: TheMode <themode@outlook.fr>
2021-09-09 20:49:54 +02:00
TheMode
acb8634b4b Acquirable style cleanup
Signed-off-by: TheMode <themode@outlook.fr>
2021-09-09 17:16:20 +02:00
TheMode
1c719a2fd7 Make getChunkCoordinate smarter and more efficient
Signed-off-by: TheMode <themode@outlook.fr>
2021-09-09 06:57:46 +02:00
TheMode
6ab94bb778 One less magic value
Signed-off-by: TheMode <themode@outlook.fr>
2021-09-09 00:26:10 +02:00
TheMode
d7a116c144 Prevent buffer being resized in writeFramedPacket, it is now possible to know if a buffer couldn't be written to
Signed-off-by: TheMode <themode@outlook.fr>
2021-09-08 22:26:18 +02:00
TheMode
f023b1bc07 Simplify writeVarIntHeader
Signed-off-by: TheMode <themode@outlook.fr>
2021-09-08 22:23:37 +02:00
TheMode
21bac6fba4 Better name for the local deflater, add link to the packet format
Signed-off-by: TheMode <themode@outlook.fr>
2021-09-08 20:31:13 +02:00
Moulberry
788bb71587 Fix initial startCondition of DOUBLE_CLICK being wrong as well 2021-09-08 23:22:22 +08:00
Moulberry
08c9339fae Fix double-click calling startCondition on the wrong inventory 2021-09-08 22:55:48 +08:00
Moulberry
571624a952 Fix duplication glitch with shift-click 2021-09-08 22:45:11 +08:00
Moulberry
9e5fadaa0e Fix broken cursor with window items packet 2021-09-08 21:50:14 +08:00
TheMode
025052102d Ensure positive chunk view distance from the client
Signed-off-by: TheMode <themode@outlook.fr>
2021-09-08 05:24:59 +02:00
TheMode
ffbc8e5f27 Fix Player#getLocale
Signed-off-by: TheMode <themode@outlook.fr>
2021-09-08 00:54:00 +02:00
TheMode
3e386a1491 Send unload packet
Signed-off-by: TheMode <themode@outlook.fr>
2021-09-07 21:26:24 +02:00
TheMode
e1c4a7afce Fix chunk 0 being sent multiple time
Signed-off-by: TheMode <themode@outlook.fr>
2021-09-07 20:14:15 +02:00
TheMode
4a260b98c2 Simplify/Improve getChunksInRange
Signed-off-by: TheMode <themode@outlook.fr>
2021-09-07 19:58:26 +02:00
Шандуренко Константин Владимирович
6c4eda3bb7 Chunk-related improvements 2021-09-07 19:24:24 +03:00
TheMode
4b7adae382 Make DimensionTypeManager thread-safe
Signed-off-by: TheMode <themode@outlook.fr>
2021-09-07 16:47:14 +02:00
TheMode
1c76fd152e Fix viewable packet when a connection has multiple pairs
Signed-off-by: TheMode <themode@outlook.fr>
2021-09-07 04:47:33 +02:00
TheMode
adf1023e35 There is no commit here - fix compression
Signed-off-by: TheMode <themode@outlook.fr>
2021-09-07 01:31:34 +02:00
TheMode
8f1e84ffdb Prevent framed packets from being corrupted
Signed-off-by: TheMode <themode@outlook.fr>
2021-09-07 01:24:51 +02:00
Шандуренко Константин Владимирович
85da1c073a Marked AbstractInventory with @NonExtendable 2021-09-06 21:10:40 +03:00
Шандуренко Константин Владимирович
2634042f7d InventoryItemChangeEvent is now recursive and not it's PlayerInventory-based child 2021-09-06 20:27:11 +03:00
Шандуренко Константин Владимирович
8f277cdb17 Removed unused imports 2021-09-06 20:24:20 +03:00
Шандуренко Константин Владимирович
5db56312f7 Code review 2021-09-06 20:23:37 +03:00
Шандуренко Константин Владимирович
8a04d7eed9 InventoryItemChangeEvent 2021-09-06 19:59:55 +03:00
TheMode
72987ac52f Save the server from crashing from OOM due to the client or server not being able to handle the network load
Signed-off-by: TheMode <themode@outlook.fr>
2021-09-06 16:17:30 +02:00
TheMode
b2a0b91a45 Add warning in PacketUtils
Signed-off-by: TheMode <themode@outlook.fr>
2021-09-06 13:40:11 +02:00
TheMode
02d927cc4d Rename internal registry constant holder interfaces
Signed-off-by: TheMode <themode@outlook.fr>
2021-09-06 13:32:52 +02:00
TheMode
f3ee80d126 Create a separate method to init & start the socket server
Signed-off-by: TheMode <themode@outlook.fr>
2021-09-05 22:03:51 +02:00
TheMode
2a8719e1e4 Make collections mutable in the meta builder
Signed-off-by: TheMode <themode@outlook.fr>
2021-09-05 18:48:10 +02:00
TheMode
8cbd6460f4 Cleanup...
Signed-off-by: TheMode <themode@outlook.fr>
2021-09-05 03:40:30 +02:00
TheMode
026550ac07 Simplify PacketUtils
Signed-off-by: TheMode <themode@outlook.fr>
2021-09-05 02:50:59 +02:00
TheMode
7b8277b6be Do not flip the buffer inside #write(ByteBuffer)
Signed-off-by: TheMode <themode@outlook.fr>
2021-09-04 23:56:27 +02:00
TheMode
885be567fa Avoid slice allocation
Signed-off-by: TheMode <themode@outlook.fr>
2021-09-04 19:50:09 +02:00
TheMode
d21414c146 Handle prepared buffer being bigger than the pooled ones
Signed-off-by: TheMode <themode@outlook.fr>
2021-09-04 19:30:18 +02:00
TheMode
f717279adc Independent socket send & receive buffer size
Signed-off-by: TheMode <themode@outlook.fr>
2021-09-04 16:43:45 +02:00
TheMode
96bfc4c6fa Add getters for chunk coordinates in Point
Signed-off-by: TheMode <themode@outlook.fr>
2021-09-04 15:29:20 +02:00
TheMode
8f17d52efa Merge branch 'master' into viewable-broadcast 2021-09-04 12:27:09 +02:00
TheMode
22b0c70500 Ensure that the read buffer can contain a single full packet
Signed-off-by: TheMode <themode@outlook.fr>
2021-09-04 03:40:22 +02:00
TheMode
4f382c5684 Fix tick allocation
Signed-off-by: TheMode <themode@outlook.fr>
2021-09-04 03:03:06 +02:00
TheMode
9353c56460 Fix build
Signed-off-by: TheMode <themode@outlook.fr>
2021-09-04 02:25:09 +02:00
TheMode
2c1e3e4323 Merge branch 'master' into viewable-broadcast
# Conflicts:
#	src/main/java/net/minestom/server/network/player/PlayerSocketConnection.java
2021-09-04 02:22:52 +02:00
TheMode
df92939ddd Use soft references for pooled buffers
Signed-off-by: TheMode <themode@outlook.fr>
2021-09-04 02:20:03 +02:00
TheMode
4075272a16 Disconnection should not be synchronized on the buffer lock
Signed-off-by: TheMode <themode@outlook.fr>
2021-09-03 17:27:47 +02:00
TheMode
efb39c2ece Flush cleanup & prevent double allocation
Signed-off-by: TheMode <themode@outlook.fr>
2021-09-03 16:51:00 +02:00
TheMode
e19b49db55 Merge branch 'master' into viewable-broadcast
# Conflicts:
#	src/main/java/net/minestom/server/network/player/PlayerSocketConnection.java
2021-09-03 14:01:39 +02:00
TheMode
538ef75552 Sending chunks should be thread safe
Signed-off-by: TheMode <themode@outlook.fr>
2021-09-03 13:57:19 +02:00
TheMode
3d5ae6fe94 Pool main connection buffer
Signed-off-by: TheMode <themode@outlook.fr>
2021-09-03 13:54:38 +02:00
TheMode
400109df0a Fix potential packet corruption
Signed-off-by: TheMode <themode@outlook.fr>
2021-09-03 13:43:00 +02:00
TheMode
4b2bda15f5 Merge branch 'master' into viewable-broadcast
# Conflicts:
#	src/main/java/net/minestom/server/network/player/PlayerSocketConnection.java
2021-09-02 18:50:55 +02:00
TheMode
d4e51f562c Remove threadlocal buffer cache in ChunkDataPacket
Signed-off-by: TheMode <themode@outlook.fr>
2021-09-02 18:44:50 +02:00
TheMode
399eb860a7 Improve performance when slow clients are connected
Signed-off-by: TheMode <themode@outlook.fr>
2021-09-02 15:44:36 +02:00
TheMode
463a46ccc0 Set socket size to max packet size
Signed-off-by: TheMode <themode@outlook.fr>
2021-09-01 18:21:51 +02:00
TheMode
0f2d850dce More Throwable handling
Signed-off-by: TheMode <themode@outlook.fr>
2021-09-01 17:15:49 +02:00
TheMode
9bb4043571 Remove legacy weirdness
Signed-off-by: TheMode <themode@outlook.fr>
2021-09-01 11:56:09 +02:00
Шандуренко Константин Владимирович
224345853e BoundingBox#PositionedPoints is immutable now 2021-08-31 16:16:43 +03:00
Шандуренко Константин Владимирович
32b33d6bf9 Code review 2021-08-31 15:55:24 +03:00
Шандуренко Константин Владимирович
34ec59dc68 ImmutableList.of() to List.of() 2021-08-31 15:52:38 +03:00
Шандуренко Константин Владимирович
a69cefd8d4 Fixing BoundingBoxes caching 2021-08-31 15:39:39 +03:00
iam4722202468
063a4dc392 Fix cursor item not being set properly when inventory click event is cancelled 2021-08-31 03:45:54 -04:00
Matt Worzala
220a4db768
mark BundleMeta experimental, shorten material nsid access 2021-08-30 18:09:08 -04:00
Matt Worzala
868c5ba044
add array copy 2021-08-30 18:04:46 -04:00
Matt Worzala
5b8051e2e8
experimental tags, docs, shorten item creation 2021-08-30 18:00:57 -04:00
Matt Worzala
8291639749
add BundleMeta and full item to/from nbt 2021-08-30 17:51:19 -04:00
TheMode
ebb179da7c You didn't see anything 2021-08-30 19:47:30 +02:00
TheMode
e99d8c6a6f Add BlockHandler.PlayerPlacement#getHand 2021-08-30 15:52:07 +02:00
TheMode
ae04ca5574 More comments for ListenerHandle 2021-08-30 12:33:09 +02:00
TheMode
a92ac203f7 Style cleanup 2021-08-29 17:11:10 +02:00
TheMode
61d19243f7 Fix event expiration 2021-08-29 12:50:44 +02:00
TheMode
8b61ead08e Fix parent filtering 2021-08-29 12:25:57 +02:00
TheMode
0a3ad69e58 Ensure listeners being up to date 2021-08-29 01:03:09 +02:00
TheMode
a75910fe3f Fix drag clicks 2021-08-29 00:07:58 +02:00
EpicPlayerA10
8b7fb7a7c5 Add missing husk 2021-08-28 21:10:56 +02:00
jglrxavpok
9f97c985aa Make javadoc build again 2021-08-28 17:09:07 +02:00
Xavier Niochaut
7b046c2225
Merge pull request #436 from Minestom/feature/thread-bound-tasks
Fix GLFW-based framebuffers not using the proper threads
2021-08-28 16:50:59 +02:00
jglrxavpok
07a05a6ed2 Remove unused import 2021-08-28 16:45:06 +02:00
jglrxavpok
4184602eb0 oops wrong line 2021-08-28 14:30:49 +02:00
jglrxavpok
b9f1f75249 Cleanup un-needed changes 2 2021-08-28 14:28:45 +02:00
jglrxavpok
b1b1e70c40 Cleanup un-needed changes 2021-08-28 14:27:52 +02:00
jglrxavpok
85ca2a5302 No longer expose Thread-binding to Task API 2021-08-28 14:20:47 +02:00
TheMode
4d0924a522 Can now specify InstanceContainer chunk loader during initialization 2021-08-28 13:06:09 +02:00
TheMode
bf847fac79 Oops position 2021-08-28 11:51:39 +02:00
TheMode
9739403ff4 Properly update the client position when switching vehicle 2021-08-28 11:37:42 +02:00
TheMode
34ba838ab5 Improve movement cancelling 2021-08-28 11:28:14 +02:00
TheMode
4680dbd64e Reuse call method for mapped nodes
Signed-off-by: TheMode <themode@outlook.fr>
2021-08-27 09:55:10 +02:00
TheMode
5c9c57439a Prevent node update from being called multiple times
Signed-off-by: TheMode <themode@outlook.fr>
2021-08-27 09:51:36 +02:00
jglrxavpok
42938111d5 Allow tasks to be bound to the same thread for each run. 2021-08-26 19:50:28 +02:00
TheMode
f7cd0def20 Add dedicated CachedPacket for future network optimizations
Signed-off-by: TheMode <themode@outlook.fr>
2021-08-26 18:18:35 +02:00
TheMode
b60b785dcd Fix unhandled exception
Signed-off-by: TheMode <themode@outlook.fr>
2021-08-26 17:59:51 +02:00
Matthew
75964f87b4 Merge Task#scheduleForShutdown into Task#schedule 2021-08-26 11:22:08 -04:00
Matthew
1c92414cad Add TaskBuilder#build 2021-08-26 11:22:08 -04:00
Matthew
2674ca933e Move functionality from TaskBuilder#schedule to Task#schedule and Task#scheduleForShutdown 2021-08-26 11:22:08 -04:00
Matt Worzala
3ce51ff470 switch permission level back to an int internally 2021-08-26 11:12:03 -04:00
kiipy
6eac7282af Made Player#setPermissionLevel persistent after death. 2021-08-26 11:12:03 -04:00
TheMode
66681c5caf Use an array for filtering 2021-08-26 14:25:13 +02:00
TheMode
d56479d316 Ensure that child also invalidate events
Signed-off-by: TheMode <themode@outlook.fr>
2021-08-26 13:24:16 +02:00
TheMode
af82bf1236 Reduce allocations for chunk packet writing 2021-08-26 10:55:56 +02:00
TheMode
024f8d36bd API cleanup 2021-08-26 10:36:31 +02:00
LeoDog896
811e3c542b Fix up tab completion for EntityType 2021-08-25 18:35:51 -04:00
TheMode
748b24b8ef Expand block properties error 2021-08-25 18:26:45 +02:00
TheMode
73f125763c Use a lock + weak map 2021-08-25 17:25:08 +02:00
TheMode
e185bca468 Fix obvious packet corruption 2021-08-25 13:54:09 +02:00
TheMode
5e18f48a1b Cleanup 2021-08-25 10:45:35 +02:00
TheMode
2ae0c0bbcd Batch movement packets 2021-08-25 09:01:13 +02:00
TheMode
6520855418 Fix buffer offset 2021-08-24 21:21:51 +02:00
TheMode
5ddd97cee2 Move optimized event calling inside ListenerHandle 2021-08-24 15:35:09 +02:00
TheMode
aed441123e Marks some methods as experimental 2021-08-24 15:25:11 +02:00
TheMode
93cbd52313 Use arrays instead of lists for loops 2021-08-24 15:12:39 +02:00
TheMode
ec66beece4 Initial viewable broadcast attempt 2021-08-24 14:59:17 +02:00
TheMode
5e27399815 Fix event propagation on self 2021-08-24 11:49:57 +02:00
Kiip
b1c1f65064
Fix minestom.com > minestom.net 2021-08-24 11:33:02 +02:00
TheMode
4825f8d4c1 Add EquipmentHandler#hasEquipment 2021-08-24 08:26:04 +02:00
TheMode
2cf4e89694 Implement shift-click equip 2021-08-24 07:23:44 +02:00
TheMode
7740c45982 Fix node child removal 2021-08-23 18:43:20 +02:00
TheMode
dc59f3fd23 Make auth requests async 2021-08-23 08:53:08 +02:00
TheMode
8fa590fdcd Fix drag clicks 2021-08-23 04:02:06 +02:00
TheMode
2450e741e6 Catch Throwable instead of Exception 2021-08-23 03:46:10 +02:00
TheMode
f1c9268897 Catch Throwable instead of Exception 2021-08-22 18:35:19 +02:00
TheMode
1b55bd0137
Merge pull request #428 from RinesThaix/getLineOfSightEntity
Entity#getLineOfSightEntity and BoundingBox#intersect(Point, Point)
2021-08-22 16:52:13 +02:00
Шандуренко Константин Владимирович
66e8ac2dc3 Code review 2021-08-22 17:47:52 +03:00
TheMode
253c059614 Do not run chunk load callback in the instance thread 2021-08-22 16:44:24 +02:00
Шандуренко Константин Владимирович
f2f592209a Entity#getLineOfSightEntity and BoundingBox#intersect(Point, Point) 2021-08-22 16:56:34 +03:00
TheMode
91983e16eb Prevent the server from stopping twice 2021-08-22 14:29:46 +02:00
TheMode
01e39b5d98
Merge pull request #427 from AlexDicy/master
Handle Ctrl+C and SIGINT signal
2021-08-22 14:28:18 +02:00
TheMode
93fc7235e0 Fix context being null in globalListener 2021-08-22 14:22:06 +02:00
Lorenzo Lapucci
74abe0439b
Merge branch 'Minestom:master' into master 2021-08-22 14:13:01 +02:00
Lorenzo Lapucci
c61a3dcd12 Stop the server on Ctrl+C and SIGINT signal 2021-08-22 14:12:38 +02:00
TheMode
129a39fc3d Proper place for global event ListenerHandles 2021-08-22 13:56:12 +02:00
TheMode
a8d90955c7 Fix chunks being registered multiple times (weirdly only happen on Windows?)
Signed-off-by: TheMode <themode@outlook.fr>
2021-08-22 09:57:39 +02:00
TheMode
8fae759a71
Merge pull request #426 from Kebab11noel/fix/number-range
Fix range parsing and reduce boilerplate
2021-08-22 08:47:58 +02:00
Németh Noel
f633cef273 Change argument order, restrict range type 2021-08-22 08:45:39 +02:00
Németh Noel
293786854b Fix range parsing 2021-08-22 08:36:02 +02:00
TheMode
898252dad0 Fast exit if the player didn't move 2021-08-22 08:13:28 +02:00
TheMode
18b0e21f21 Start using ListenerHandle 2021-08-22 07:47:06 +02:00
TheMode
8acb2e292c Move potion effect tick into its own method 2021-08-22 07:34:11 +02:00
TheMode
ef58d770b4 Move block collision code into its own method 2021-08-22 07:31:47 +02:00
TheMode
2dbf795d5c Fix ArgumentBlockState not throwing an exception when properties are incorrect 2021-08-22 07:13:50 +02:00
TheMode
a519360a8d Fix ArgumentNumber range error 2021-08-22 06:05:28 +02:00
TheMode
9ce420838a Make RecursiveEvent experimental 2021-08-22 05:49:42 +02:00
TheMode
7bafdde57f Fix javadoc build 2021-08-22 05:08:46 +02:00
TheMode
3d1509aef0
Merge pull request #417 from Minestom/zero_cost_event
Free event calling
2021-08-22 05:04:21 +02:00
TheMode
234d26dce9 Add some comments 2021-08-22 05:02:44 +02:00
TheMode
ab91c08a66 Typo 2021-08-22 04:39:53 +02:00
TheMode
d4f8aa6fcb Simplify & inline mapped listeners
Signed-off-by: TheMode <themode@outlook.fr>
2021-08-22 04:17:42 +02:00
TheMode
9c7c409fae Reduce listener count 2021-08-22 03:08:37 +02:00
Bloepiloepi
e902591baa
Merge branch 'master' into velocity-changes 2021-08-22 01:56:45 +02:00
TheMode
6f88abf987 Warn about EventNode#map performance 2021-08-22 00:41:30 +02:00
TheMode
23c76bc799 Fix & cleanup OpenToLAN 2021-08-21 10:12:55 +02:00
TheMode
d9c000f80a Cache listener handles for mapped nodes
Signed-off-by: TheMode <themode@outlook.fr>
2021-08-21 10:02:57 +02:00
TheMode
9ec257ed3d
Merge pull request #416 from Bloepiloepi/knockback-fix
Air drag fix
2021-08-21 09:34:32 +02:00
TheMode
f9c67d9b2b Improve mapped node listening 2021-08-21 07:01:48 +02:00
TheMode
56f826a41e Cache block entities even without handler. Fix them from being invisible 2021-08-21 04:53:43 +02:00
TheMode
6541951aaa Add experimental ItemStack#withMeta with direct reference 2021-08-21 04:45:19 +02:00
TheMode
a58e149918 Remove unnecessary generic declaration 2021-08-21 04:21:03 +02:00
TheMode
c6cc96a5f9 Less change propagation/volatile read 2021-08-21 04:15:47 +02:00
TheMode
cfbd655027 Cleanup 2021-08-21 02:08:25 +02:00
TheMode
0ad763a813 Performance improvement 2021-08-21 02:00:30 +02:00
TheMode
429d12c7e3 Add some comments 2021-08-21 01:35:47 +02:00
TheMode
7dfa477500 Initial mapped node support 2021-08-21 01:24:30 +02:00
TheMode
6a2b48aee2 Merge branch 'master' into zero_cost_event 2021-08-20 23:55:30 +02:00
TheMode
fa07d861a6 Merge remote-tracking branch 'origin/master' 2021-08-20 20:51:11 +02:00
TheMode
22b722a530 Add LEATHER_HORSE_ARMOR meta 2021-08-20 20:50:51 +02:00
TheMode
67e12d07eb Add LEATHER_HORSE_ARMOR meta 2021-08-20 20:50:11 +02:00
jglrxavpok
f6c638c1e1 Reduce amount of memory used after saving an Instance with the AnvilLoader 2021-08-20 18:10:51 +02:00
Bloepiloepi
4f4a274259 Calculate player velocity from previous position 2021-08-20 16:18:20 +02:00
Bloepiloepi
66fab0672c Revert "Fix knockback strength"
This reverts commit f955b1f2
2021-08-20 14:56:27 +02:00
TheMode
8297089ca8 Fix recursive class selection 2021-08-20 10:27:22 +02:00
TheMode
9a4ced9a6e Cleanup 2021-08-20 10:13:08 +02:00
TheMode
a365676848 Add RecursiveEvent 2021-08-20 10:05:44 +02:00
TheMode
403e9fc8f1 Slightly optimize RandomStrollGoal
Signed-off-by: TheMode <themode@outlook.fr>
2021-08-20 07:17:53 +02:00
TheMode
8075cab011 Add ItemHideFlag#HIDE_DYE 2021-08-20 06:49:13 +02:00
TheMode
e16a662908 Add EventNode#hasListener 2021-08-20 05:57:29 +02:00
TheMode
88a3a7d37c Update doc 2021-08-20 05:21:53 +02:00
TheMode
04be72c429 Support listener expiration 2021-08-20 03:00:25 +02:00
TheMode
2ef8e957a0 Fix ThreadMXBean returning null thread info 2021-08-19 23:28:27 +02:00
TheMode
8762e54451 Clamp Pos#yaw 2021-08-19 23:22:50 +02:00
TheMode
874c60fb6a Remove player on server shutdown 2021-08-19 23:17:25 +02:00
TheMode
46d2542d59 Rename EventListener#eventType 2021-08-19 22:53:20 +02:00
TheMode
044849b5ac Add support for node predicate, fast exit when the node type is incompatible 2021-08-19 22:21:51 +02:00
TheMode
72bda2c4ec Fast exit when trying to write an empty array 2021-08-19 11:54:26 +02:00
TheMode
62916239b5 Increase the default socket buffer size 2021-08-19 10:42:50 +02:00
TheMode
987e355a70 Cleanup basic command parsing 2021-08-19 09:06:24 +02:00
TheMode
43fc7ad624 Add support for EventBinding 2021-08-19 07:12:53 +02:00
TheMode
b4fbfe572d Initial ListenerHandle implementation 2021-08-19 06:45:23 +02:00
emortal
2e548e6582 Remove unrelated changes, make PickupExperienceEvent implement PlayerEvent 2021-08-19 05:22:57 +01:00
emortal
a0696bc20b Add getPlayer() to PickupExperienceEvent 2021-08-19 05:05:00 +01:00
TheMode
9750e1fe8b Synchronize child access 2021-08-19 02:53:13 +02:00
TheMode
1c59186b61 Improve chunk packet reading 2021-08-19 00:11:24 +02:00
TheMode
8c6778983b Make FollowTargetGoal query for targets when necessary 2021-08-18 22:11:15 +02:00
TheMode
5cf358ac3c Fix inventory events not giving the proper inventory/slot 2021-08-18 21:08:04 +02:00
Bloepiloepi
1b8cc19a54 Fix air drag when not onground 2021-08-18 20:44:45 +02:00
Bloepiloepi
f955b1f2ae Fix knockback strength 2021-08-18 20:37:16 +02:00
TheMode
f26e6ef91f Annotation style 2021-08-18 00:43:09 +02:00
TheMode
dbf5ff6cd4 Add PlayerConnection#flush without guarantee 2021-08-17 23:23:41 +02:00
TheMode
a43f6f6b62 Potentially fix ghost chunks when switching instance 2021-08-17 23:01:28 +02:00
TheMode
69e8792ce0 Special case when an entity is teleported in the same chunk 2021-08-17 21:58:15 +02:00
TheMode
460585ae9b Prevent the client from breaking due to weird command syntaxes 2021-08-17 21:39:26 +02:00
TheMode
9afb86a511 Use fastutil #fastIterable when possible 2021-08-17 20:37:15 +02:00
TheMode
c58eaa51d3 Fix test 2021-08-17 18:44:53 +02:00
TheMode
adf9a91d7a Double-checked locking is unnecessary 2021-08-17 06:40:07 +02:00
TheMode
6c8cc9f669
Merge pull request #412 from Minestom/event-node-map
Mapped Event nodes
2021-08-17 06:31:18 +02:00
TheMode
42afae9b68 Add warning for string reading + incorrectly configured ip forwarding 2021-08-17 06:10:36 +02:00
TheMode
d0a5c781ca Propagate binding listeners 2021-08-17 03:10:16 +02:00
TheMode
488fe06f01 Make new methods experimental 2021-08-17 02:58:12 +02:00
TheMode
c5cf7e4ab2 Fix GlobalEventHandler 2021-08-17 02:35:43 +02:00
TheMode
523c9b512a More cleanup 2021-08-17 02:33:48 +02:00
TheMode
390c383e82 Rename EventInterface, add unregister 2021-08-17 02:24:21 +02:00
TheMode
a5a3b4f31e Remove unnecessary map lookup for event interfaces 2021-08-17 01:55:22 +02:00
TheMode
d5cdb36e47 Remove unnecessary list check 2021-08-17 01:35:16 +02:00
TheMode
e1c1f1d545 Make EventNode an interface 2021-08-16 23:42:02 +02:00
TheMode
42a6654993 Improve tickable block loop 2021-08-16 20:08:48 +02:00
TheMode
2339fe1c07 Cache BlockImpl hashcode 2021-08-16 20:07:57 +02:00
TheMode
bfdc5a53ca Style cleanup 2021-08-16 19:04:42 +02:00
TheMode
8617d98c95 Rework EventInterface 2021-08-16 07:58:58 +02:00
TheMode
02e8d53079 Use weak references to store mapped nodes 2021-08-16 05:53:11 +02:00
TheMode
e72c87f670 Reduce allocation in Navigator movement 2021-08-16 02:53:07 +02:00
TheMode
f3524d4a4f Use var to replace verbose map entrySet loop 2021-08-16 01:29:46 +02:00
TheMode
ef5c15fb6a Run ThreadMXBean method in the enable method 2021-08-15 23:16:50 +02:00
TheMode
6f2cf8e6a5 PlayerDiggingListener refactoring 2021-08-15 20:25:23 +02:00
TheMode
8410ac51c3 Fix enchantment nbt writing 2021-08-15 20:12:10 +02:00
TheMode
b6ab689b10 Style cleanup 2021-08-15 17:50:38 +02:00
TheMode
d53d2ecea5 Remove future allocation 2021-08-15 06:00:17 +02:00
TheMode
6c242cbc7f Simplify InstanceContainer 2021-08-15 05:58:53 +02:00
TheMode
af50bbb440 Player#UNSAFE_init now set the instance 2021-08-15 00:52:07 +02:00
TheMode
93405cd180 Style 2021-08-14 21:28:51 +02:00