From c2ecaaa171fa31fba35a7cbb22025f1d9c551121 Mon Sep 17 00:00:00 2001 From: Daniel Saukel Date: Sun, 25 Apr 2021 13:54:12 +0200 Subject: [PATCH] Prevent /dxl group join if group is in a dungeon; resolves #1017 --- .../java/de/erethon/dungeonsxl/command/GroupCommand.java | 5 +++++ .../src/main/java/de/erethon/dungeonsxl/config/DMessage.java | 1 + core/src/main/resources/languages/english.yml | 1 + core/src/main/resources/languages/french.yml | 1 + core/src/main/resources/languages/german.yml | 1 + 5 files changed, 9 insertions(+) diff --git a/core/src/main/java/de/erethon/dungeonsxl/command/GroupCommand.java b/core/src/main/java/de/erethon/dungeonsxl/command/GroupCommand.java index bff89b9f..a55c0a99 100644 --- a/core/src/main/java/de/erethon/dungeonsxl/command/GroupCommand.java +++ b/core/src/main/java/de/erethon/dungeonsxl/command/GroupCommand.java @@ -200,6 +200,11 @@ public class GroupCommand extends DCommand { return; } + if (dGroup.isPlaying()) { + MessageUtil.sendMessage(sender, DMessage.ERROR_GROUP_IS_PLAYING.getMessage()); + return; + } + if (!dGroup.getInvitedPlayers().contains(player) && !DPermission.hasPermission(player, DPermission.BYPASS)) { MessageUtil.sendMessage(sender, DMessage.ERROR_NOT_INVITED.getMessage(args[2])); return; diff --git a/core/src/main/java/de/erethon/dungeonsxl/config/DMessage.java b/core/src/main/java/de/erethon/dungeonsxl/config/DMessage.java index 3be935cb..9adb7506 100644 --- a/core/src/main/java/de/erethon/dungeonsxl/config/DMessage.java +++ b/core/src/main/java/de/erethon/dungeonsxl/config/DMessage.java @@ -112,6 +112,7 @@ public enum DMessage implements Message { ERROR_DISPENSER("error.dispenser"), ERROR_DROP("error.drop"), ERROR_ENDERCHEST("error.enderchest"), + ERROR_GROUP_IS_PLAYING("error.groupIsPlaying"), ERROR_IN_GROUP("error.inGroup"), ERROR_JOIN_GROUP("error.joinGroup"), ERROR_LEAVE_DUNGEON("error.leaveDungeon"), diff --git a/core/src/main/resources/languages/english.yml b/core/src/main/resources/languages/english.yml index 50e4b099..6d699a10 100644 --- a/core/src/main/resources/languages/english.yml +++ b/core/src/main/resources/languages/english.yml @@ -128,6 +128,7 @@ error: dispenser: "&4You cannot access this dispenser." drop: "&4You cannot drop safe items" enderchest: "&4You cannot use an enderchest while in a dungeon." + groupIsPlaying: "&4This group is already in a dungeon." inGroup: "&4The player &6&v1&4 is already member of a group." joinGroup: "&4You have to join a group first." leaveDungeon: "&4You have to leave your current dungeon first." diff --git a/core/src/main/resources/languages/french.yml b/core/src/main/resources/languages/french.yml index 687f90e3..a1f990e3 100644 --- a/core/src/main/resources/languages/french.yml +++ b/core/src/main/resources/languages/french.yml @@ -128,6 +128,7 @@ error: dispenser: "&4Vous ne pouvez accéder à ce distributeur." drop: "&4Vous ne pouvez pas lâcher cet objet protégé." enderchest: "&4Vous ne pouvez utiliser un coffre de l'ender quand vous êtes dans un donjon." + groupIsPlaying: "&4Ce groupe est déjà dans un donjon." inGroup: "&4Le joueur &6&v1&4 est déjà membre d'un groupe." joinGroup: "&4Vous devez d'abord rejoindre un groupe." leaveDungeon: "&4Vous devez d'abord quitter votre donjon actuel." diff --git a/core/src/main/resources/languages/german.yml b/core/src/main/resources/languages/german.yml index 1c37c211..34e3c2df 100644 --- a/core/src/main/resources/languages/german.yml +++ b/core/src/main/resources/languages/german.yml @@ -128,6 +128,7 @@ error: dispenser: "&4Du kannst auf diesen Werfer nicht zugreifen." drop: "&4Du kannst keine gesicherten Items wegwerfen." enderchest: "&4Du kannst im Dungeon keine Endertruhen benutzen." + groupIsPlaying: "&4Diese Gruppe ist schon in einem Dungeon." inGroup: "&4Der Spieler &6&v1&4 ist schon Mitglied einer Gruppe." joinGroup: "&4Du musst zuerst einer Gruppe beitreten." leaveDungeon: "&4Du musst zuerst Deinen Dungeon verlassen."