NoEncryption NoEncryption is a Minecraft server plugin developed by Doclic and V1nc3ntWasTaken. NoEncryption, or NE for short, is a Minecraft plugin intended to combat against the new chat reporting system implemented in 1.19. NoEncryption is your first, and last solution to this new chat reporting system by stripping messages of their signatures so there is no way for a client to validate that a chat message or command came from a certain player, thus making your messages un-reportable.
Current NoEncryption stats
What versions does NoEncryption support?
NoEncryption supports versions 1.19
through 1.19.4
. The latest stable downloads can be found here in the Assets
section near the bottom.
The Reflection build is compatible with multiple versions, but might run a bit slower.
How does NoEncryption work? NoEncryption works by stripping chat packets of their signatures before they are sent back to your client, and other clients. NoEncryption modifies outbound packets specifically to allow other plugins such as chat managers, and filters to properly modify chat contents before reaching NoEncryption. NoEncryption injects into a player's connection line, allowing it to modify the chat packets before they are sent to the client. Popup blocking works in the same way.
Commands and permissions
Check the tables below for a list of commands, and permissions that NoEncryption has:
Commands
Command | Description | Permission | Restrictions |
---|---|---|---|
/ne |
Display the help menu in chat/console. | noencryption.usecommand |
None |
/ne suppressnotices |
Suppress config notices on startup | noencryption.command.suppressnotices |
Only executable by Console |
/ne checkforupdates |
Manually check for updates on GitHub | noencryption.command.checkforupdates |
None |
Permissions
Permission | Description | Default | Children |
---|---|---|---|
noencryption.* |
Grants all NoEncryption permissions. | op |
|
noencryption.usecommand |
Allows usage of /ne . |
true |
None |
noencryption.command.* |
Allows usage of all /ne subcommands. |
op |
|
noencryption.command.suppressnotices |
Allows usage of /ne suppressnotices . |
op |
None |
noencryption.command.checkforupdates |
Allows usage of /ne checkforupdates . |
op |
None |
Where are the config files?
The generated config files/folders for NoEncryption are located at plugins/NoEncryption/
. There are a few folders available here: settings
, and storage
.
Folders
settings
File | Description |
---|---|
config.yml |
The main configuration file for NoEncryption. |
storage
File | Description |
---|---|
notices.yml |
The storage file for suppressed config notices. This file is automatically modified, and should not be edited manually. |
Is there any way to remove the gray bar and indent? Currently, there is no way to remove the gray bar and indent without the use of texture packs. This is because it is in the clientside code to include the gray bar for unsigned messages, and always include the indentation. There is an available texture pack that solves this issue, which can be found here.
Isn't injecting into a player's connection a security vulnerability?
Injecting the packet handler into the player's connection is in no way a vulnerability. The NoEncryption packet handler is designed to intercept only certain packet types, such as ClientboundPlayerChatPacket, ClientboundPlayerChatHeaderPacket, and ClientboundServerDataPacket (For popup blocking). When one of these packets are detected, certain contents are stored from these packets, and a brand new packet is created in place of it, reusing the contents that were stored from the original packet, and dropping certain contents such as the signature, and the salt.
What services does NoEncryption use?
The only outside services that NoEncryption actively uses is bStats, and requests to the GitHub API. bStats is used to keep track of certain statistics of the plugin such as the build type, plugin version, server version, messages stripped, popups blocked, and other default bStats values. GitHub API requests are made to check for any updates to NoEncryption, which will be displayed at startup. For the bStats privacy policy, click here. For the GitHub privacy policy, click here. Use of bStats and GitHub API can be toggled in the NoEncryption config.
How can I report a bug with NoEncryption?
To report a bug with NoEncryption, you can create an issue about the bug here. We ask that you make one issue per bug, and only one bug per issue. If your issue contains sensitive info, please notify us in the Discord Server, or email [email protected]. (Both can be found at the top of the README)
How can I contribute to NoEncryption?
You can make contributions to the NoEncryption project through the use of Pull Requests. When making a contribution, make sure that you review all the checks in the PR.
Contributing and Building
Requirements
- Java JDK
- Maven
- Compiled BuildTools
Java Installation
To build NoEncryption, run BuildTools, and use Maven, you need an installation of a Java JDK. It is recommended to use Java 17 as this is the version that NoEncryption is developed with.
You can download Java JDK 17 from here.
Maven Installation
Maven is a compiler that NoEncryption, and BuildTools uses. The newest version of Maven is recommended, and can be downloaded from here.
A guide to install Maven after downloading the ZIP file can be found here.
After installing Maven, to test your installation, open a terminal and run mvn -v
.
BuildTools
To locally build NoEncryption, you will need to compile a remapped version of Spigot BuildTools which will automatically add the required dependencies to your local Maven repository.
Install BuildTools to compile NoEncryption for 1.19
- Place the downloaded
BuildTools.jar
into it's own folder. - Open a terminal in the newly created folder's directory
- Run the command below to start the install process (This will take a few minutes to complete):
java -jar BuildTools.jar --rev 1.19 --remapped
Install BuildTools to compile NoEncryption for 1.19.1
- Place the downloaded
BuildTools.jar
into it's own folder. - Open a terminal in the newly created folder's directory
- Run the command below to start the install process (This will take a few minutes to complete):
java -jar BuildTools.jar --rev 1.19.1 --remapped
Install BuildTools to compile NoEncryption for 1.19.2
- Place the downloaded
BuildTools.jar
into it's own folder. - Open a terminal in the newly created folder's directory
- Run the command below to start the install process (This will take a few minutes to complete):
java -jar BuildTools.jar --rev 1.19.2 --remapped
Install BuildTools to compile NoEncryption for 1.19.3
- Place the downloaded
BuildTools.jar
into it's own folder. - Open a terminal in the newly created folder's directory
- Run the command below to start the install process (This will take a few minutes to complete):
java -jar BuildTools.jar --rev 1.19.3 --remapped
BuildTools is not required to compile the Reflection version of NoEncryption.
Cloning and Building NoEncryption
To locally clone the NoEncryption repository to your local file system, you can use Git to clone the repository with git clone https://github.com/Doclic/NoEncryption
, or by downloading the ZIP file for the main branch.
After cloning NoEncryption, you can build the plugin through Maven using the following commands:
Building All Modules in NoEncryption (Requires all versions of BuildTools above)
- Open the cloned NoEncryption folder in a terminal window.
- Run the following command to download the needed dependencies: (You should only need to run this once)
mvn clean install
- After the above command completes, run the following command to build the JAR files:
mvn clean package
- After the above command completes, a new
target
folder will be created. - Inside the
target
folder will be multiple JAR files. The JAR file that should be used isNoEncryption-MODULE-VERSION.jar
. Do not use JAR files starting/ending withoriginal-
,-remapped.jar
, or-remapped-obf.jar
.
How can I support NoEncryption?
We do not ask you for your money, or for your contributions as support. The kind of support that helps us is spreading the word of NoEncryption, and how it can prevent your servers from chat reports. Chat reports can be abused in favor of spammers and DDOSers who will raid a server with bots to spam-report a user's message. Before 1.19, chat messages were not monitored by Mojang/Microsoft, and were not reportable. After the 1.19 update, chat messages were being sent to Mojang/Microsoft servers for signatures. We believe this violates the privacy of a player, and so we are taking action against it. What we ask for is your help in spreading the word, and the plugin name out.