Grief Prevention

Grief Prevention

1M Downloads

Caps vs lowercase commands not working

voigtman opened this issue · 6 comments

commented

Observed Behavior

Since updating to 1.19 I have noticed here in the bug list various people reporting commands have stopped working and players have also been reporting gp commands are not working on my own server. I conducted my own investigation and I believe I have discovered the issue: Capitalized letters are not being recognized and/or accepted.

/claim works
/Claim does not work

/adminclaims works
/AdminClaims does not work

/claimexplosions works
/ClaimExplosions does not work

and on and on...

Everything worked as expected until about 1.19.1 or 1.19.2 when mojang rolled out this change to messages.

Expected Behavior

/Claim (etc) should work as /claim (etc)

Reproduction steps

Step 1: Type commands as described in tutorial

Stack trace or error log

N/A

SERVER: 

[12:07:11] [Server thread/INFO]: Mister_Jason issued server command: /AdminClaims
[12:07:21] [Server thread/INFO]: Mister_Jason issued server command: /adminclaims

Game Console:

(typed: /AdminClaims)
12:03:55.414 ehq Render thread [System] [CHAT] Unknown or incomplete command, see below for error
12:03:55.414 ehq Render thread [System] [CHAT] AdminClaims<--[HERE]

(typed: /adminclaims)
12:03:57.658 ehq Render thread [System] [CHAT] Administrative claims mode active.  Any claims created will be free and editable by other administrators.

Server version

paper 1.19.2 (130)

GriefPrevention version

16.18

Configuration

# Default values are perfect for most servers.  If you want to customize and have a question, look for the answer here first: http://dev.bukkit.org/bukkit-plugins/grief-prevention/pages/setup-and-configuration/

GriefPrevention:
  SeaLevelOverrides:
    VanillaHazelnut: -1
    VanillaHazelnut_nether: -1
    VanillaHazelnut_the_end: -1
  Claims:
    Mode:
      VanillaHazelnut_nether: Survival
      VanillaHazelnut_the_end: Survival
      VanillaHazelnut: Survival
    PreventGlobalMonsterEggs: false
    PreventTheft: true
    ProtectCreatures: true
    PreventButtonsSwitches: true
    LockWoodenDoors: true
    LockTrapDoors: true
    LockFenceGates: true
    EnderPearlsRequireAccessTrust: true
    RaidTriggersRequireBuildTrust: true
    ProtectHorses: true
    ProtectDonkeys: true
    ProtectLlamas: true
    InitialBlocks: 2500
    Claim Blocks Accrued Per Hour:
      Default: 600
    Max Accrued Claim Blocks:
      Default: 100000000
    Accrued Idle Threshold: 0
    AccruedIdlePercent: 50
    AbandonReturnRatio: 1.0
    AutomaticNewPlayerClaimsRadius: 4
    AutomaticNewPlayerClaimsRadiusMinimum: 0
    ExtendIntoGroundDistance: 5
    MinimumWidth: 3
    MinimumArea: 9
    MaximumDepth: 0
    InvestigationTool: STICK
    ModificationTool: GOLDEN_SHOVEL
    Expiration:
      ChestClaimDays: 365
      UnusedClaimDays: 1095
      AllClaims:
        DaysInactive: 365
        ExceptWhenOwnerHasTotalClaimBlocks: 5000
        ExceptWhenOwnerHasBonusClaimBlocks: 5000
      AutomaticNatureRestoration:
        SurvivalWorlds: true
    AllowTrappedInAdminClaims: false
    MaximumNumberOfClaimsPerPlayer: 0
    CreationRequiresWorldGuardBuildPermission: true
    VillagerTradingRequiresPermission: false
    CommandsRequiringAccessTrust: /sethome;/setwarp;/warp claim;/warp move
    DeliverManuals: true
    ManualDeliveryDelaySeconds: 30
    RavagersBreakBlocks: false
    FireSpreadsInClaims: false
    FireDamagesInClaims: false
    LecternReadingRequiresAccessTrust: true
  Spam:
    Enabled: false
    LoginCooldownSeconds: 60
    LoginLogoutNotificationsPerMinute: 5
    ChatSlashCommands: /me;/global;/local
    WhisperSlashCommands: /tell;/pm;/r;/whisper;/msg
    WarningMessage: Too much talking not enough crafting!
    BanOffenders: false
    BanMessage: Banned for spam.
    AllowedIpAddresses: 1.2.3.4; 5.6.7.8
    DeathMessageCooldownSeconds: 120
    Logout Message Delay In Seconds: 0
  PvP:
    RulesEnabledInWorld:
      VanillaHazelnut: true
      VanillaHazelnut_nether: true
      VanillaHazelnut_the_end: true
    ProtectFreshSpawns: true
    PunishLogout: true
    CombatTimeoutSeconds: 15
    AllowCombatItemDrop: true
    BlockedSlashCommands: /home;/vanish;/spawn;/tpa;/wwarp;/warp;/help
    ProtectPlayersInLandClaims:
      PlayerOwnedClaims: true
      AdministrativeClaims: true
      AdministrativeSubdivisions: true
    AllowLavaDumpingNearOtherPlayers:
      PvPWorlds: true
      NonPvPWorlds: false
    AllowFlintAndSteelNearOtherPlayers:
      PvPWorlds: true
      NonPvPWorlds: false
    ProtectPetsOutsideLandClaims: true
  Economy:
    ClaimBlocksMaxBonus: 0
    ClaimBlocksPurchaseCost: 0.0
    ClaimBlocksSellValue: 0.0
  ProtectItemsDroppedOnDeath:
    PvPWorlds: true
    NonPvPWorlds: false
  BlockLandClaimExplosions: true
  BlockSurfaceCreeperExplosions: false
  BlockSurfaceOtherExplosions: false
  LimitSkyTrees: true
  LimitTreeGrowth: false
  PistonMovement: EVERYWHERE_SIMPLE
  PistonExplosionSound: true
  FireSpreads: true
  FireDestroys: true
  AdminsGetWhispers: true
  AdminsGetSignNotifications: true
  VisualizationAntiCheatCompatMode: false
  SmartBan: false
  Mute New Players Using Banned Words: false
  MaxPlayersPerIpAddress: 5
  SilenceBans: true
  Siege:
    Worlds: []
    BreakableBlocks:
    - DIRT
    - GRASS_BLOCK
    - GRASS
    - FERN
    - DEAD_BUSH
    - COBBLESTONE
    - COBBLESTONE_SLAB
    - COBBLESTONE_STAIRS
    - GRAVEL
    - SAND
    - GLASS
    - GLASS_PANE
    - OAK_PLANKS
    - SPRUCE_PLANKS
    - BIRCH_PLANKS
    - JUNGLE_PLANKS
    - ACACIA_PLANKS
    - DARK_OAK_PLANKS
    - WHITE_WOOL
    - ORANGE_WOOL
    - MAGENTA_WOOL
    - LIGHT_BLUE_WOOL
    - YELLOW_WOOL
    - LIME_WOOL
    - PINK_WOOL
    - GRAY_WOOL
    - LIGHT_GRAY_WOOL
    - CYAN_WOOL
    - PURPLE_WOOL
    - BLUE_WOOL
    - BROWN_WOOL
    - GREEN_WOOL
    - RED_WOOL
    - BLACK_WOOL
    - SNOW
    DoorsOpenDelayInSeconds: 300
    CooldownEndInMinutes: 20
  EndermenMoveBlocks: false
  SilverfishBreakBlocks: false
  CreaturesTrampleCrops: false
  RabbitsEatCrops: true
  HardModeZombiesBreakDoors: false
  Database:
    URL: ''
    UserName: ''
    Password: ''
  UseBanCommand: false
  BanCommandPattern: ban %name% %reason%
  Advanced:
    fixNegativeClaimblockAmounts: true
    ClaimExpirationCheckRate: 60
    OfflinePlayer_cache_days: 90
  Abridged Logs:
    Days To Keep: 7
    Included Entry Types:
      Social Activity: true
      Suspicious Activity: true
      Administrative Activity: false
      Debug: false
      Muted Chat Messages: false

Plugin list

No response

Running without GriefPrevention

  • I attempted running the server without GriefPrevention installed.
  • The problem does not occur when GriefPrevention is removed from the server.

Running with only GriefPrevention

  • I attempted running only GriefPrevention on the server.
  • The issue still occurs when GriefPrevention is the only plugin running.

Running on a fresh, clean server installation

  • I attempted testing for the issue on a new server.
  • The issue still occurs on a new server.

Using unmodified client

  • I attempted testing for the issue with the vanilla client.
  • The issue still occurs when using the vanilla client.

We appreciate you taking the time to fill out a bug report!

  • I searched for similar issues before submitting this bug report.
commented

Sounds like an issue that should probably be reported to Spigot. Spigot lowercases the commands when they are entered into the command map but is then not lowercasing the commands received from the client. GP recommends the case it uses declaring the commands, which Spigot then "breaks." Likely a Mojang change at the heart of it, but not something we can easily address, especially if players are already accustomed to capitalizing.

commented

Sounds like an issue that should probably be reported to Spigot. Spigot lowercases the commands when they are entered into the command map but is then not lowercasing the commands received from the client. GP recommends the case it uses declaring the commands, which Spigot then "breaks." Likely a Mojang change at the heart of it, but not something we can easily address, especially if players are already accustomed to capitalizing.

https://hub.spigotmc.org/jira/browse/SPIGOT-7149
"Relates to SPIGOT-7126 and MC-523. Unresolvable due to how player commands are now handled as a result of signed command arguments."

😢

commented

Seems like a cop-out reply on Spigot's end tbh, there's no reason that chat signing should affect passing the command to the correct handler - the text input is still given. It's just less easy. Either way, if that's the official stance, going to reopen this because we should change GP's language to suggest the functioning versions of commands.

commented

Hey,

just wanted to add a thing:

Could it be that the command "abandonallclaims" relies the case sensitive command "AbandonAllClaims"?
Everytime I enter "abandonallclaims" it asks me to confirm with "AbandonAllClaims" with upper case letters. Of course that does not work and when I enter the command with all lowercase again, it just asks me for comfirmation again.

commented

Could it be that the command "abandonallclaims" relies the case sensitive command "AbandonAllClaims"? Everytime I enter "abandonallclaims" it asks me to confirm with "AbandonAllClaims" with upper case letters. Of course that does not work and when I enter the command with all lowercase again, it just asks me for comfirmation again.

You're missing the "confirm" parameter. /abandonallclaims confirm is functional.

commented

Could it be that the command "abandonallclaims" relies the case sensitive command "AbandonAllClaims"? Everytime I enter "abandonallclaims" it asks me to confirm with "AbandonAllClaims" with upper case letters. Of course that does not work and when I enter the command with all lowercase again, it just asks me for comfirmation again.

You're missing the "confirm" parameter. /abandonallclaims confirm is functional.

Ah god damn, for whatever reason the "confirm" is stripped out of the messages file on my end so I did not notice.
Thanks for pointing that out.