Commit Graph

809 Commits

Author SHA1 Message Date
themode
b6d8dd9f73 Style cleanup + increase food saturation limit to 20 2021-03-21 19:47:22 +01:00
themode
9893bb72c8 don't send a close inventory packet when opening a new one 2021-03-21 13:38:25 +01:00
Eoghanmc22
8975161edb use a ConcurrentHashMap key set instead of a CopyOnWriteArraySet for viewers so .contains() is O(1) 2021-03-19 22:50:28 -04:00
themode
c960bb297b Remove unnecessary condition, prevent double chunk refresh 2021-03-16 05:16:11 +01:00
themode
8b0ab3d8c3 Fix lag spikes when loading the same chunks multiple times 2021-03-16 00:52:35 +01:00
themode
ae922529ea Increase default chunk range to 3 2021-03-15 20:33:08 +01:00
themode
509f8f7851 Fix player not being directly disconnected after a kick 2021-03-14 21:34:38 +01:00
themode
4f2ec0a65f Fix chunk coordinates not being properly calculated 2021-03-13 23:04:15 +01:00
themode
42318478a2 Changed metadata related classes access to public 2021-03-12 21:35:00 +01:00
themode
d6683932c8 Added PickupItemEvent#getItemEntity 2021-03-12 20:59:47 +01:00
themode
d91fcde798 Fix properties & equipments changes not being properly sent to viewers & self 2021-03-12 01:38:52 +01:00
themode
3ecace5bd6 Introduce the Tickable interface 2021-03-11 20:54:30 +01:00
themode
b155f3bca3 Deprecate Attributes, constants in Attribute should be used instead 2021-03-09 20:51:11 +01:00
themode
51facb9f14 Prevent modified clients from messing with the chunk range 2021-03-09 17:21:43 +01:00
themode
6a0582a950 Do not send all chunks on logging, wait for the settings packet instead 2021-03-09 07:08:35 +01:00
themode
a25e414754 Fix players being stuck on first connection when no respawn point is defined 2021-03-08 17:12:21 +01:00
themode
8ab29368a6 Fixed players being able to move during teleport 2021-03-08 16:49:16 +01:00
themode
2e17c8a8e1 Fix inventory not appearing after changing dimension 2021-03-07 23:18:32 +01:00
themode
b8e987f556 Fix player getting stuck after changing dimension 2021-03-07 22:22:04 +01:00
TheMode
9ea34fb668
Merge pull request #162 from RinesThaix/projectilesGravity
Fixing projectiles gravity
2021-03-07 15:09:47 +01:00
Konstantin Shandurenko
b9ec78b313 Removed explicit bounding box setup in EntityProjectile 2021-03-07 13:35:21 +03:00
themode
74d902b2a2 Remove player synchronization group, a better alternative will come up 2021-03-06 14:31:44 +01:00
Konstantin Shandurenko
51c627491a Fixing projectiles gravity 2021-03-06 11:24:31 +03:00
Articdive
dbfb3f7ff4
Remove commons-codec dependency 2021-03-05 21:03:23 +01:00
themode
c253a27260 Added copy to clipboard message click event 2021-03-05 14:30:50 +01:00
themode
55179082e9 Remove final methods 2021-03-04 23:06:29 +01:00
themode
7c505ecc17 Do not deprecate Entity#setInstance 2021-03-04 16:43:10 +01:00
themode
25c2dc661f Fix position yaw/pitch not being copied 2021-03-02 19:36:11 +01:00
TheMode
29a8542d3e
Merge pull request #129 from Minestom/improve-extension-system
Improve extension system
2021-03-02 18:22:21 +01:00
TheMode
3971777e56
Merge pull request #155 from RinesThaix/entities
Projectile improvements, custom entity position synchronization cooldown support
2021-03-02 13:38:50 +01:00
Konstantin Shandurenko
4be54651c6 Added javadoc for GoalSelectorsArrayList 2021-03-02 15:15:39 +03:00
Konstantin Shandurenko
0e027bc62f Comments for CombinedAttackGoal 2021-03-02 14:58:32 +03:00
Konstantin Shandurenko
818299db74 CombinedAttackGoal 2021-03-01 19:47:29 +03:00
Konstantin Shandurenko
e1e546d9fa EntityAIGroup typo fix 2021-03-01 16:52:19 +03:00
Konstantin Shandurenko
1ae2cf78af Added support of custom entity position synchronization cooldown 2021-03-01 13:09:08 +03:00
Konstantin Shandurenko
de15c4b6c5 Rewriting projectiles 2021-03-01 12:59:16 +03:00
Konstantin Shandurenko
2b6a081c0d Now devs have to explicitly instantiate EntityAIGroupBuilder 2021-02-28 20:07:34 +03:00
Konstantin Shandurenko
57e2bdb5d6 Slightly rewritten EntityAIGroupBuilder 2021-02-27 17:57:30 +03:00
Konstantin Shandurenko
20f581cc11 Merged with master 2021-02-26 06:58:12 +03:00
themode
e8e8022ec6 Fix pathfinding + cleanup 2021-02-25 15:48:48 +01:00
themode
7da3a16978 Fix connection loop 2021-02-25 15:35:31 +01:00
TheMode
77ed13abd9
Merge pull request #152 from RinesThaix/entities
EntityMeta
2021-02-25 15:30:35 +01:00
Konstantin Shandurenko
6192d1fead removed duplicating code piece 2021-02-25 14:40:14 +03:00
Konstantin Shandurenko
23ee4c7fdf Deprecated Entity constructors accepting spawnPosition and introduces Entity#setInstance(Instance, Position) 2021-02-25 13:56:10 +03:00
Konstantin Shandurenko
3c5b76c0a8 Tiny improvement for Entity#switchEntityType 2021-02-25 13:39:22 +03:00
Konstantin Shandurenko
e13bca1fdd default scope to EAST case in EntitySpawnType.PAINTING 2021-02-25 13:37:40 +03:00
Konstantin Shandurenko
046ebc03f6 AbstractProjectile now extends Entity and not ObjectEntity 2021-02-25 13:07:55 +03:00
Konstantin Shandurenko
8ca43c4caa Entity is not abstract anymore 2021-02-25 13:00:02 +03:00
Konstantin Shandurenko
8a57918fe9 LivingEntity is not abstract anymore 2021-02-25 11:39:37 +03:00
Konstantin Shandurenko
83c5d3c95f Marked Entity#getEntityType as NotNull 2021-02-25 10:38:53 +03:00
Konstantin Shandurenko
18da3e0168 Moved switchEntityType from EntityCreature to Entity 2021-02-25 10:37:02 +03:00
Konstantin Shandurenko
ca6546eb7d Removed obsolete metadata type values inside Entity 2021-02-25 10:00:29 +03:00
Konstantin Shandurenko
1308f81678 Switched all direct spawn packets interactions to EntityType#getSpawnType#getSpawnPacket 2021-02-25 09:15:51 +03:00
Konstantin Shandurenko
7db7dab4b9 EntitySpawnType initial commit 2021-02-25 08:59:55 +03:00
Konstantin Shandurenko
1115b829a1 EntityAIGroupBuilder 2021-02-24 13:38:42 +03:00
Konstantin Shandurenko
f8634171f7 Metadata#setNotifyAboutChanges 2021-02-24 13:28:23 +03:00
Konstantin Shandurenko
3f941d51bb Fixed initial BoundingBox of Pufferfish 2021-02-23 20:04:30 +03:00
Konstantin Shandurenko
405390640b Switched LivingEntity's explicit usage of metadata to LivingEntityMeta 2021-02-23 19:57:45 +03:00
Konstantin Shandurenko
60fcd43f18 Removed ParticleWrapper 2021-02-23 19:30:26 +03:00
Konstantin Shandurenko
c9f7ee5546 Renamed ParticleType back to Particle 2021-02-23 19:29:21 +03:00
Konstantin Shandurenko
6e950ab170 BaseEntityMeta is now an EntityMeta 2021-02-23 19:18:53 +03:00
Konstantin Shandurenko
692dcfed4c Setting default entity BoundingBox from EntityType data 2021-02-23 18:41:24 +03:00
Konstantin Shandurenko
bbe143520e A bit more changes to EntityMeta 2021-02-23 18:37:00 +03:00
Konstantin Shandurenko
eb274ce95e Added default meta constructor to EntityTypes 2021-02-23 18:07:57 +03:00
themode
2843da6b26 Small comment cleanup 2021-02-23 15:11:21 +01:00
TheMode
ebed118ee2
Merge pull request #139 from LeoDog896/sound
Add Position PlaySound methods
2021-02-23 15:08:43 +01:00
Konstantin Shandurenko
237466c90e Removed new entity classes and marked previously existing ones as deprecated 2021-02-23 16:10:14 +03:00
LeoDog896
f7fc7240f6 Reduce boilerplate in convience methods 2021-02-23 07:53:10 -05:00
Konstantin Shandurenko
0915858df3 Meta wrappers for all the entities 2021-02-23 15:11:10 +03:00
Konstantin Shandurenko
6eda8f97db Removed @author javadocs 2021-02-23 09:14:38 +03:00
Konstantin Shandurenko
cfc5f860e9 Fishes 2021-02-23 08:47:09 +03:00
Konstantin Shandurenko
07be9d449b Much more entities 2021-02-23 08:25:35 +03:00
Konstantin Shandurenko
ca3d36ac0c Villagers and Ageable 2021-02-23 07:11:54 +03:00
Konstantin Shandurenko
2a55ed654d Zombies 2021-02-23 06:45:04 +03:00
Konstantin Shandurenko
7a7c63afc2 Horses 2021-02-23 06:38:54 +03:00
Konstantin Shandurenko
3bba4ea704 New Entity AI 2021-02-23 02:28:24 +03:00
TheMode
7bd9283e17
Merge pull request #148 from RinesThaix/goals
Switched TargetSelectors result caching from EntityCreature field to local one in GoalSelectors
2021-02-22 15:15:18 +01:00
Konstantin Shandurenko
fbddffec32 Switched TargetSelectors result caching from EntityCreature field to local one in GoalSelectors 2021-02-22 17:08:15 +03:00
TheMode
20a23a4ebc
Merge pull request #147 from RinesThaix/goals
AbstractProjectile and arrows now call EntityAttackEvent, without damaging entities
2021-02-22 14:46:20 +01:00
Konstantin Shandurenko
1053cb33b1 Tiny comment for Projectile#getShooter 2021-02-22 16:42:52 +03:00
Konstantin Shandurenko
bcdd1bb70a AbstractProjectile and arrows now call EntityAttackEvent, without damaging entities 2021-02-22 16:41:39 +03:00
TheMode
71f1e51df3
Merge pull request #146 from RinesThaix/goals
Arrows and RangedAttackGoal
2021-02-22 13:58:43 +01:00
Konstantin Shandurenko
dbd0e472c2 Added power param for projectiles shooting 2021-02-22 15:54:35 +03:00
Konstantin Shandurenko
504e8cafb4 Codestyle formatting and several comments 2021-02-22 15:33:03 +03:00
Konstantin Shandurenko
6e23552d9a Not calculating entity collisions for arrows in first 3 ticks of its life 2021-02-22 14:58:26 +03:00
Konstantin Shandurenko
714e107eb3 Removed @author javadocs 2021-02-22 14:53:04 +03:00
Konstantin Shandurenko
b475a4cd78 Entity collisions for arrows 2021-02-22 14:51:17 +03:00
Konstantin Shandurenko
dbfebc50ec Block collisions for arrows 2021-02-22 14:42:46 +03:00
Konstantin Shandurenko
3a251934ec Projectiles shooting 2021-02-22 09:45:19 +03:00
Konstantin Shandurenko
3d14b614ce EntityArrow and EntitySpectralArrow 2021-02-22 09:05:54 +03:00
Konstantin Shandurenko
3c8824c7b0 RangedAttackGoal implementation initial commit 2021-02-22 08:46:37 +03:00
themode
77148338b9 Added Entity#clearEffects 2021-02-22 06:00:49 +01:00
Konstantin Shandurenko
54da48fd3e Caching entity target found by goal selectors 2021-02-22 07:33:11 +03:00
themode
200b244224 Fix JSON string not being displayable using ColoredText, remove unnecessary fields in PlayerListHeaderAndFooterPacket 2021-02-21 16:49:25 +01:00
themode
721f9abc08 FakePlayer now implements NavigableEntity 2021-02-20 09:15:08 +01:00
LeoDog896
4daa55d27e Add Position playsound methods 2021-02-19 18:43:35 -05:00
themode
06abbcb7fb Fix chunks being sent 2 times on first spawn 2021-02-19 13:52:27 +01:00
themode
1af8ea5303 Added comment about broken bedrock client skin using Geyser 2021-02-06 03:51:17 +01:00
jglrxavpok
8a992b3e45 New constructor to give UUID as argument in LivingEntity, now used to specify player UUID 2021-02-05 14:32:28 +01:00
jglrxavpok
eadd4a2b39 Automatically unload GlobalEventHandler callbacks 2021-02-03 17:11:06 +01:00
themode
1146d50f24 Cleanup 2021-02-02 21:14:01 +01:00
themode
c6cafb19a4 Added all missing metadata (except Particle) 2021-02-02 21:13:31 +01:00
themode
cb41b2e3d7 Added villager data metadata 2021-02-02 21:03:25 +01:00
themode
735dd50f4e Fix optional metadata 2021-01-31 15:26:51 +01:00
themode
3026e46220 Added new metadata API 2021-01-30 04:44:44 +01:00
themode
da2286de74 Make the FakePlayer constructor protected instead of private 2021-01-28 15:42:11 +01:00
themode
c607a7a2cb Small style cleanup 2021-01-28 15:41:11 +01:00
themode
fa0c5050e4 Prevent entities from moving during death animation 2021-01-28 15:37:55 +01:00
themode
522b4edc7a New Navigator class to properly separate pathfinder functionalities 2021-01-28 15:33:52 +01:00
themode
e0c8e94bc1 Limit the number of velocity packet used for entities 2021-01-27 19:35:53 +01:00
themode
9775262c6a Fix velocity for netty clients 2021-01-27 19:20:52 +01:00
themode
0da4f96e7e Allow gravity values to be doubles 2021-01-25 21:30:56 +01:00
themode
5f75ea7d3a Remove unnecessary casts 2021-01-25 19:33:53 +01:00
themode
c01736f863 Use doubles instead of floats to represent Position and Vector 2021-01-25 13:47:13 +01:00
themode
b37670e1c7 Override PlayerSkin#toString 2021-01-24 16:32:42 +01:00
Tyan
7d7c65aa70 Set the last location at the end of refreshPosition 2021-01-23 15:51:07 +01:00
themode
bf692d8043 Clone the teleport position to prevent object sharing 2021-01-23 08:42:49 +01:00
themode
36933fe4b3 Ensure synchronization of the location field 2021-01-23 08:23:24 +01:00
themode
7de0067a13 Small utility methods for EntityRotationPacket 2021-01-22 21:28:33 +01:00
themode
7a4f3672de Send creeper metadata on spawn 2021-01-21 12:33:04 +01:00
LeoDog896
78abfb9657 Make init function UNSAFE 2021-01-18 10:44:12 -05:00
LeoDog896
ac68c094ce Better keepalive and connection handling 2021-01-17 19:26:20 -05:00
LeoDog896
3b3a86a402 Prefer nullable over optional 2021-01-15 13:39:12 -05:00
LeoDog896
3514547610 Fix isEmpty check in ColoredText 2021-01-15 13:26:12 -05:00
LeoDog896
3536bdc856 Microoptimization cleanup
Just some small microoptimizations including preferring fastutils, Removing unnecessary checks already dealt with using @NotNull, all since I had extra unplanned free time.
2021-01-15 11:08:11 -05:00
TheMode
e6706ec327
Merge pull request #102 from LeoDog896/master
Add EatBlockGoal instance check & MeleeAttackGoal range.
2021-01-13 20:01:02 +01:00
LeoDog896
97b7e122e9 Add instance check to NavigableEntity 2021-01-13 07:54:06 -05:00
LeoDog896
96d581a49f Optimize EatBlockGoal with fastutil 2021-01-13 07:50:41 -05:00
LeoDog896
2cd5a362a4 Add eating check for instances. 2021-01-13 07:37:20 -05:00
LeoDog896
85a84dbea6 Add range to MeleeAttackGoal 2021-01-13 07:33:51 -05:00
KrystilizeNevaDies
7bc1f37e80 Add a direct way to set the bounding box in Entity 2021-01-13 21:57:55 +10:00
themode
098ba1a6a4 Fix client crash when receiving packets before playing state 2021-01-13 09:16:22 +01:00
LeoDog896
37d528c5a2 Check for removed entity before targeting 2021-01-12 15:16:24 -05:00
themode
29c8f924fa Added missing metadata types 2021-01-11 21:21:19 +01:00
themode
c5d56ae820 Small velocity code cleanup 2021-01-11 08:44:38 +01:00
R0bbyYT
71ca9414e4 Makes the HologramEntity accessible and adds documentation. 2021-01-09 22:20:08 +01:00
Matt Worzala
ef35a39388
Add Player#openBook (#99) 2021-01-09 12:40:22 +10:00
themode
8871cf16c0 Don't default the permission level 2021-01-09 02:38:26 +01:00
themode
a6e5dbc60e Fix permission level to use the target selector 2021-01-09 02:20:55 +01:00
themode
8fef648221 Fix chunk packets from being wrongly sent when switching instance 2021-01-08 17:17:36 +01:00
themode
066b3dc417 Cleanup 2021-01-08 08:32:33 +01:00
themode
349364e15d Provide the proper dimensiontype in the JoinGamePacket 2021-01-07 04:21:34 +01:00
themode
0fa82aff1f Fix default dimension 2021-01-07 03:49:55 +01:00
themode
706a36b30a Fix dimension not being sent for the first instance & force dimensions to be registered in the manager 2021-01-07 03:46:58 +01:00
themode
596b9eedb9 Don't ignore entity yaw in EntityCreature#addViewer 2021-01-07 02:30:46 +01:00
themode
4107c768a3 Fix test 2021-01-06 21:19:09 +01:00
themode
84fd568c0c Fix attributes not being fully sent for the first player login 2021-01-06 21:09:27 +01:00
themode
f5d550cda9 Fix attributes not being refreshed client side 2021-01-06 20:45:40 +01:00
themode
97a29c6ccf Player#setInstance cleanup 2021-01-06 19:06:37 +01:00
themode
6b39cb1e32 Execute the async login event before sending the login success packet 2021-01-06 19:02:35 +01:00
themode
47447706b0 Fix Player#kick ignoring the kicking text 2021-01-04 23:15:41 +01:00
themode
5c2b7f38f6 Update Hydrazine library 2021-01-04 21:37:34 +01:00
themode
7019b7da85 Fix onGround field and gravityTickCount 2021-01-04 03:04:45 +01:00
themode
f13646fd0d Allow null target in EntityCreature#setTarget 2021-01-03 22:42:15 +01:00
themode
edab21baa6 Allow null target in EntityCreature#setTarget 2021-01-03 22:41:50 +01:00
themode
317432460e Entity cleanup 2021-01-03 00:23:41 +01:00
ThatCreeper
993b936e4e reorder imports 2021-01-02 17:12:38 -06:00
ThatCreeper
30868df243 Remove unused imports 2021-01-02 17:08:59 -06:00
ThatCreeper
30be7b5b81 Add Potion Add and Remove events 2021-01-02 16:59:17 -06:00
Matt Worzala
46ac38d5b3
Change ColoredText usages to JsonMessage 2020-12-31 13:53:21 -05:00
themode
2141792fcf Fixed math 2020-12-31 12:07:16 +01:00
themode
fd920ffdfe Potion cleanup 2020-12-31 12:05:36 +01:00
ThatCreeper
0ce094567b Fix most checkstyle warnings 2020-12-30 19:27:29 -06:00
ThatCreeper
c3d6af3afe make removeEffect send a packet
Make Potion immutable, and use long instead of Long
2020-12-30 19:07:07 -06:00
ThatCreeper
c01b57ed9b removed scheduledPotions 2020-12-30 18:55:20 -06:00
ThatCreeper
fa41aabaed Make Potions use time instead of nanoTime 2020-12-30 18:47:43 -06:00
ThatCreeper
d7883d29ff Rewrite Potions 2020-12-30 18:29:07 -06:00
themode
d4110632a4 Increase readability when using static fields instead of local ones 2020-12-30 20:30:48 +01:00
themode
23fc19430a Fix entity uuid map memory leak 2020-12-30 20:29:46 +01:00
themode
835a769080 Implement entity eye height based on boundingbox 2020-12-29 20:42:41 +01:00
themode
78ed12887d Implement client spectate packet 2020-12-29 19:58:40 +01:00
themode
8b9836d82a Set Player eye height to 1.62 2020-12-29 18:12:25 +01:00
TheMode
feab43a5f1
Merge pull request #89 from Nesaak/master
Add BlockIterator and LivingEntity#getTargetBlockPosition
2020-12-29 18:09:30 +01:00
themode
8da6148152 PlayerInventory field in player is now protected, to allow unsafe modifications when extending the class 2020-12-29 16:42:07 +01:00
Nesaak
fd73cc1d23 Add BlockIterator and LivingEntity#getTargetBlockPosition 2020-12-28 20:24:03 -05:00
themode
718d787192 Makes the Pose enum public 2020-12-29 00:43:04 +01:00
themode
cecf6310ca Added Entity#setPose 2020-12-29 00:04:15 +01:00
Matt Worzala
460b177866
Set player bounding box size to 0.6. 2020-12-28 14:16:43 -05:00
themode
87e8e550f1 Don't add players to the waiting list in the constructor, but in the registration method 2020-12-28 12:41:15 +01:00
themode
924fac562b Print exceptions properly during server tick 2020-12-28 12:27:25 +01:00
themode
22aa9d01ed Do not size the string in sendPluginMessage 2020-12-28 10:40:50 +01:00
themode
28c5e39f8b Pre login event is now async 2020-12-27 22:16:19 +01:00
themode
feb4783988 Small optimization for entity velocity 2020-12-26 18:52:44 +01:00
R0bbyYT
4818e29d81 Merge remote-tracking branch 'origin/master' into feature/item-meta 2020-12-24 15:29:59 +01:00
themode
557ec7ca83 Fix auto viewable during viewers refresh 2020-12-23 10:51:59 +01:00
themode
18eab183a0 Auto entity viewing cleanup 2020-12-23 10:40:50 +01:00
R0bbyYT
58c7ad9e02 Implements PlayerHeadMeta, FireworkMeta and FireworkEffectMeta 2020-12-23 02:24:41 +01:00
themode
6e0ad54d5e Added EntityEndCrystal 2020-12-22 05:36:15 +01:00
themode
b5feb35619 Added PlayerDeathEvent to change the death message/text 2020-12-22 05:26:37 +01:00
R0bbyYT
81592d8b56 More documentation for the FakePlayer, Small improvement for the FakePlayerController 2020-12-19 16:32:42 +01:00
themode
943aae7397 Do not send gamemode related packets before the player spawn 2020-12-18 00:57:23 +01:00
themode
5224eecdd1 Event unification (type-specific event, CancellableEvent is now an interface) 2020-12-16 03:21:59 +01:00
themode
7750934a3f Small cleanup 2020-12-16 00:13:40 +01:00
themode
7bcca8ff9f Rename the walkingSpeed ability to fieldViewModifier, the movement speed attribute should be used instead for speed 2020-12-15 13:41:42 +01:00
themode
69adb67394 Compute the tags packet only once to improve performance on high connection traffic 2020-12-15 06:21:59 +01:00
themode
f2c586177f Cache the unmodifiable viewers set to mitigate object allocation 2020-12-14 06:27:39 +01:00
R0bbyYT
a51e1a8484 See commit 4ae623cd, but without the Google code formatting 2020-12-13 23:31:37 +01:00
themode
2fa0f5a417 Revert "Fixes an issue when a player is in another team that this player is not showed in his team for other players"
This reverts commit 4ae623cd
2020-12-13 23:01:01 +01:00
R0bbyYT
4ae623cdab Fixes an issue when a player is in another team that this player is not showed in his team for other players 2020-12-13 15:00:48 +01:00
Felix Cravic
5e85c0117a Cleanup 2020-12-12 06:13:50 +01:00