Skip to content

MC 26.1 ; Java 25 ; Jaloquent#41

Merged
ez-plugins merged 15 commits into
v3.xfrom
feature/mc-26.1
Apr 26, 2026
Merged

MC 26.1 ; Java 25 ; Jaloquent#41
ez-plugins merged 15 commits into
v3.xfrom
feature/mc-26.1

Conversation

@ez-plugins
Copy link
Copy Markdown
Owner

No description provided.

- Bump project version 2.4.1 → 3.0.0
- Set maven.compiler.release to 25
- Update Paper API dependency to 26.1.2.build+
- Switch MockBukkit artifact to mockbukkit-v26.1 (dev-d245e0a)
- Enable compiler fork for Java 25 compatibility
- Update api-version in plugin.yml to 26.1
- AfkStateFeatureTest: core AFK state machine
- MoveListenerAntiBypassFeatureTest: water/vehicle/bubble-column bypass detection
- PlayerActivityListenerAllEventsTest: all tracked activity event types
- PlayerAfkStatusChangeEventFeatureTest: cancellable API event
- PlayerQuitAfkFlushTest: AFK time flush on player disconnect
- PlaceholderExpansionTest: all 16 PlaceholderAPI placeholders
- EconomyManagerTest: entry and recurring cost logic
- LastActiveStateTest: last-active timestamp state
- ZoneCacheTest / ZoneContainsTest: zone lookup and containment
Add docs/features/ directory with a dedicated page for each plugin feature,
following the afk-kick-warnings style (config snippet + bullet explanations +
How It Works + Related).

New pages:
- features/index.md: section overview with feature summary table
- features/afk-detection.md: idle timeout, broadcasts, titles, display names, sound
- features/anti-bypass.md: water flow, vehicle, bubble column detection
- features/afk-kick.md: kick system, enabledWhenFull, timeout
- features/gui.md: gui.yml reference, all action types, filler, back button
- features/afk-zones.md: zones.yml, all three reward types, management commands
- features/economy-costs.md: entry/recurring costs, Vault requirements
- features/leaderboard.md: AFK time tracking, flush interval, /afk top
…e content

Navigation:
- Move afk-kick-warnings.md parent: Configuration → Features (nav_order: 4)
- Bump nav_order: permissions 5→6, messages 6→7, mysql 7→8, integrations 8→9, faq 9→10
- Add Features row to index.md documentation table
- Add Features row to getting-started.md next steps

Cross-links:
- configuration.md: add feature-page links per config section; remove has_children
- permissions.md: rewrite with feature-grouped sections and links
- afk-kick-warnings.md: add Related section

Integrations:
- PlaceholderApiIntegration.md: replace all wrong placeholder names (%ezafk_is_afk%,
  %ezafk_afk_time%, %ezafk_afk_reason%) with the 16 real placeholders sourced from
  EzAfkPlaceholderExpansion.java
- EconomyIntegration.md: add config snippet, setup steps, and feature cross-links
bbcode-topic.md:
- Update versions: v3.0.0, Minecraft 26.1, Java 25
- Replace GitHub Releases link with Modrinth download link
- Add AFK Zones, German translation (de), and zone commands to feature list
- Expand permissions and commands tables to include zone management
- Update config spoiler to current v3.0.0 structure
- Remove stale version badges pointing to GitHub releases API

topics/modrinth-topic.md (new):
- Full Markdown description suitable for Modrinth/Hangar plugin pages
- Sections: overview, feature table, installation, commands, permissions,
  PlaceholderAPI placeholders, configuration overview, integrations, links

docs/ezafk-bbcode.txt: remove (superseded by bbcode-topic.md at repo root)
- Replace all em dashes with colons or plain punctuation throughout all
  documentation pages, feature pages, integration pages, API pages,
  bbcode-topic.md, and topics/modrinth-topic.md
- Remove (bool), (integer, seconds), (string), (decimal) type annotations
  from config field descriptions so server owners can read them easily
- Simplify How It Works sections: replace Bukkit/Java internal references
  (PlayerMoveEvent, VehicleMoveEvent, Player#kickPlayer(), session map)
  with plain behaviour descriptions
- Fix TabIntegration.md: convert informal 'Steps — X' headers to proper
  ### headings; remove stray AI-assistant prompt paragraph at the end
- Use direct language throughout the non-API docs
Replace raw JDBC/YAML implementations with Jaloquent's Model/ModelRepository
pattern. Each backend now implements Jaloquent's DataStore or JdbcStore
interface and delegates all CRUD to a ModelRepository<AfkTimeModel>.

- Add AfkTimeModel (extends Model) with getSeconds/setSeconds
- Add YamlDataStore (DataStore + QueryableStorage) for YAML persistence
- Rewrite YamlStorage: YamlDataStore + ModelRepository (flat-map path)
- Rewrite MySQLStorage: JdbcStore + ModelRepository (SqlDialect.MYSQL)
- Rewrite SQLiteStorage: JdbcStore + ModelRepository (SqlDialect.SQLITE)
- Shade Jaloquent/JavaQueryBuilder under com.gyvex.ezafk.libs.ezframework
Models:
- AfkTimeModel now implements HasFactory and declares setFillable("seconds")
  to guard against mass-assignment of unexpected attributes
- Static factory() method delegates to Factory.discover() for test fixture
  generation via AfkTimeModelFactory

Migrations:
- Migration interface: version(), description(), up(JdbcStore)
- SqlMigration record: executes a single SQL string as a migration
- MigrationRunner: ensures schema_migrations tracking table exists, then
  runs any pending migrations in ascending version order exactly once
- MySQLStorage and SQLiteStorage: replace manual CREATE TABLE IF NOT EXISTS
  with MigrationRunner (v1 migration per dialect)

Factories:
- AfkTimeModelFactory (test scope): extends Factory<AfkTimeModel>; generates
  random AFK time fixtures using Jaker's NumberProvider
- Add jaker 1.0.0 and jaker-data-en-US 1.0.0 as test-scoped dependencies
@ez-plugins ez-plugins merged commit 9b74cee into v3.x Apr 26, 2026
3 checks passed
@ez-plugins ez-plugins deleted the feature/mc-26.1 branch April 26, 2026 09:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant