53 Commits
Author SHA1 Message Date
NotAlexNoyle 203b9e2423 Point submodules at canonical Gitea repositories 2026-11-01 12:47:56 -05:00
NotAlexNoyle e9b96cce88 Exclude CODEOWNERS from language statistics 2026-10-31 09:54:52 -04:00
NotAlexNoyle 51cbb5b1a3 Add CODEOWNERS (one staff approval) 2026-10-31 09:54:52 -04:00
NotAlexNoyle 1fb96cc905 Update Utilities-OG 2026-09-14 02:00:53 -04:00
NotAlexNoyleandClaude Opus 5 04d31f8b8e fix: recover SubstAgent placeholders from the jar, not the live file
The previous approach read the live config.yml back through NIO to
recover the raw ^{ENV_VAR} tokens, on the assumption that SubstAgent
only intercepted java.io.FileInputStream. Current SubstAgent also hooks
sun.nio.fs.UnixNativeDispatcher and sun.nio.ch.FileDispatcherImpl, so
NIO reads come back substituted too and the tokens were unrecoverable.

Reading through a hard link with a non-config extension does not help
either. SubstAgent keys its cache by file descriptor number and only
sanity checks the inode, and a hard link shares the inode of the file it
points at, so a recycled descriptor matches an already consumed entry
and the read reports EOF instead of returning the real bytes.

Take the variable names from the default config bundled in the plugin
jar instead. A jar is not a config path, so that copy keeps its raw
placeholders, verified against the agent. A key is only rewritten when
its in-memory value equals the environment variable the default names
for it, which is the only way SubstAgent could have produced it.

Also use ^{ENV_VAR} for the database credentials, which is the syntax
SubstAgent expands.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-10 17:08:20 -04:00
NotAlexNoyleandClaude Opus 5 10c82714ad fix: stop corrupt-shop deletion, guard null economy, pin Adventure
Corrupt shop loading was destructive and crashed. Both branches of the
debug.delete-corrupt-shops check called deleteShop, so a shop whose
container was temporarily missing lost its signs and its database row
even with the option disabled. deleteShop then refunded through a null
economy core and threw, aborting shop loading and ChunkLoadEvent.

- ContainerShop#handleLoading now unloads instead of deleting when
  delete-corrupt-shops is false, leaving the row and signs intact.
- SimpleEconomyTransaction fails transactions with a lastError instead
  of dereferencing a null core in checkBalance, commit and
  failSafeCommit.
- SimpleShopManager#refundShop skips and warns when no economy is
  loaded, matching the guards every other economy call site has.
- The economy bridge loads before shops instead of one tick after, so
  refunds during loading can see it. EconomyLoader#load is now
  idempotent and the post-startup attempt reports a missing bridge at
  WARN rather than only at debug level.

Adventure was compiled against 4.22.0 while Purpur 1.19.4 provides
4.13.1 at runtime, so any 4.14+ call would have been a
NoSuchMethodError. Pin the API to 4.13.1, align the platform artifacts
to 4.3.2 in both the build and plugin.yml, and drop the ANSI and JSON
serializers, which do not exist at 4.13.1 and were only used to print
classpaths in diagnostics.

Also:
- Add /qs beacon, which marks empty shops with particle columns that are
  only sent to the command runner.
- Add ShopManager#transferShopsOwnership so ShopBridge-OG can move shops
  to a new owner when an AreaShop-OG plot is transferred.
- Keep SubstAgent $ENV_VAR placeholders on disk. Bukkit reads configs
  through FileInputStream, which SubstAgent intercepts, so saving the
  config persisted resolved credentials. The config file is now only
  rewritten when a migration actually changed something, and every save
  restores the raw tokens read back through NIO.
- Use SubstAgent's $VAR syntax for the database credentials. The ^{VAR}
  form was never substituted, since SubstAgent only triggers on '$'.
- Read the configuration once instead of in both onLoad and onEnable.
- Name the log sink that logging.location selects instead of always
  claiming qs.log.
- Warn when an item expression references an unregistered item, which
  previously produced a rule that silently never matched.
- Stop shipping example rules as live config, and tolerate an empty
  limits.ranks section instead of throwing.
- Default debug.disable-debuglogger to false and legacy-updater
  shop-sign to false.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-10 16:52:34 -04:00
NotAlexNoyle 595948ea79 update README.md 2026-07-27 09:20:23 -04:00
NotAlexNoyle ef6be07bc7 Merge remote-tracking branch 'refs/remotes/origin/main' 2026-07-26 10:45:05 -04:00
NotAlexNoyle 756819303e Handle Hikari (GPLv3) databases, replace Vault permissions with LuckPerms permissions 2026-07-26 10:43:06 -04:00
NotAlexNoyle 6427569420 Merge pull request #3 from true-og/agent/harden-disabled-virtual-display-check
Harden disabled virtual display self-test
2026-07-23 18:27:28 -04:00
NotAlexNoyle f382bd16d0 Harden disabled virtual display self-test 2026-07-23 16:53:20 -04:00
NotAlexNoyle 4a671fbe05 Merge pull request #2 from true-og/agent/skip-disabled-virtual-display-check
Skip virtual display self-test when displays are disabled
2026-07-22 17:06:07 -04:00
NotAlexNoyle 48f8d1884e Skip virtual display check when displays are disabled 2026-07-22 16:29:23 -04:00
NotAlexNoyle 79bd366046 Spotless formatting 2026-07-22 10:06:27 -04:00
NotAlexNoyle 2e075bbbf5 Merge pull request #1 from true-og/agent/list-all-shops
Add permission-gated shop listing command
2026-07-22 09:59:16 -04:00
NotAlexNoyle 75e6b2975a Register list all shops command 2026-07-22 09:56:56 -04:00
NotAlexNoyle 8c4e439d60 Add list all shops command 2026-07-22 09:55:28 -04:00
NotAlexNoyle 142456bfc0 Add SubstAgent credentials for mariadb 2026-07-22 07:54:08 -04:00
NotAlexNoyle 7b05d73652 Use live TrueOG Network config files 2026-07-22 07:11:06 -04:00
NotAlexNoyle 96ecc00c7e Update Utilities-OG API 2026-07-20 00:49:18 -04:00
NotAlexNoyle 89ff2af9e5 Remove Template-OG artifact 2026-06-21 21:11:17 -04:00
NotAlexNoyle c43d49c146 Update QuickShop-OG 2026-05-20 11:10:59 -04:00
NotAlexNoyle 662f245f7e Update Utilities-OG 2026-05-11 00:44:15 -04:00
NotAlexNoyle ea220d03a8 Update Utilities-OG API 2026-04-20 01:59:44 -04:00
NotAlexNoyle cb733c6382 Suppress noisy tax account console warnings 2026-04-13 06:56:06 -04:00
NotAlexNoyle 4a1a95c4da Standardize ProtocolLib 2026-04-13 05:23:15 -04:00
NotAlexNoyle ad243cef1a Update Utilities-OG API 2026-04-05 13:15:55 -04:00
NotAlexNoyle 70b52cb98c Depend on Essentials-OG 2026-03-30 08:26:45 -04:00
NotAlexNoyle 4e3c5bdcde Update Utilities-OG 2026-03-30 05:03:43 -04:00
NotAlexNoyle dc8aeeaa57 Update Utilities-OG 2026-03-25 11:46:08 -04:00
NotAlexNoyle 6c2eb91c88 Downgrade worldedit api to 7.2.15 2026-03-25 11:31:46 -04:00
NotAlexNoyle bb1972b6ca Update NBT API 2026-03-25 11:19:52 -04:00
NotAlexNoyle 4703167695 Update Utilities-OG API 2025-12-11 02:59:23 -05:00
NotAlexNoyle 2979c16f87 Fix shading 2025-12-08 22:44:16 -05:00
NotAlexNoyle 82dec3545d Remove surveillance 2025-12-08 22:22:39 -05:00
NotAlexNoyle 3d6c730376 Update Utilities-OG 2025-12-07 18:28:32 -05:00
NotAlexNoyle b18a72ee32 Add legacy ProtocolLib jar 2025-08-27 17:10:25 -04:00
NotAlexNoyle 01a9c70f6d Update eclise.gradle.kts 2025-08-27 11:47:12 -04:00
NotAlexNoyle 32c39c84b6 Update to gradle 8.14.3 2025-08-27 09:01:20 -04:00
NotAlexNoyle e4a1d0c6b6 Clean up 2025-08-27 04:01:24 -04:00
NotAlexNoyle 4505099507 Update Utilities-OG dependency 2025-07-07 11:40:16 -04:00
NotAlexNoyle 5c926677f1 Update Utilities-OG dependency 2025-06-28 18:25:55 -04:00
NotAlexNoyle f98a79eb1f Fix jar name 2025-06-23 18:31:12 -04:00
NotAlexNoyle 5f6554dddc Add gradle wrapper jar 2025-06-23 17:22:51 -04:00
NotAlexNoyle 3a81df4788 Feat: Maven -> Gradle 8.14.2 2025-06-20 16:19:28 -04:00
NotAlexNoyle a3aad0b7ed Clear unused submodules 2025-06-18 18:37:35 -04:00
NotAlexNoyle fe3fa9677c Fix build 2025-05-28 19:48:46 -04:00
NotAlexNoyle 51d05a1bbe Add NCP repos to NCP module 2025-01-10 03:42:03 -05:00
NotAlexNoyle 2d17796b0d Fix NCP compatibility module 2025-01-10 02:27:47 -05:00
NotAlexNoyle 19e8573413 Fix build 2025-01-09 22:04:02 -05:00
NotAlexNoyle 0c6be10814 Update paper repo 2024-12-31 22:19:02 -05:00
NotAlexNoyle 8c4a32808d Fix build 2024-12-06 04:23:50 -05:00
NotAlexNoyle 0648fb7486 Fix build 2024-11-30 03:09:00 -05:00