mirror of
https://github.com/GeyserMC/Geyser.git
synced 2025-12-19 14:59:27 +00:00
Begin tracking breaking changes
This commit is contained in:
6
BREAKING_CHANGES.md
Normal file
6
BREAKING_CHANGES.md
Normal file
@@ -0,0 +1,6 @@
|
||||
# Overview of breaking changes for THE MERGE
|
||||
|
||||
API
|
||||
|
||||
Functionality
|
||||
- geyser root commands now always have a permission attached to them, which is granted by default
|
||||
@@ -134,7 +134,7 @@ public class GeyserBungeePlugin extends Plugin implements GeyserBootstrap {
|
||||
ExecutionCoordinator.simpleCoordinator(),
|
||||
sourceConverter
|
||||
);
|
||||
this.commandRegistry = new CommandRegistry(geyser, cloud, false); // applying root permission would be a breaking change because we can't register permission defaults
|
||||
this.commandRegistry = new CommandRegistry(geyser, cloud);
|
||||
|
||||
// Big hack - Bungee does not provide us an event to listen to, so schedule a repeating
|
||||
// task that waits for a field to be filled which is set after the plugin enable
|
||||
|
||||
@@ -139,7 +139,7 @@ public class GeyserVelocityPlatform implements GeyserBootstrap, IsolatedPlatform
|
||||
ExecutionCoordinator.simpleCoordinator(),
|
||||
sourceConverter
|
||||
);
|
||||
this.commandRegistry = new CommandRegistry(geyser, cloud, false); // applying root permission would be a breaking change because we can't register permission defaults
|
||||
this.commandRegistry = new CommandRegistry(geyser, cloud);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -104,8 +104,6 @@ public class CommandRegistry implements EventRegistrar {
|
||||
|
||||
protected final GeyserImpl geyser;
|
||||
private final CommandManager<GeyserCommandSource> cloud;
|
||||
private final boolean applyRootPermission;
|
||||
|
||||
/**
|
||||
* Map of Geyser subcommands to their Commands
|
||||
*/
|
||||
@@ -126,28 +124,15 @@ public class CommandRegistry implements EventRegistrar {
|
||||
*/
|
||||
protected final Map<String, TriState> permissionDefaults = new Object2ObjectOpenHashMap<>(13);
|
||||
|
||||
/**
|
||||
* Creates a new CommandRegistry. Does apply a root permission. If undesired, use the other constructor.
|
||||
*/
|
||||
public CommandRegistry(GeyserImpl geyser, CommandManager<GeyserCommandSource> cloud) {
|
||||
this(geyser, cloud, true);
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a new CommandRegistry
|
||||
*
|
||||
* @param geyser the Geyser instance
|
||||
* @param cloud the cloud command manager to register commands to
|
||||
* @param applyRootPermission true if this registry should apply a permission to Geyser and Extension root commands.
|
||||
* This currently exists because we want to retain the root command permission for Spigot,
|
||||
* but don't want to add it yet to platforms like Velocity where we cannot natively
|
||||
* specify a permission default. Doing so will break setups as players would suddenly not
|
||||
* have the required permission to execute any Geyser commands.
|
||||
*/
|
||||
public CommandRegistry(GeyserImpl geyser, CommandManager<GeyserCommandSource> cloud, boolean applyRootPermission) {
|
||||
public CommandRegistry(GeyserImpl geyser, CommandManager<GeyserCommandSource> cloud) {
|
||||
this.geyser = geyser;
|
||||
this.cloud = cloud;
|
||||
this.applyRootPermission = applyRootPermission;
|
||||
|
||||
// register our custom exception handlers
|
||||
ExceptionHandlers.register(cloud);
|
||||
@@ -275,10 +260,8 @@ public class CommandRegistry implements EventRegistrar {
|
||||
private void buildRootCommand(String permission, HelpCommand help) {
|
||||
Builder<GeyserCommandSource> builder = cloud.commandBuilder(help.rootCommand());
|
||||
|
||||
if (applyRootPermission) {
|
||||
builder = builder.permission(permission);
|
||||
permissionDefaults.put(permission, TriState.TRUE);
|
||||
}
|
||||
builder = builder.permission(permission);
|
||||
permissionDefaults.put(permission, TriState.TRUE);
|
||||
|
||||
cloud.command(builder.handler(context -> {
|
||||
GeyserCommandSource source = context.sender();
|
||||
|
||||
Reference in New Issue
Block a user