Skip to content

Merge 2.x changes into folia branch#6438

Open
Warriorrrr wants to merge 305 commits intoEssentialsX:refactor/foliafrom
Warriorrrr:feat/folia/merge-2.x-changes
Open

Merge 2.x changes into folia branch#6438
Warriorrrr wants to merge 305 commits intoEssentialsX:refactor/foliafrom
Warriorrrr:feat/folia/merge-2.x-changes

Conversation

@Warriorrrr
Copy link
Contributor

This merges the latest changes from 2.x into the folia branch, and the bare minimum amount of fixes to get the plugin to enable properly and prepare for future work.

Comparing this branch against 2.x will provide a slightly better diff view: https://diffs.dev/?github_url=https%3A%2F%2Fgithub.com%2FEssentialsX%2FEssentials%2Fcompare%2F2.x...Warriorrrr%3Afeat%2Ffolia%2Fmerge-2.x-changes

pop4959 and others added 30 commits February 26, 2024 05:09
This fixes issues where arguments converted implicitly from MiniMessage
are prone to bleeding into the rest of the output.

The fix mostly works since `MINI_MESSAGE_NO_TAGS` is only used for
legacy conversion, while `miniMessageInstance` is used in all other
cases normally. If that were not the case, we would not want strict
parsing everywhere since we don't enforce this in translations anyway.

Fixes EssentialsX#5729
Fixes EssentialsX#5730
Fixes EssentialsX#5732
Fixes EssentialsX#5735

Fixes EssentialsX#5720
Closes EssentialsX#5728
We really need to improve our tests, this will work for now
There has been a method for this since 1.13.
Why have we been using this for so long?

Since item NBT is now dead, this method for checking
if an item is spawn-able is defunct and produces a console
error every time the give command is ran.
How could I forget to update the md_5 magic letter

Fixes EssentialsX#5818
Copilot AI and others added 30 commits October 3, 2025 11:05
Prevents calling setJoinMessage when the message is unchanged causing
Bukkit to no longer send the translation key to the client (nuking
vanilla translation)

Fixes EssentialsX#6307
During the gradle/shadow upgrades during the 1.21.9 update, shadow
removed implicit wildcards. Explicitly declare all shadow depends for
jackson in geoip.

Also get rid of mavenCentral since paper mirrors it, was causing
resolution issues for mockbukkit

Fixes EssentialsX#6313
Hopefully should cut down on memory usage with configurate.

Closes EssentialsX#6118
Fixes an issue during first join with the player configuration events on
Paper. The usermap will refuse to implicitly store new users into the
usermap unless it can get a Bukkit player object for it, which is only
created during the PlayerJoinEvent. So for new users, we must defer to
then. The code that was being run (activity/mute checks) was probably
incorrect to be placed inside of configure event anyway.

Also force loads the locale bundle into memory to ensure it's ready for
servers with slow i/o.

Fixes EssentialsX#6315
<!--

EssentialsX feature submission guide
====================================

NOTE: Failure to fill out this template properly may result in your PR
being
      delayed or ignored without warning.

NOTE: Don't type between any arrows in the template, as this text will
be
hidden. This includes this header block and any other explanation text
      blocks.

Want to discuss your PR before submitting it? Join the EssentialsX
Development
server: https://discord.gg/CUN7qVb


EssentialsX is GPL
------------------

By contributing to EssentialsX, you agree to license your code under the
GNU General Public License version 3, which can be found at the link
below:
https://github.com/EssentialsX/Essentials/blob/2.x/LICENSE


Instructions
------------

If you are submitting a new feature, please follow the following steps:

1.  Fill out the template in full.
This includes providing screenshots and a link to the original feature
      request. If there isn't an existing feature request, we strongly
      recommend opening a new feature request BEFORE opening your PR to
implement it, as this allows us to review whether we're likely to accept
      your feature in advance, and also allows us to discuss possible
      implementations for the feature. If there is no associated feature
      request, your PR may be delayed or rejected without warning.
      
      You can open a new feature request by following this link:
      https://github.com/EssentialsX/Essentials/issues/new/choose

2. If you are fixing a performance issue, please use the "Bug fix" PR
template
instead. The "bug fix" template is better suited to performance issues.

3.  Include a demonstration.
If you are adding commands, please provide screenshots and/or a video
demonstration of the feature. Similarly, if you are adding a new API,
      please include a link to example code that takes advantage of your
proposed API. This will aid us in reviewing PRs and speed up the process
      significantly.

-->

### Information

<!--
Replace #nnnn with the number of the original issue. If this PR
implements
features from multiple issues, you should repeat the phrase "closes
#nnnn"
    for each issue. 
-->

Closes EssentialsX#6336. 

### Details

<!-- Type a description of your proposed feature below this line. -->
This adds a config option that allows disabling the logging of console
and RCON commands.

**Environments tested:**    

<!-- Type the OS you have used below. -->
OS: Arch Linux

<!-- Type the JDK version (from java -version) you have used below. -->
Java version:  openjdk 21.0.8 2025-07-15

<!--
Put an "x" inside the boxes for the server software you have tested this
bug fix on. If this feature does not apply to a server, strike through
the server software using ~~strikethrough~~. If you have tested on other
    environments, add a new line with relevant details.
-->
- [x] Most recent Paper version (1.XX.Y, git-Paper-BUILD)
- [x] CraftBukkit/Spigot/Paper 1.12.2
- [x] CraftBukkit 1.8.8


**Demonstration:**  
<!--
Below this block, include screenshots/log snippets from before and after
as
necessary. If you have created or used a test case plugin, please link
to a
download of the plugin, source code and exact version used where
possible.
-->
Without these changes, with the config option not set:
<img width="680" height="69" alt="image"
src="https://github.com/user-attachments/assets/92647fc0-c0c5-4e7b-9f61-953fcadd7f93"
/>

With these changes, with the config option set to false:
<img width="635" height="68" alt="image"
src="https://github.com/user-attachments/assets/fd11572c-dfe2-4b79-89ab-69e2275d2c9f"
/>

---------

Co-authored-by: Josh Roy <[email protected]>
<!--

EssentialsX feature submission guide
====================================

NOTE: Failure to fill out this template properly may result in your PR
being
      delayed or ignored without warning.

NOTE: Don't type between any arrows in the template, as this text will
be
hidden. This includes this header block and any other explanation text
      blocks.

Want to discuss your PR before submitting it? Join the EssentialsX
Development
server: https://discord.gg/CUN7qVb


EssentialsX is GPL
------------------

By contributing to EssentialsX, you agree to license your code under the
GNU General Public License version 3, which can be found at the link
below:
https://github.com/EssentialsX/Essentials/blob/2.x/LICENSE


Instructions
------------

If you are submitting a new feature, please follow the following steps:

1.  Fill out the template in full.
This includes providing screenshots and a link to the original feature
      request. If there isn't an existing feature request, we strongly
      recommend opening a new feature request BEFORE opening your PR to
implement it, as this allows us to review whether we're likely to accept
      your feature in advance, and also allows us to discuss possible
      implementations for the feature. If there is no associated feature
      request, your PR may be delayed or rejected without warning.
      
      You can open a new feature request by following this link:
      https://github.com/EssentialsX/Essentials/issues/new/choose

2. If you are fixing a performance issue, please use the "Bug fix" PR
template
instead. The "bug fix" template is better suited to performance issues.

3.  Include a demonstration.
If you are adding commands, please provide screenshots and/or a video
demonstration of the feature. Similarly, if you are adding a new API,
      please include a link to example code that takes advantage of your
proposed API. This will aid us in reviewing PRs and speed up the process
      significantly.

-->

### Information

<!--
Replace #nnnn with the number of the original issue. If this PR
implements
features from multiple issues, you should repeat the phrase "closes
#nnnn"
    for each issue. 
-->

### Details

**Proposed feature:**  
This PR add a new event when a warmpup teleport is cancelled, and it
also expose the tpType


**Environments tested:**    

<!-- Type the OS you have used below. -->
OS: Debian 12

<!-- Type the JDK version (from java -version) you have used below. -->
Java version: OpenJDK Runtime Environment Corretto-8.422.05.1 (build
1.8.0_422-b05)

<!--
Put an "x" inside the boxes for the server software you have tested this
bug fix on. If this feature does not apply to a server, strike through
the server software using ~~strikethrough~~. If you have tested on other
    environments, add a new line with relevant details.
-->
- [x] Most recent Paper version (1.21.8, git-Paper-60-main@29c8822)
- [ ] CraftBukkit/Spigot/Paper 1.12.2
- [x] Paper 1.8.8

---------

Co-authored-by: Josh Roy <[email protected]>
…lsX#6371)

Adds a call to super with the correct async flag based on Bukkit's
primary thread status, ensuring proper event handling for
TeleportWarmupCancelledEvent.

fix this error:

```
[18:40:31 WARN]: [Essentials] Plugin Essentials v2.22.0-dev+278-984a0c1 generated an exception while executing task 156164
java.lang.IllegalStateException: TeleportWarmupCancelledEvent may only be triggered synchronously.
        at io.papermc.paper.plugin.manager.PaperEventManager.callEvent(PaperEventManager.java:42) ~[paper-1.21.10.jar:1.21.10-117-df4b668]
        at io.papermc.paper.plugin.manager.PaperPluginManagerImpl.callEvent(PaperPluginManagerImpl.java:131) ~[paper-1.21.10.jar:1.21.10-117-df4b668]
        at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:628) ~[paper-api-1.21.10-R0.1-SNAPSHOT.jar:?]
        at EssentialsX-2.22.0-278.jar/com.earth2me.essentials.AsyncTimedTeleport.cancelTimer(AsyncTimedTeleport.java:160) ~[EssentialsX-2.22.0-278.jar:?]
        at EssentialsX-2.22.0-278.jar/com.earth2me.essentials.AsyncTimedTeleport.run(AsyncTimedTeleport.java:96) ~[EssentialsX-2.22.0-278.jar:?]
        at org.bukkit.craftbukkit.scheduler.CraftTask.run(CraftTask.java:78) ~[paper-1.21.10.jar:1.21.10-117-df4b668]
        at org.bukkit.craftbukkit.scheduler.CraftAsyncTask.run(CraftAsyncTask.java:57) ~[paper-1.21.10.jar:1.21.10-117-df4b668]
        at com.destroystokyo.paper.ServerSchedulerReportingWrapper.run(ServerSchedulerReportingWrapper.java:22) ~[paper-1.21.10.jar:?]
        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144) ~[?:?]
        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642) ~[?:?]
        at java.base/java.lang.Thread.run(Thread.java:1583) ~[?:?]
```
This will allow us to backup dumps while issues are still open since
bytebins expire after a bit.

We will need to set `GIST_TOKEN` to a PAT for @Flask-Bot.

obviously will require new website and shouldn't be merged till.

Co-authored-by: MD <[email protected]>
new site doesn't require .html extension, we can avoid the redirect.

Co-authored-by: MD <[email protected]>
Show tempban IP expiration on player join, matching standard tempban
behavior.
I hope this message finds you well. This pull requests prevents an NPE
in getPlayerLocale for offline players.

Co-authored-by: JRoy <[email protected]>
EconomyLayers relies on the scheduler to be initialized to enable properly
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.