Fix memory usage and chunkcache#18
Conversation
Removed deployment step to Testers Repo from workflow.
|
@UplandJacob If you could test the |
Still seems to be a bit crazy @Trainboy15
maybe resetting cache more often or not saving so many things to it? |
|
I agree, it prob shouldent use 24GB, but it seems at least a bit better than 36GB |
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
|
@bobhenl If you could test it now that would be great |
|
where can be the build downloaded btw, I don't see it in actions |
This reverts commit 1ca2cda.
This comment was marked as outdated.
This comment was marked as outdated.
There was a problem hiding this comment.
Actionable comments posted: 5
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In @.github/workflows/test.yml:
- Around line 15-16: The checkout step currently uses actions/checkout@v4
without disabling token persistence; update the Checkout repository step
(actions/checkout) to set persist-credentials: false so the GitHub token is not
written to local git config during this job. Locate the step that uses
actions/checkout@v4 and add the persist-credentials: false option under that
step's with: block.
- Around line 15-16: Replace floating version tags for GitHub Actions with full
commit SHAs: update each uses: entry (e.g., uses: actions/checkout@v4 and the
other uses: lines flagged at 19 and 33) to reference the corresponding action's
full commit SHA (for example actions/checkout@<full-sha>) by looking up the
canonical commit for the tagged release in the action's GitHub repo and
substituting the tag with that SHA so the workflow is pinned to an immutable
commit.
In `@src/main/java/tf/tuff/TuffX.java`:
- Around line 103-105: TuffX currently only calls
PacketEvents.getAPI().terminate() and unregisters incoming channels via
getServer().getMessenger().unregisterIncomingPluginChannel(this); update
TuffX.shutdown/disable logic to explicitly unregister any plugin channels that
other classes register by calling
getServer().getMessenger().unregisterOutgoingPluginChannel(...) and
getServer().getMessenger().unregisterIncomingPluginChannel(...) for the exact
channel names used in Y0Plugin (the channels registered in Y0Plugin.register...
at the Y0Plugin class) and in TuffActions (the channels registered in
TuffActions at its register calls), ensuring every
registerOutgoing/registerIncoming has a matching unregister to prevent
“registration already exists” on reload.
In `@src/test/TuffXTest.java`:
- Around line 31-65: Tests reference plugin.latestAvailableVersion but TuffX has
no such member, causing compile failures; add a package-visible String field
named latestAvailableVersion to class TuffX (initialize to null) so tests can
read/write it, and update any existing update-check logic (e.g., the method that
detects versions) to assign to this field when an available version is found;
alternatively, expose equivalent package-visible getter/setter on TuffX with the
name latestAvailableVersion so the tests can access the value.
- Around line 1-10: The test class TuffXTest is outside Gradle’s default test
source set; move the file TuffXTest (which declares package tf.tuff) into the
standard test directory so its path matches the package
(src/test/java/tf/tuff/TuffXTest.java) or alternatively update Gradle’s
sourceSets configuration to include its current location; ensure the package
declaration remains tf.tuff and that the class name TuffXTest and imports are
unchanged so JUnit (test { useJUnitPlatform() }) will run it in CI.
🪄 Autofix (Beta)
❌ Autofix failed (check again to retry)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro Plus
Run ID: d161060d-7acd-4b1c-9979-16b6cd9cd31d
⛔ Files ignored due to path filters (1)
builds/TuffXPlus-1.0.1-beta.jaris excluded by!**/*.jar
📒 Files selected for processing (6)
.github/workflows/test.ymlbuild.gradlesrc/main/java/tf/tuff/TuffX.javasrc/main/java/tf/tuff/viablocks/CustomBlockListener.javasrc/main/java/tf/tuff/y0/Y0Plugin.javasrc/test/TuffXTest.java
| PacketEvents.getAPI().terminate(); | ||
|
|
||
| getServer().getMessenger().unregisterIncomingPluginChannel(this); |
There was a problem hiding this comment.
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
set -euo pipefail
echo "Plugin message registrations:"
rg -n --type=java 'register(Incoming|Outgoing)PluginChannel|unregister(Incoming|Outgoing)PluginChannel' src
echo
echo "Expected: every registerOutgoingPluginChannel(...) has a matching unregisterOutgoingPluginChannel(...) on the disable path."Repository: TuffNetwork/TuffXPlus
Length of output: 2239
Fix plugin-channel teardown: TuffX only unregisters incoming; missing outgoing/incoming unregisters are in Y0Plugin and TuffActions.
src/main/java/tf/tuff/TuffX.java:105calls onlygetServer().getMessenger().unregisterIncomingPluginChannel(this)andTuffXhas noregisterOutgoingPluginChannel(...)usage, so “mirror outgoing cleanup here” doesn’t apply.- Ensure matching
unregisterOutgoingPluginChannel(...)/unregisterIncomingPluginChannel(...)for the channels registered in:src/main/java/tf/tuff/y0/Y0Plugin.java:232-233src/main/java/tf/tuff/tuffactions/TuffActions.java:68-69(missing any corresponding unregisters can trigger “registration already exists” on reload).
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@src/main/java/tf/tuff/TuffX.java` around lines 103 - 105, TuffX currently
only calls PacketEvents.getAPI().terminate() and unregisters incoming channels
via getServer().getMessenger().unregisterIncomingPluginChannel(this); update
TuffX.shutdown/disable logic to explicitly unregister any plugin channels that
other classes register by calling
getServer().getMessenger().unregisterOutgoingPluginChannel(...) and
getServer().getMessenger().unregisterIncomingPluginChannel(...) for the exact
channel names used in Y0Plugin (the channels registered in Y0Plugin.register...
at the Y0Plugin class) and in TuffActions (the channels registered in
TuffActions at its register calls), ensuring every
registerOutgoing/registerIncoming has a matching unregister to prevent
“registration already exists” on reload.
| package tf.tuff; | ||
|
|
||
| import be.seeseemelk.mockbukkit.MockBukkit; | ||
| import be.seeseemelk.mockbukkit.ServerMock; | ||
| import be.seeseemelk.mockbukkit.entity.PlayerMock; | ||
| import org.junit.jupiter.api.*; | ||
|
|
||
| import static org.junit.jupiter.api.Assertions.*; | ||
|
|
||
| class TuffXTest { |
There was a problem hiding this comment.
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
set -euo pipefail
echo "Test file location:"
fd -p 'TuffXTest.java'
echo
echo "Gradle source-set configuration:"
rg -n 'sourceSets|useJUnitPlatform|test \{' build.gradle settings.gradle gradle.properties 2>/dev/null || true
echo
echo "Expected: either the test file lives under src/test/java/... or build.gradle defines a custom test source set that includes src/test."Repository: TuffNetwork/TuffXPlus
Length of output: 340
🏁 Script executed:
#!/bin/bash
set -euo pipefail
echo "== build.gradle lines 70-120 =="
sed -n '70,120p' build.gradle
echo
echo "== Any sourceSets configuration in repo (limited to build.gradle/gradle/*.gradle) =="
rg -n "sourceSets" -S . || true
echo
echo "== List of Java test files under src/test =="
fd -e java . src/test 2>/dev/null | head -n 200Repository: TuffNetwork/TuffXPlus
Length of output: 696
🏁 Script executed:
#!/bin/bash
set -euo pipefail
echo "Test file location:"
fd -p 'TuffXTest.java'
echo
echo "Gradle source-set configuration:"
rg -n 'sourceSets|sourceDirs|test \{' build.gradle settings.gradle gradle.properties 2>/dev/null || true
echo
echo "Expected: either the test file lives under src/test/java/... or build.gradle defines a custom test source set/sourceDirs including src/test."Repository: TuffNetwork/TuffXPlus
Length of output: 308
Move TuffXTest into Gradle’s active test source set (src/test/java).
src/test/TuffXTest.java is not under src/test/java, and build.gradle only configures test { useJUnitPlatform() } with no sourceSets override—so this test can be skipped entirely in CI. Also, since it declares package tf.tuff;, it should be located at src/test/java/tf/tuff/TuffXTest.java.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@src/test/TuffXTest.java` around lines 1 - 10, The test class TuffXTest is
outside Gradle’s default test source set; move the file TuffXTest (which
declares package tf.tuff) into the standard test directory so its path matches
the package (src/test/java/tf/tuff/TuffXTest.java) or alternatively update
Gradle’s sourceSets configuration to include its current location; ensure the
package declaration remains tf.tuff and that the class name TuffXTest and
imports are unchanged so JUnit (test { useJUnitPlatform() }) will run it in CI.
|
So far so good. Just tested the latest version, works great! |
There was a problem hiding this comment.
♻️ Duplicate comments (1)
.github/workflows/test.yml (1)
15-16:⚠️ Potential issue | 🟠 Major | ⚡ Quick winAdd
persist-credentials: falseto harden credential exposure.This checkout step does not specify
persist-credentials: false, so the GitHub token remains in the local git config throughout the job. Since this workflow only builds, tests, and uploads artifacts without performing any authenticated git operations, persisting credentials is unnecessary and widens the attack surface.🔒 Proposed fix to disable credential persistence
- name: Checkout repository uses: actions/checkout@v6 + with: + persist-credentials: false🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In @.github/workflows/test.yml around lines 15 - 16, The checkout step using actions/checkout@v6 currently leaves the GitHub token in git config; update the checkout step (the action invocation "actions/checkout@v6") to include the input persist-credentials: false so credentials are not persisted to the repository config for the job (add the persist-credentials: false field under the checkout step).
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Duplicate comments:
In @.github/workflows/test.yml:
- Around line 15-16: The checkout step using actions/checkout@v6 currently
leaves the GitHub token in git config; update the checkout step (the action
invocation "actions/checkout@v6") to include the input persist-credentials:
false so credentials are not persisted to the repository config for the job (add
the persist-credentials: false field under the checkout step).
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro Plus
Run ID: 06827c60-2536-43d5-87dd-7d6ed070259d
📒 Files selected for processing (1)
.github/workflows/test.yml

IDK if it works put it compiled so...
Also u might want to add back the deploy to testers repo, but i had to remove it
Summary by CodeRabbit
New Features
Bug Fixes
Tests
Chores