Commit Graph

393 Commits

Author SHA1 Message Date
TheMode
1e90d67511 Formatting 2021-06-08 14:20:48 +02:00
TheMode
5469190e64 Add annotations 2021-06-08 14:15:30 +02:00
TheMode
9705915e21 Add support for predicate expiration 2021-06-08 14:07:27 +02:00
TheMode
f47159d131 Add EventNode#setPriority 2021-06-08 13:47:10 +02:00
TheMode
c930eed412 propagate listener changes to parents 2021-06-06 07:55:30 +02:00
TheMode
9594d848bc Use for-each loops during event calling 2021-06-06 07:34:33 +02:00
TheMode
180a3fa898 Improve event calling performance, reduce memory footprint 2021-06-06 07:28:07 +02:00
TheMode
3dfd4678d5 Add PlayerPacketEvent 2021-06-05 01:04:51 +02:00
TheMode
25f1183a1b Remove EventNode#map 2021-06-04 21:12:27 +02:00
TheMode
2872a25325 Improve redirection performance 2021-06-04 10:07:46 +02:00
TheMode
b979c9b624 Temporary fix for mapped object 2021-06-04 09:50:26 +02:00
TheMode
030e5b6857 Create #addListener0 to ensure proper stacktrace when adding a listener 2021-06-04 07:45:15 +02:00
TheMode
d9b26f84d3 Keep using GlobalEventHandler 2021-06-04 04:54:07 +02:00
TheMode
a585e4e45b Improve event calling performance 2021-06-04 04:39:45 +02:00
TheMode
80c6bb3fa5 Deprecate GlobalEventHandler 2021-06-04 04:24:25 +02:00
TheMode
f39fc8c81e Fast exit when a node as no child 2021-06-04 04:14:41 +02:00
TheMode
c4d521cde5 All node should have a name 2021-06-04 04:10:13 +02:00
TheMode
d81df24132 Support old EventHandler API 2021-06-04 04:05:57 +02:00
TheMode
8b255651ab Call events using EventDispatcher 2021-06-04 03:48:51 +02:00
TheMode
5d3bae3d7f Make some events implement ItemEvent 2021-06-04 00:54:36 +02:00
TheMode
f1ddedfb44 Add EventNode#getParent 2021-06-04 00:30:48 +02:00
TheMode
94e315e3b2 Rename predicate to type 2021-06-03 21:59:27 +02:00
TheMode
5aa8d95ed9 Remove debug print 2021-06-03 21:54:42 +02:00
TheMode
734e6f5bcb Remove predicate from the EventNode factory methods 2021-06-03 21:54:07 +02:00
TheMode
a15717ae49 Remove unnecessary generic 2021-06-03 21:41:28 +02:00
TheMode
9177e94d1b Allow node predicate based on tag 2021-06-03 21:39:38 +02:00
TheMode
27bdbe7275 Rename removeMap to unmap 2021-06-03 20:59:05 +02:00
TheMode
81e2072bc5 Add shortcut to add listener 2021-06-03 20:46:11 +02:00
TheMode
e5031ff37e Prevent a node from having its parent as child 2021-06-03 09:47:48 +02:00
TheMode
e300d3ec57 Simplify EventNode#map 2021-06-03 05:59:13 +02:00
TheMode
8ec33bb6c8 EventNode methods return self 2021-06-03 04:41:08 +02:00
TheMode
d5cce11562 Remove second generic from EventNode 2021-06-03 04:26:47 +02:00
TheMode
5fa750fde3 Remove EventNodeConditional.java 2021-06-03 03:56:05 +02:00
TheMode
493c397efe Remove EventNodeList.java 2021-06-03 03:39:37 +02:00
TheMode
3727f3f954 Use a global lock when modifying tree data 2021-06-03 03:37:41 +02:00
TheMode
65c303766f Make EventNode a class, fast exist when no children can listen to an event 2021-06-03 03:27:30 +02:00
TheMode
f8eb211d0d Add node mapping support, for per-object listeners 2021-06-03 00:48:37 +02:00
TheMode
8f3b52a8b9 Inline method 2021-06-02 23:04:35 +02:00
TheMode
1a9bdd93d7 Remove unused parameter 2021-06-02 22:58:43 +02:00
TheMode
5b42ce4a52 Reuse EventFilter code 2021-06-02 22:55:24 +02:00
TheMode
b1714641e8 Use Object for EventFilter#ALL 2021-06-02 22:51:11 +02:00
TheMode
d58cd3b578 Add remaining filters 2021-06-02 22:47:45 +02:00
TheMode
6cbc31b114 Allow filtering on more than just EventHandler 2021-06-02 21:18:18 +02:00
TheMode
2977bb7b66 Make EventListener an interface 2021-06-02 21:14:48 +02:00
TheMode
4f127b2e0e Separate conditional event from conditional handler 2021-06-02 21:08:10 +02:00
TheMode
c95c8430b6 Force the use of EventListener 2021-06-02 20:56:47 +02:00
TheMode
ee99c94509 Remove unnecessary generic 2021-06-02 20:53:02 +02:00
TheMode
15ae5fd3c1 Force the use of EventFilter 2021-06-02 20:33:35 +02:00
TheMode
e670a0a40d Remove unnecessary method 2021-06-02 20:25:37 +02:00
TheMode
7aee717196 Add EventFilter 2021-06-02 20:23:50 +02:00
TheMode
aa5a182788 Add EventNode#removeChild 2021-06-02 19:52:05 +02:00
TheMode
11bdcdf92a Add EventNode#removeListener 2021-06-02 19:50:23 +02:00
TheMode
8fa4c22d1f Rename EventNode#create methods 2021-06-02 19:44:44 +02:00
TheMode
f6fe41cfe9 Return proper type 2021-06-02 19:28:02 +02:00
TheMode
0d6dde3ff5 Make EventNode an interface 2021-06-02 19:17:08 +02:00
TheMode
a835a479ae Added EventNode#map 2021-06-02 18:13:17 +02:00
TheMode
cd30a97cbb Make PlayerEvent extends EntityEvent 2021-06-02 18:04:08 +02:00
TheMode
305aa3e8d9 Add support for listener expiration count 2021-06-02 12:12:14 +02:00
TheMode
bdfa164695 Do not reuse node objects 2021-06-02 11:29:16 +02:00
TheMode
12c620df7a Fix conditional factory not actually having a condition 2021-06-02 11:26:36 +02:00
TheMode
5d1b742934 Move type check inside EventNode 2021-06-02 11:18:26 +02:00
TheMode
bc2a075b60 Fix event calling 2021-06-02 11:08:48 +02:00
TheMode
c3f52031e6 Added EventNodeConditional 2021-06-02 10:52:20 +02:00
TheMode
4f7192b6c7 Can now call an event from anywhere in the tree 2021-06-02 10:34:01 +02:00
TheMode
f4db18ea6c Start EventNode implementation 2021-06-02 10:19:23 +02:00
TheMode
5474116e7a Add EventNode#addChild 2021-06-02 09:50:18 +02:00
TheMode
80b2dd2747 Make InventoryEvent an interface 2021-06-02 09:25:08 +02:00
TheMode
096e1de9b5 Delete EventGroup.java, make InstanceEvent an interface 2021-06-02 09:21:13 +02:00
TheMode
0b6c7b0b0e Delete EventTrait 2021-06-02 09:06:04 +02:00
TheMode
52547c5bd6 Rename create method 2021-06-02 08:59:46 +02:00
TheMode
f88a2f3883 Dont allow every event 2021-06-02 08:24:02 +02:00
TheMode
77f74bb7dc Introduce EventNode 2021-06-02 08:17:21 +02:00
TheMode
2d8474282b Made Event an interface 2021-06-02 08:17:03 +02:00
TheMode
9c87b4d54f Add EventTrait interface 2021-06-02 07:15:28 +02:00
TheMode
02fe4c65a2 Use traits for events 2021-06-02 07:09:15 +02:00
TheMode
047d4a92ac Merge branch 'master' into event-api 2021-06-02 06:41:42 +02:00
TheMode
36d2834b18 Remove unnecessary block manager reference 2021-05-25 04:44:11 +02:00
TheMode
47c7e36b1d Fix remaining errors 2021-05-24 23:39:22 +02:00
TheMode
b15422f406 More error fix 2021-05-24 22:00:18 +02:00
TheMode
86f7fa7e27 Fix more errors 2021-05-24 21:39:30 +02:00
TheMode
c4b3e40225
Merge pull request #282 from Bloepiloepi/equipment-improvements
Equipment improvements
2021-05-16 11:55:04 +02:00
TheMode
d31fe2d88e
Merge pull request #229 from Project-Cepi/better-catching
Better catching for events/commands
2021-05-15 22:51:20 +02:00
R0bbyYT
cd988f1271 Reset flying with elytra when the player is on the ground 2021-05-14 19:02:22 +02:00
R0bbyYT
34d428be10 Start with the elytra implementation 2021-05-14 18:35:09 +02:00
TheMode
36942708bb Introduce EventGroup 2021-05-13 09:11:02 +02:00
Arne Dalhuisen
00278881ee Revert "Made EntityEquipEvent cancellable"
This reverts commit d72fb72e
2021-05-11 20:11:56 +02:00
Arne Dalhuisen
d72fb72e74 Made EntityEquipEvent cancellable 2021-05-11 17:05:16 +02:00
Arne Dalhuisen
ed010ff110 Renamed armorItem to equippedItem in EntityEquipEvent 2021-05-11 14:48:52 +02:00
Arne Dalhuisen
77ef5f7d42 Made EntityEquipEvent, replacing ArmorEquipEvent 2021-05-11 14:45:14 +02:00
TheMode
920a36399f Merge branch 'master' into event-api 2021-05-11 04:53:03 +02:00
TheMode
3cb7cdaea8 Create EventListener class 2021-05-11 04:52:57 +02:00
Kieran Wallbanks
42933e58b0 Minor formatting and javadoc changes 2021-05-05 16:18:11 +01:00
Kieran Wallbanks
ec5ecb49bf Update javadoc 2021-05-05 16:18:11 +01:00
Kieran Wallbanks
01fe452783 Implement OpenToLAN system 2021-05-05 16:18:11 +01:00
Kieran Wallbanks
a15e3aef44 Make legacy server pings use the ServerListPingEvent 2021-05-05 16:18:11 +01:00
TheMode
4012b6d0bd Use a predicate instead of boolean function 2021-05-04 23:26:51 +02:00
TheMode
e45c60c225 Initial revamped event listening API 2021-05-04 00:46:18 +02:00
TheMode
b066b6029a
Merge pull request #223 from thiccaxe/master
Add events for STATUS packets.
2021-04-15 07:10:32 +02:00
TheMode
6ba336ee73 Added hand inside eat events 2021-04-13 22:59:40 +02:00
TheMode
8e9d7098e5 Allow custom transaction type, simplify inventory superclasses 2021-04-12 00:33:27 +02:00
thiccaxe
c451d46ce0 document ServerListPingEvent 2021-04-11 10:30:47 -07:00
thiccaxe
8a9abff98b Remove Duplicate Code; unlinking ResponseData & ServerListPingEvent
Removed code that would cause maintaining more difficult after an update in ResponseData, and additionally PlayerConnection

Updated demo to reflect changes.
2021-04-10 21:14:36 -07:00
thiccaxe
b086dc82ca Remove extra code in FakePlayerConnection, add refershServerInformation back 2021-04-08 18:20:23 -07:00
thiccaxe
94c4ec79e1 simplify data storage, fix annotations
Removed HandshakeData  - too excessive

Added abstract methods in PlayerConnection as replacement

in FakePlayerConnection setters do nothing and Getters return MinecraftServer defaults
2021-04-08 16:51:50 -07:00
thiccaxe
cad128a393 update demo to show example
may be cut down later as it is very excessive.
2021-04-08 14:41:22 -07:00
thiccaxe
cd27d1d6c7 ServerListPingEvent
An implementation of what could be done to make this event - not perfect in my opinion.
2021-04-08 14:19:32 -07:00
TheMode
4c495f401d Code cleanup 2021-04-07 18:35:19 +02:00
LeoDog896
5e4af20992 And handle event exceptions 2021-04-06 22:29:24 -04:00
TheMode
2606f2b291 Added PlayerChatEvent#getDefaultChatFormat 2021-04-07 02:47:19 +02:00
thiccaxe
159ff3f646 Remove reprecated code
Removed deprecated code,
Added missing code,
Optimized imports.
2021-04-05 09:57:18 -07:00
thiccaxe
02982c0ee2 Shortcut methods in StatusRequestEvent 2021-04-04 18:52:55 -07:00
thiccaxe
7c0fcadd4f Add HandshakeEvent 2021-04-04 16:26:58 -07:00
thiccaxe
cf4a8756ef StatusRequestEvent
Added basic event

notes:
 - minestom will only accept the 1.16.5 protocol version, as of now there is no way to get the protocol version from the event. Assume 1.16.5

- there is also no way to currently get the address the client used to ping the server, as that is sent in another packet and minestom does not currently pass that data through.

 - favicon appears to not be working
2021-04-04 15:43:19 -07:00
Kieran Wallbanks
522367dd78 Begin removing deprecated usages 2021-03-26 17:34:38 +00:00
themode
d6683932c8 Added PickupItemEvent#getItemEntity 2021-03-12 20:59:47 +01:00
TheMode
29a8542d3e
Merge pull request #129 from Minestom/improve-extension-system
Improve extension system
2021-03-02 18:22:21 +01:00
Konstantin Shandurenko
de15c4b6c5 Rewriting projectiles 2021-03-01 12:59:16 +03:00
Kieran Wallbanks
a3f388a88b Add events for player sneaking and sprinting changes 2021-02-22 16:36:40 +00:00
themode
549eb6b6e1 Fix javadoc 2021-02-22 14:02:33 +01:00
Konstantin Shandurenko
dbd0e472c2 Added power param for projectiles shooting 2021-02-22 15:54:35 +03:00
Konstantin Shandurenko
3a251934ec Projectiles shooting 2021-02-22 09:45:19 +03:00
jglrxavpok
ee158c0dea Use Nullable string instead of Optional in MinestomRootClassLoader#findExtensionObjectOwner 2021-02-04 11:57:43 +01:00
jglrxavpok
a63e9462c2 All EventHandler remove extension callback when the extension unloads 2021-02-03 20:47:01 +01:00
jglrxavpok
c8e311855f Auto-unschedule and cancel tasks from extensions 2021-02-03 17:51:14 +01:00
jglrxavpok
4f39498ef5 Remove debug code no longer relevant 2021-02-03 17:12:20 +01:00
jglrxavpok
eadd4a2b39 Automatically unload GlobalEventHandler callbacks 2021-02-03 17:11:06 +01:00
themode
66817eb9c4 Fixed Team#removeMember 2021-01-29 00:02:43 +01:00
themode
edd880ceb6 Allow to update both the block state and custom ids using PlayerBlockBreakEvent#setResultCustomBlock 2021-01-28 22:53:02 +01: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
KrystilizeNevaDies
23e70208a8
Fix EntityDamageEvent not being cancellable 2021-01-10 14:18:16 +10:00
themode
7c5bb7126a Added PlayerBlockPlaceEvent#setBlockData 2021-01-07 16:12:56 +01:00
themode
deb8cab03a Remove unnecessary checks 2021-01-06 18:01:39 +01:00
themode
317432460e Entity cleanup 2021-01-03 00:23:41 +01: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
28c5e39f8b Pre login event is now async 2020-12-27 22:16:19 +01:00
themode
978a1f5135 PlayerChatEvent function should return a JsonMessage and not necessarily a RichMessage 2020-12-23 08:24:29 +01:00
themode
b5feb35619 Added PlayerDeathEvent to change the death message/text 2020-12-22 05:26:37 +01:00
themode
ffbde089f8 BlockPlacementRule cleanup 2020-12-20 03:24:29 +01:00
themode
5224eecdd1 Event unification (type-specific event, CancellableEvent is now an interface) 2020-12-16 03:21:59 +01:00
KrystilizeNevaDies
8a2e69f709 Change PlayerSpawnEvent too use player instead of entity 2020-12-14 12:52:51 +10:00
Felix Cravic
2f96a47270 Optimise GlobalEventHandler 2020-12-11 19:37:44 +01:00
Felix Cravic
ac8ba3ab10 Fixed ItemDropEvent and PickupItemEvent constructor + changed PlayerInit event registration to use the global event handler 2020-12-11 04:34:08 +01:00
Felix Cravic
54d3a6bace fixed GlobalEventHandler getter name 2020-12-09 22:36:15 +01:00
Felix Cravic
6e3df970fa Added GlobalEventHandler 2020-12-09 22:31:20 +01:00
Felix Cravic
30d257c847 Remove unnecessary #callEvent override in Entity 2020-12-09 22:18:11 +01:00
Felix Cravic
08f7b1c715 Event callback collections now use a set, and #add/removeCallback return a boolean to know if the action was successful 2020-12-09 22:05:11 +01:00
Felix Cravic
eca6a657c3 Execute InstanceTickEvent in Instance instead of InstanceContainer 2020-12-08 00:16:46 +01:00
KrystilizeNevaDies
061c1600e7 Annotation and type fix
Just clean up annotations on primatives and instance v InstanceContainer
2020-12-08 09:12:42 +10:00
KrystilizeNevaDies
e8e30b1328 Fix first tick call 2020-12-08 07:52:46 +10:00
KrystilizeNevaDies
6cc8946963 Add instance tick event 2020-12-08 07:30:14 +10:00
Felix Cravic
181f20289c Cleanup for the sound code, and comment for PlayerLoginEvent about not working player methods 2020-12-02 14:36:54 +01:00
themode
f30330c59b Added PlayerStartDiggingEvent warning 2020-11-18 13:22:23 +01:00
themode
ae8a182eb8 Read player skin from velocity 2020-11-14 22:13:01 +01:00
themode
1d1e82aeb3 Prevent infinite load screen when not teleporting the player on spawning 2020-11-14 21:45:30 +01:00
themode
463e1f047f Cleanup + added PlayerSettingsChangeEvent 2020-11-01 00:07:15 +01:00
themode
f328a9cb2b Added a few constructors to specify the instance directly 2020-10-31 01:38:57 +01:00
themode
872dccd7ce Small cleanup 2020-10-29 22:52:07 +01:00
themode
27e0b86cb5 Added annotations for all events 2020-10-24 16:33:13 +02:00
themode
2f21a7c233 More annotations. 2020-10-24 11:19:54 +02:00
themode
34e7bfe69d Reduces the number of ItemStack#clone calls in inventory clicks 2020-10-22 19:18:08 +02:00
themode
3cb880cf80 General cleanup 2020-10-22 12:55:53 +02:00
themode
47677766ca Improvement for the DamageType code 2020-10-22 12:21:50 +02:00
themode
b2e3d3e78d Use negative entity id for the custom breaking system 2020-10-19 11:56:26 +02:00
themode
660a67e53e English fix 2020-10-15 21:16:31 +02:00
themode
0e5831cdc3 Cleanup + typo fix 2020-10-13 12:49:29 +02:00
themode
cbe2a0b71e Comments 2020-10-12 02:56:30 +02:00
themode
5f7261cd6e Comments 2020-10-11 18:35:32 +02:00
themode
739c3f1d7d Allow non-custom block in PlayerStartDiggingEvent 2020-10-10 13:46:41 +02:00
themode
dd3345ff9a ColoredText comments + cleanup 2020-10-06 07:41:35 +02:00
themode
a757f4b97b Simplify EventHandler implementation 2020-10-06 04:06:59 +02:00
themode
3464d27ab1 Added entity in EntitySpawnEvent 2020-09-26 21:24:10 +02:00
themode
5620e9a8cf Cleanup 2020-09-24 01:50:25 +02:00
themode
403e0c897f Added EventHandler#getEventCallbacks 2020-09-20 20:11:46 +02:00
jglrxavpok
b6fc3ee978 Publish with Javadoc & Sources 2020-09-20 15:04:07 +02:00
themode
e2940c9aee Renamed CustomBlock#getBlockStateId to CustomBlock#getDefaultBlockStateId 2020-09-06 03:15:00 +02:00
themode
8b30caa8c8 Micro optimization + cleanup 2020-08-19 01:24:51 +02:00
Felix Cravic
67db1d6568 Replaced blockId by blockStateId 2020-08-09 09:55:30 +02:00
Felix Cravic
45fd0dc22a Comments 2020-08-07 09:14:50 +02:00
Felix Cravic
2ab7427b94 Added AdvancementTabEvent 2020-08-05 11:34:49 +02:00
Felix Cravic
baccc36ed7 Allow ask_server tab complete for CommandProcessor 2020-08-04 04:21:11 +02:00
razorrider7
a09b217962 Update EntityType To use Namespaced IDs 2020-08-03 18:48:46 -04:00
Felix Cravic
98c3419766 Cleanup 2020-07-27 02:28:03 +02:00
Felix Cravic
71b2988583 Added AnimationEvent comments + cleanup 2020-07-26 20:03:39 +02:00
Felix Cravic
4f788b9b8d Cleanup 2020-07-24 16:11:48 +02:00
Felix Cravic
5c1e6e7572 Cleanup 2020-07-23 07:36:49 +02:00
jglrxavpok
54c4134006 BlockFace added to PlayerBlockInteractEvent 2020-07-18 17:45:56 +02:00
Felix Cravic
d96e06dfe2 Added InstanceChunkLoadEvent and InstanceChunkUnloadEvent 2020-07-01 15:51:00 +02:00
jglrxavpok
2303b98024 Send tags to player on connection 2020-06-30 20:38:42 +02:00
Felix Cravic
19fc90e764 Fixed Held packet + replaced the short by a byte 2020-06-23 18:09:01 +02:00
Felix Cravic
b47efa35ca Added PlayerChangeHeldSlotEvent 2020-06-23 17:50:43 +02:00
Felix Cravic
f892213e8c Added a new Chat API 2020-06-22 23:25:00 +02:00
Felix Cravic
889b1fe095 Renamed PlayerInteractEvent to PlayerEntityInteractEvent 2020-06-21 23:44:20 +02:00
Felix Cravic
72234ac706 Added PlayerPreLoginEvent 2020-06-21 22:11:56 +02:00
Felix Cravic
2ee93bd7cb Fixed EntityItemMergeEvent constructor 2020-06-02 14:55:18 +02:00
Felix Cravic
bd08676525 Added EntityItemMergeEvent#setResult 2020-06-02 14:54:33 +02:00
Felix Cravic
45e8ba2f03 Added EventHandler#removeEventCallback 2020-06-01 17:11:43 +02:00
Felix Cravic
7e20278dd9 Fix deadlock with ItemEntity + added ItemEntity#getMergeUpdateOption to mitigate CPU usage increase 2020-06-01 00:51:31 +02:00
Felix Cravic
ea034701f8 Added PlayerSetItemStackEvent#setSlot + some checks 2020-05-31 21:37:40 +02:00
Felix Cravic
633d02222a Added PlayerAddItemStackEvent and PlayerSetItemStackEvent 2020-05-31 21:30:46 +02:00