✨ feat(events): add new player-related events for gameplay interactions#355
Open
TheBjoRedCraft wants to merge 2 commits into
Open
✨ feat(events): add new player-related events for gameplay interactions#355TheBjoRedCraft wants to merge 2 commits into
TheBjoRedCraft wants to merge 2 commits into
Conversation
Member
TheBjoRedCraft
commented
May 25, 2026
- introduce ArchaeologySpecialDropEvent for archaeology item drops
- add ArmorStandBreakWithAxeEvent for breaking armor stands with axes
- implement CaptchaFailEvent and CaptchaSuccessEvent for captcha interactions
- create ChatAiModerateEvent for AI moderation of chat messages
- add ChatDirectMessageEvent for direct messaging between players
- implement ClanCreatedEvent and ClanDeleteEvent for clan management
- introduce PayCheckPayEvent and PayCheckRefusePaymentEvent for payment handling
- add various other player-related events for enhanced gameplay features
- introduce ArchaeologySpecialDropEvent for archaeology item drops - add ArmorStandBreakWithAxeEvent for breaking armor stands with axes - implement CaptchaFailEvent and CaptchaSuccessEvent for captcha interactions - create ChatAiModerateEvent for AI moderation of chat messages - add ChatDirectMessageEvent for direct messaging between players - implement ClanCreatedEvent and ClanDeleteEvent for clan management - introduce PayCheckPayEvent and PayCheckRefusePaymentEvent for payment handling - add various other player-related events for enhanced gameplay features
Contributor
|
This PR contains changes that modified the public API. To update the reference ABI dumps: ./gradlew updateKotlinAbi
git add **/api/**
git commit -m "Update ABI reference"
git pushAfter updating, the CI will pass. Make sure the changes are backward compatible. |
Contributor
There was a problem hiding this comment.
Pull request overview
Adds a set of new Paper-facing SurfEventBus event payload types (mostly SurfSyncEvent, plus one SurfAsyncEvent) to expose additional player/gameplay interactions as typed, cross-plugin events within the SURF-API ecosystem.
Changes:
- Introduces many new
data class ...Eventtypes underdev.slne.surf.api.paper.event.*for gameplay, chat, clan, shop, captcha, and region interactions. - Adds a playtime-hour event as an async Surf event.
- Bumps project version to
3.13.1.
Reviewed changes
Copilot reviewed 49 out of 49 changed files in this pull request and generated 55 comments.
Show a summary per file
| File | Description |
|---|---|
| surf-api-paper/surf-api-paper/src/main/kotlin/dev/slne/surf/api/paper/event/transaction/PlayerPayEvent.kt | New transaction event for player payments. |
| surf-api-paper/surf-api-paper/src/main/kotlin/dev/slne/surf/api/paper/event/stats/StatsOptoutSettingEvent.kt | New stats opt-out setting event. |
| surf-api-paper/surf-api-paper/src/main/kotlin/dev/slne/surf/api/paper/event/spawntrader/SpawnTraderTradeEvent.kt | New spawn-trader trade event payload. |
| surf-api-paper/surf-api-paper/src/main/kotlin/dev/slne/surf/api/paper/event/spawnsystem/RespawnAtNearestSpawnEvent.kt | New respawn-at-nearest-spawn event payload. |
| surf-api-paper/surf-api-paper/src/main/kotlin/dev/slne/surf/api/paper/event/shop/ShopSellItemEvent.kt | New shop sell event payload. |
| surf-api-paper/surf-api-paper/src/main/kotlin/dev/slne/surf/api/paper/event/shop/ShopChestPlaceEvent.kt | New shop chest placement event payload. |
| surf-api-paper/surf-api-paper/src/main/kotlin/dev/slne/surf/api/paper/event/shop/ShopBuyItemEvent.kt | New shop buy event payload. |
| surf-api-paper/surf-api-paper/src/main/kotlin/dev/slne/surf/api/paper/event/settings/SettingsBatchChangeEvent.kt | New settings batch-change event payload. |
| surf-api-paper/surf-api-paper/src/main/kotlin/dev/slne/surf/api/paper/event/protect/SellRegionEvent.kt | New region sale event payload. |
| surf-api-paper/surf-api-paper/src/main/kotlin/dev/slne/surf/api/paper/event/protect/ProtectRegionEvent.kt | New region protection event payload. |
| surf-api-paper/surf-api-paper/src/main/kotlin/dev/slne/surf/api/paper/event/protect/ExtendRegionEvent.kt | New region extension event payload. |
| surf-api-paper/surf-api-paper/src/main/kotlin/dev/slne/surf/api/paper/event/playtime/PlayerPlayAMinuteEvent.kt | New per-minute playtime event payload. |
| surf-api-paper/surf-api-paper/src/main/kotlin/dev/slne/surf/api/paper/event/playtime/PlayerPlayAHourEvent.kt | New per-hour playtime event payload (async). |
| surf-api-paper/surf-api-paper/src/main/kotlin/dev/slne/surf/api/paper/event/playtime/PayCheckRefusePaymentEvent.kt | New paycheck refusal event payload. |
| surf-api-paper/surf-api-paper/src/main/kotlin/dev/slne/surf/api/paper/event/playtime/PayCheckPayEvent.kt | New paycheck pay event payload. |
| surf-api-paper/surf-api-paper/src/main/kotlin/dev/slne/surf/api/paper/event/freebuild/ZombieVillagerCureFlyEvent.kt | New freebuild zombie-villager cure fly event payload. |
| surf-api-paper/surf-api-paper/src/main/kotlin/dev/slne/surf/api/paper/event/freebuild/specialdrops/FishingSpecialDropEvent.kt | New fishing special drop event payload. |
| surf-api-paper/surf-api-paper/src/main/kotlin/dev/slne/surf/api/paper/event/freebuild/specialdrops/ArchaeologySpecialDropEvent.kt | New archaeology special drop event payload. |
| surf-api-paper/surf-api-paper/src/main/kotlin/dev/slne/surf/api/paper/event/freebuild/ProtectItemEvent.kt | New protected-item event payload. |
| surf-api-paper/surf-api-paper/src/main/kotlin/dev/slne/surf/api/paper/event/freebuild/event/TakePartInMiningEventEvent.kt | New freebuild participation event payload (mining). |
| surf-api-paper/surf-api-paper/src/main/kotlin/dev/slne/surf/api/paper/event/freebuild/event/TakePartInFishingEventEvent.kt | New freebuild participation event payload (fishing). |
| surf-api-paper/surf-api-paper/src/main/kotlin/dev/slne/surf/api/paper/event/freebuild/event/TakePartInBadFishingEventEvent.kt | New freebuild participation event payload (bad fishing). |
| surf-api-paper/surf-api-paper/src/main/kotlin/dev/slne/surf/api/paper/event/freebuild/ArmorStandBreakWithAxeEvent.kt | New armor-stand-break-with-axe event payload. |
| surf-api-paper/surf-api-paper/src/main/kotlin/dev/slne/surf/api/paper/event/essentials/SpecialItemReceiveEvent.kt | New special-item receive event payload. |
| surf-api-paper/surf-api-paper/src/main/kotlin/dev/slne/surf/api/paper/event/essentials/SignItemReceiveEvent.kt | New signed-item receive event payload. |
| surf-api-paper/surf-api-paper/src/main/kotlin/dev/slne/surf/api/paper/event/essentials/SignItemEvent.kt | New sign-item event payload. |
| surf-api-paper/surf-api-paper/src/main/kotlin/dev/slne/surf/api/paper/event/essentials/CommandFailEvent.kt | New command-failure event payload. |
| surf-api-paper/surf-api-paper/src/main/kotlin/dev/slne/surf/api/paper/event/enchantment/TelekinesisPickupEvent.kt | New telekinesis pickup event payload. |
| surf-api-paper/surf-api-paper/src/main/kotlin/dev/slne/surf/api/paper/event/enchantment/ReplenishCropEvent.kt | New replenish crop event payload. |
| surf-api-paper/surf-api-paper/src/main/kotlin/dev/slne/surf/api/paper/event/enchantment/EmptyEnchantedBookCollectEvent.kt | New empty enchanted book collect event payload. |
| surf-api-paper/surf-api-paper/src/main/kotlin/dev/slne/surf/api/paper/event/enchantment/CombineSoulboundEvent.kt | New soulbound combine event payload. |
| surf-api-paper/surf-api-paper/src/main/kotlin/dev/slne/surf/api/paper/event/enchantment/CombineRocketSaverEvent.kt | New rocket-saver combine event payload. |
| surf-api-paper/surf-api-paper/src/main/kotlin/dev/slne/surf/api/paper/event/enchantment/CombineNemoEvent.kt | New nemo combine event payload. |
| surf-api-paper/surf-api-paper/src/main/kotlin/dev/slne/surf/api/paper/event/enchantment/CombineMendingEvent.kt | New mending combine event payload. |
| surf-api-paper/surf-api-paper/src/main/kotlin/dev/slne/surf/api/paper/event/clan/ClanPromotedEvent.kt | New clan promotion event payload. |
| surf-api-paper/surf-api-paper/src/main/kotlin/dev/slne/surf/api/paper/event/clan/ClanMemberCountChangeEvent.kt | New clan member-count change event payload. |
| surf-api-paper/surf-api-paper/src/main/kotlin/dev/slne/surf/api/paper/event/clan/ClanInviteCountChangeEvent.kt | New clan invite-count change event payload. |
| surf-api-paper/surf-api-paper/src/main/kotlin/dev/slne/surf/api/paper/event/clan/ClanDemotedEvent.kt | New clan demotion event payload. |
| surf-api-paper/surf-api-paper/src/main/kotlin/dev/slne/surf/api/paper/event/clan/ClanDeleteEvent.kt | New clan delete event payload. |
| surf-api-paper/surf-api-paper/src/main/kotlin/dev/slne/surf/api/paper/event/clan/ClanCreatedEvent.kt | New clan creation event payload. |
| surf-api-paper/surf-api-paper/src/main/kotlin/dev/slne/surf/api/paper/event/chat/SlowChatBlockMessageEvent.kt | New slow-chat blocked message event payload. |
| surf-api-paper/surf-api-paper/src/main/kotlin/dev/slne/surf/api/paper/event/chat/DisabledChatBlockMessageEvent.kt | New disabled-chat blocked message event payload. |
| surf-api-paper/surf-api-paper/src/main/kotlin/dev/slne/surf/api/paper/event/chat/ChatUnIgnoreEvent.kt | New unignore event payload. |
| surf-api-paper/surf-api-paper/src/main/kotlin/dev/slne/surf/api/paper/event/chat/ChatIgnoreEvent.kt | New ignore event payload. |
| surf-api-paper/surf-api-paper/src/main/kotlin/dev/slne/surf/api/paper/event/chat/ChatDirectMessageEvent.kt | New direct-message event payload. |
| surf-api-paper/surf-api-paper/src/main/kotlin/dev/slne/surf/api/paper/event/chat/ChatAiModerateEvent.kt | New AI moderation event payload. |
| surf-api-paper/surf-api-paper/src/main/kotlin/dev/slne/surf/api/paper/event/captcha/CaptchaSuccessEvent.kt | New captcha success event payload. |
| surf-api-paper/surf-api-paper/src/main/kotlin/dev/slne/surf/api/paper/event/captcha/CaptchaFailEvent.kt | New captcha fail event payload. |
| gradle.properties | Bumps version from 3.13.0 to 3.13.1. |
Comment on lines
+7
to
+11
| data class PlayerPayEvent( | ||
| val player: Player, | ||
| val targetUuid: UUID, | ||
| val amount: Int | ||
| ) : SurfSyncEvent() |
Comment on lines
+7
to
+11
| data class PlayerPayEvent( | ||
| val player: Player, | ||
| val targetUuid: UUID, | ||
| val amount: Int | ||
| ) : SurfSyncEvent() |
Comment on lines
+6
to
+8
| data class StatsOptoutSettingEvent( | ||
| val player: Player | ||
| ) : SurfSyncEvent() |
Comment on lines
+8
to
+12
| val player: Player, | ||
| val tradeName: String, | ||
| val itemStack: ItemStack, | ||
| val price: Int | ||
| ) : SurfSyncEvent() |
Comment on lines
+7
to
+10
| data class RespawnAtNearestSpawnEvent( | ||
| val player: Player, | ||
| val respawnLocation: Location | ||
| ) : SurfSyncEvent() |
Comment on lines
+6
to
+10
| data class CaptchaSuccessEvent( | ||
| val player: Player, | ||
| val size: Int, | ||
| val timePerPage: Long | ||
| ) : SurfSyncEvent() |
Comment on lines
+6
to
+10
| data class CaptchaFailEvent( | ||
| val player: Player, | ||
| val size: Int, | ||
| val timePerPage: Long | ||
| ) : SurfSyncEvent() |
| import dev.slne.surf.api.core.event.SurfSyncEvent | ||
| import org.bukkit.entity.Player | ||
|
|
||
| data class StatsOptoutSettingEvent( |
| import org.bukkit.entity.Player | ||
| import java.util.* | ||
|
|
||
| data class ChatUnIgnoreEvent( |
Comment on lines
+6
to
+11
| data class PlayerPlayAHourEvent( | ||
| val player: Player, | ||
| val totalHour: Long, | ||
| val totalHourOnServer: Long, | ||
| val server: String | ||
| ) : SurfAsyncEvent() |
Contributor
|
👋 TheBjoRedCraft your PR is conflicting and needs to be updated to be merged |
- introduce AfkStateChangeEvent for tracking player's AFK status changes - add ArchaeologySpecialDropEvent for special item drops during archaeology - implement ArmorStandBreakWithAxeEvent for axe interactions with armor stands - create CaptchaFailEvent and CaptchaSuccessEvent for CAPTCHA verification results - add ChatAiModerateEvent for AI moderation of chat messages - implement ChatDirectMessageEvent for private messaging between players - create ChatIgnoreEvent and ChatUnIgnoreEvent for managing player ignore lists - add Clan events for creation, deletion, promotion, demotion, and invite count changes - introduce Player events for playtime milestones and payment transactions - add various item-related events including ShopBuyItemEvent and ShopSellItemEvent
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.