From 5b052c170fa60b44e6c4baaf3a17b27b42978902 Mon Sep 17 00:00:00 2001 From: drtshock Date: Fri, 17 Apr 2015 16:05:37 -0500 Subject: [PATCH] Per gamemode permissions. Adds #16. --- .../earth2me/essentials/commands/Commandgamemode.java | 10 ++++++++++ Essentials/src/messages.properties | 3 +++ Essentials/src/messages_cs.properties | 1 + Essentials/src/messages_da.properties | 1 + Essentials/src/messages_de.properties | 1 + Essentials/src/messages_en.properties | 1 + Essentials/src/messages_es.properties | 1 + Essentials/src/messages_et.properties | 1 + Essentials/src/messages_fi.properties | 1 + Essentials/src/messages_fr.properties | 1 + Essentials/src/messages_hu.properties | 1 + Essentials/src/messages_it.properties | 1 + Essentials/src/messages_ko.properties | 1 + Essentials/src/messages_lt.properties | 1 + Essentials/src/messages_nl.properties | 1 + Essentials/src/messages_pl.properties | 1 + Essentials/src/messages_pt.properties | 1 + Essentials/src/messages_pt_BR.properties | 1 + Essentials/src/messages_ro.properties | 1 + Essentials/src/messages_ru.properties | 1 + Essentials/src/messages_sv.properties | 1 + Essentials/src/messages_tr.properties | 1 + Essentials/src/messages_zh.properties | 1 + Essentials/src/messages_zh_HK.properties | 1 + Essentials/src/messages_zh_TW.properties | 1 + 25 files changed, 36 insertions(+) diff --git a/Essentials/src/com/earth2me/essentials/commands/Commandgamemode.java b/Essentials/src/com/earth2me/essentials/commands/Commandgamemode.java index d7d76e503..90c245720 100644 --- a/Essentials/src/com/earth2me/essentials/commands/Commandgamemode.java +++ b/Essentials/src/com/earth2me/essentials/commands/Commandgamemode.java @@ -65,6 +65,11 @@ public class Commandgamemode extends EssentialsCommand { throw new NotEnoughArgumentsException(tl("gameModeInvalid")); } + if(sender.isPlayer() && canChangeToMode(sender.getPlayer(), gameMode)) { + sender.sendMessage(tl("cantGamemode", gameMode.name())); + return; + } + boolean skipHidden = sender.isPlayer() && !ess.getUser(sender.getPlayer()).canInteractVanished(); boolean foundUser = false; final List matchedPlayers = server.matchPlayer(name); @@ -82,6 +87,11 @@ public class Commandgamemode extends EssentialsCommand { } } + // essentials.gamemode will let them change to any but essentials.gamemode.survival would only let them change to survival. + private boolean canChangeToMode(Player player, GameMode to) { + return player.hasPermission("essentials.gamemode") || player.hasPermission("essentials.gamemode." + to.name().toLowerCase()); + } + private GameMode matchGameMode(String modeString) throws NotEnoughArgumentsException { GameMode mode = null; if (modeString.equalsIgnoreCase("gmc") || modeString.equalsIgnoreCase("egmc") || modeString.contains("creat") || modeString.equalsIgnoreCase("1") || modeString.equalsIgnoreCase("c")) { diff --git a/Essentials/src/messages.properties b/Essentials/src/messages.properties index 2d438cf3f..304642cc8 100644 --- a/Essentials/src/messages.properties +++ b/Essentials/src/messages.properties @@ -555,3 +555,6 @@ mailMessage={0} whoisTempBanned=\u00a76 - Ban expires:\u00a7r {0} playerTempBanned=\u00a76Player \u00a7c{0}\u00a76 temporarily banned \u00a7c{1}\u00a76 for \u00a7c{2}\u00a76: \u00a7c{3}\u00a76. mailFormat=\u00a76[\u00a7r{0}\u00a76] \u00a7r{1} +cantGamemode=\u00a74You do not have permission to change to gamemode {0} +createKit=\u00a74/createkit +createdKit=\u00a76Created kit \u00a7c{0} \u00a76with \u00a7c{1} \u00a76entries. \ No newline at end of file diff --git a/Essentials/src/messages_cs.properties b/Essentials/src/messages_cs.properties index 26c3e6fa4..068709289 100644 --- a/Essentials/src/messages_cs.properties +++ b/Essentials/src/messages_cs.properties @@ -556,3 +556,4 @@ mailMessage={0} whoisTempBanned=\u00a76 - Ban expires:\u00a7r {0} playerTempBanned=\u00a76Player \u00a7c{0}\u00a76 temporarily banned \u00a7c{1}\u00a76 for \u00a7c{2}\u00a76: \u00a7c{3}\u00a76. mailFormat=\u00a76[\u00a7r{0}\u00a76] \u00a7r{1} +cantGamemode=\u00a74You do not have permission to change to gamemode {0} \ No newline at end of file diff --git a/Essentials/src/messages_da.properties b/Essentials/src/messages_da.properties index 86a5ef345..73953e325 100644 --- a/Essentials/src/messages_da.properties +++ b/Essentials/src/messages_da.properties @@ -556,3 +556,4 @@ mailMessage={0} whoisTempBanned=\u00a76 - Ban expires:\u00a7r {0} playerTempBanned=\u00a76Player \u00a7c{0}\u00a76 temporarily banned \u00a7c{1}\u00a76 for \u00a7c{2}\u00a76: \u00a7c{3}\u00a76. mailFormat=\u00a76[\u00a7r{0}\u00a76] \u00a7r{1} +cantGamemode=\u00a74You do not have permission to change to gamemode {0} \ No newline at end of file diff --git a/Essentials/src/messages_de.properties b/Essentials/src/messages_de.properties index fa4742ae6..ae31f7052 100644 --- a/Essentials/src/messages_de.properties +++ b/Essentials/src/messages_de.properties @@ -556,3 +556,4 @@ mailMessage={0} whoisTempBanned=\u00a76 - Ban expires:\u00a7r {0} playerTempBanned=\u00a76Player \u00a7c{0}\u00a76 temporarily banned \u00a7c{1}\u00a76 for \u00a7c{2}\u00a76: \u00a7c{3}\u00a76. mailFormat=\u00a76[\u00a7r{0}\u00a76] \u00a7r{1} +cantGamemode=\u00a74You do not have permission to change to gamemode {0} \ No newline at end of file diff --git a/Essentials/src/messages_en.properties b/Essentials/src/messages_en.properties index 2d438cf3f..ae7166c3b 100644 --- a/Essentials/src/messages_en.properties +++ b/Essentials/src/messages_en.properties @@ -555,3 +555,4 @@ mailMessage={0} whoisTempBanned=\u00a76 - Ban expires:\u00a7r {0} playerTempBanned=\u00a76Player \u00a7c{0}\u00a76 temporarily banned \u00a7c{1}\u00a76 for \u00a7c{2}\u00a76: \u00a7c{3}\u00a76. mailFormat=\u00a76[\u00a7r{0}\u00a76] \u00a7r{1} +cantGamemode=\u00a74You do not have permission to change to gamemode {0} \ No newline at end of file diff --git a/Essentials/src/messages_es.properties b/Essentials/src/messages_es.properties index 74992540f..98b0051f5 100644 --- a/Essentials/src/messages_es.properties +++ b/Essentials/src/messages_es.properties @@ -556,3 +556,4 @@ mailMessage={0} whoisTempBanned=\u00a76 - Ban expires:\u00a7r {0} playerTempBanned=\u00a76Player \u00a7c{0}\u00a76 temporarily banned \u00a7c{1}\u00a76 for \u00a7c{2}\u00a76: \u00a7c{3}\u00a76. mailFormat=\u00a76[\u00a7r{0}\u00a76] \u00a7r{1} +cantGamemode=\u00a74You do not have permission to change to gamemode {0} \ No newline at end of file diff --git a/Essentials/src/messages_et.properties b/Essentials/src/messages_et.properties index ac9e9864d..da010045b 100644 --- a/Essentials/src/messages_et.properties +++ b/Essentials/src/messages_et.properties @@ -556,3 +556,4 @@ mailMessage={0} whoisTempBanned=\u00a76 - Ban expires:\u00a7r {0} playerTempBanned=\u00a76Player \u00a7c{0}\u00a76 temporarily banned \u00a7c{1}\u00a76 for \u00a7c{2}\u00a76: \u00a7c{3}\u00a76. mailFormat=\u00a76[\u00a7r{0}\u00a76] \u00a7r{1} +cantGamemode=\u00a74You do not have permission to change to gamemode {0} \ No newline at end of file diff --git a/Essentials/src/messages_fi.properties b/Essentials/src/messages_fi.properties index da5451d0d..f52d7835c 100644 --- a/Essentials/src/messages_fi.properties +++ b/Essentials/src/messages_fi.properties @@ -556,3 +556,4 @@ mailMessage={0} whoisTempBanned=\u00a76 - Ban expires:\u00a7r {0} playerTempBanned=\u00a76Player \u00a7c{0}\u00a76 temporarily banned \u00a7c{1}\u00a76 for \u00a7c{2}\u00a76: \u00a7c{3}\u00a76. mailFormat=\u00a76[\u00a7r{0}\u00a76] \u00a7r{1} +cantGamemode=\u00a74You do not have permission to change to gamemode {0} \ No newline at end of file diff --git a/Essentials/src/messages_fr.properties b/Essentials/src/messages_fr.properties index a557fa366..74affff77 100644 --- a/Essentials/src/messages_fr.properties +++ b/Essentials/src/messages_fr.properties @@ -556,3 +556,4 @@ mailMessage={0} whoisTempBanned=\u00a76 - Ban expires:\u00a7r {0} playerTempBanned=\u00a76Player \u00a7c{0}\u00a76 temporarily banned \u00a7c{1}\u00a76 for \u00a7c{2}\u00a76: \u00a7c{3}\u00a76. mailFormat=\u00a76[\u00a7r{0}\u00a76] \u00a7r{1} +cantGamemode=\u00a74You do not have permission to change to gamemode {0} \ No newline at end of file diff --git a/Essentials/src/messages_hu.properties b/Essentials/src/messages_hu.properties index 0ecb75fab..b3bc11ace 100644 --- a/Essentials/src/messages_hu.properties +++ b/Essentials/src/messages_hu.properties @@ -556,3 +556,4 @@ mailMessage={0} whoisTempBanned=\u00a76 - Ban expires:\u00a7r {0} playerTempBanned=\u00a76Player \u00a7c{0}\u00a76 temporarily banned \u00a7c{1}\u00a76 for \u00a7c{2}\u00a76: \u00a7c{3}\u00a76. mailFormat=\u00a76[\u00a7r{0}\u00a76] \u00a7r{1} +cantGamemode=\u00a74You do not have permission to change to gamemode {0} \ No newline at end of file diff --git a/Essentials/src/messages_it.properties b/Essentials/src/messages_it.properties index 444173292..7b467655c 100644 --- a/Essentials/src/messages_it.properties +++ b/Essentials/src/messages_it.properties @@ -556,3 +556,4 @@ mailMessage={0} whoisTempBanned=\u00a76 - Ban expires:\u00a7r {0} playerTempBanned=\u00a76Player \u00a7c{0}\u00a76 temporarily banned \u00a7c{1}\u00a76 for \u00a7c{2}\u00a76: \u00a7c{3}\u00a76. mailFormat=\u00a76[\u00a7r{0}\u00a76] \u00a7r{1} +cantGamemode=\u00a74You do not have permission to change to gamemode {0} \ No newline at end of file diff --git a/Essentials/src/messages_ko.properties b/Essentials/src/messages_ko.properties index 8f47f78ed..9856488a0 100644 --- a/Essentials/src/messages_ko.properties +++ b/Essentials/src/messages_ko.properties @@ -556,3 +556,4 @@ mailMessage={0} whoisTempBanned=\u00a76 - Ban expires:\u00a7r {0} playerTempBanned=\u00a76Player \u00a7c{0}\u00a76 temporarily banned \u00a7c{1}\u00a76 for \u00a7c{2}\u00a76: \u00a7c{3}\u00a76. mailFormat=\u00a76[\u00a7r{0}\u00a76] \u00a7r{1} +cantGamemode=\u00a74You do not have permission to change to gamemode {0} \ No newline at end of file diff --git a/Essentials/src/messages_lt.properties b/Essentials/src/messages_lt.properties index 3070b45c3..7ac534ceb 100644 --- a/Essentials/src/messages_lt.properties +++ b/Essentials/src/messages_lt.properties @@ -556,3 +556,4 @@ mailMessage={0} whoisTempBanned=\u00a76 - Ban expires:\u00a7r {0} playerTempBanned=\u00a76Player \u00a7c{0}\u00a76 temporarily banned \u00a7c{1}\u00a76 for \u00a7c{2}\u00a76: \u00a7c{3}\u00a76. mailFormat=\u00a76[\u00a7r{0}\u00a76] \u00a7r{1} +cantGamemode=\u00a74You do not have permission to change to gamemode {0} \ No newline at end of file diff --git a/Essentials/src/messages_nl.properties b/Essentials/src/messages_nl.properties index 51c3c6936..8b19b91b2 100644 --- a/Essentials/src/messages_nl.properties +++ b/Essentials/src/messages_nl.properties @@ -556,3 +556,4 @@ mailMessage={0} whoisTempBanned=\u00a76 - Ban expires:\u00a7r {0} playerTempBanned=\u00a76Player \u00a7c{0}\u00a76 temporarily banned \u00a7c{1}\u00a76 for \u00a7c{2}\u00a76: \u00a7c{3}\u00a76. mailFormat=\u00a76[\u00a7r{0}\u00a76] \u00a7r{1} +cantGamemode=\u00a74You do not have permission to change to gamemode {0} \ No newline at end of file diff --git a/Essentials/src/messages_pl.properties b/Essentials/src/messages_pl.properties index f402a0e99..889c776c6 100644 --- a/Essentials/src/messages_pl.properties +++ b/Essentials/src/messages_pl.properties @@ -556,3 +556,4 @@ mailMessage={0} whoisTempBanned=\u00a76 - Ban expires:\u00a7r {0} playerTempBanned=\u00a76Player \u00a7c{0}\u00a76 temporarily banned \u00a7c{1}\u00a76 for \u00a7c{2}\u00a76: \u00a7c{3}\u00a76. mailFormat=\u00a76[\u00a7r{0}\u00a76] \u00a7r{1} +cantGamemode=\u00a74You do not have permission to change to gamemode {0} \ No newline at end of file diff --git a/Essentials/src/messages_pt.properties b/Essentials/src/messages_pt.properties index bcb1fb7f0..057be1b51 100644 --- a/Essentials/src/messages_pt.properties +++ b/Essentials/src/messages_pt.properties @@ -556,3 +556,4 @@ mailMessage={0} whoisTempBanned=\u00a76 - Ban expires:\u00a7r {0} playerTempBanned=\u00a76Player \u00a7c{0}\u00a76 temporarily banned \u00a7c{1}\u00a76 for \u00a7c{2}\u00a76: \u00a7c{3}\u00a76. mailFormat=\u00a76[\u00a7r{0}\u00a76] \u00a7r{1} +cantGamemode=\u00a74You do not have permission to change to gamemode {0} \ No newline at end of file diff --git a/Essentials/src/messages_pt_BR.properties b/Essentials/src/messages_pt_BR.properties index d989429d5..65de6ea67 100644 --- a/Essentials/src/messages_pt_BR.properties +++ b/Essentials/src/messages_pt_BR.properties @@ -556,3 +556,4 @@ mailMessage={0} whoisTempBanned=\u00a76 - Ban expires:\u00a7r {0} playerTempBanned=\u00a76Player \u00a7c{0}\u00a76 temporarily banned \u00a7c{1}\u00a76 for \u00a7c{2}\u00a76: \u00a7c{3}\u00a76. mailFormat=\u00a76[\u00a7r{0}\u00a76] \u00a7r{1} +cantGamemode=\u00a74You do not have permission to change to gamemode {0} \ No newline at end of file diff --git a/Essentials/src/messages_ro.properties b/Essentials/src/messages_ro.properties index 66341ec91..efdf6c96c 100644 --- a/Essentials/src/messages_ro.properties +++ b/Essentials/src/messages_ro.properties @@ -556,3 +556,4 @@ mailMessage={0} whoisTempBanned=\u00a76 - Ban expires:\u00a7r {0} playerTempBanned=\u00a76Player \u00a7c{0}\u00a76 temporarily banned \u00a7c{1}\u00a76 for \u00a7c{2}\u00a76: \u00a7c{3}\u00a76. mailFormat=\u00a76[\u00a7r{0}\u00a76] \u00a7r{1} +cantGamemode=\u00a74You do not have permission to change to gamemode {0} \ No newline at end of file diff --git a/Essentials/src/messages_ru.properties b/Essentials/src/messages_ru.properties index af4e222d2..f1dd5b180 100644 --- a/Essentials/src/messages_ru.properties +++ b/Essentials/src/messages_ru.properties @@ -556,3 +556,4 @@ mailMessage={0} whoisTempBanned=\u00a76 - Ban expires:\u00a7r {0} playerTempBanned=\u00a76Player \u00a7c{0}\u00a76 temporarily banned \u00a7c{1}\u00a76 for \u00a7c{2}\u00a76: \u00a7c{3}\u00a76. mailFormat=\u00a76[\u00a7r{0}\u00a76] \u00a7r{1} +cantGamemode=\u00a74You do not have permission to change to gamemode {0} \ No newline at end of file diff --git a/Essentials/src/messages_sv.properties b/Essentials/src/messages_sv.properties index 4f5a2adda..66702217f 100644 --- a/Essentials/src/messages_sv.properties +++ b/Essentials/src/messages_sv.properties @@ -556,3 +556,4 @@ mailMessage={0} whoisTempBanned=\u00a76 - Ban expires:\u00a7r {0} playerTempBanned=\u00a76Player \u00a7c{0}\u00a76 temporarily banned \u00a7c{1}\u00a76 for \u00a7c{2}\u00a76: \u00a7c{3}\u00a76. mailFormat=\u00a76[\u00a7r{0}\u00a76] \u00a7r{1} +cantGamemode=\u00a74You do not have permission to change to gamemode {0} \ No newline at end of file diff --git a/Essentials/src/messages_tr.properties b/Essentials/src/messages_tr.properties index 898458eb1..29e709da1 100644 --- a/Essentials/src/messages_tr.properties +++ b/Essentials/src/messages_tr.properties @@ -556,3 +556,4 @@ mailMessage={0} whoisTempBanned=\u00a76 - Ban expires:\u00a7r {0} playerTempBanned=\u00a76Player \u00a7c{0}\u00a76 temporarily banned \u00a7c{1}\u00a76 for \u00a7c{2}\u00a76: \u00a7c{3}\u00a76. mailFormat=\u00a76[\u00a7r{0}\u00a76] \u00a7r{1} +cantGamemode=\u00a74You do not have permission to change to gamemode {0} \ No newline at end of file diff --git a/Essentials/src/messages_zh.properties b/Essentials/src/messages_zh.properties index 711f8d71d..7b1bdb03f 100644 --- a/Essentials/src/messages_zh.properties +++ b/Essentials/src/messages_zh.properties @@ -556,3 +556,4 @@ mailMessage={0} whoisTempBanned=\u00a76 - Ban expires:\u00a7r {0} playerTempBanned=\u00a76Player \u00a7c{0}\u00a76 temporarily banned \u00a7c{1}\u00a76 for \u00a7c{2}\u00a76: \u00a7c{3}\u00a76. mailFormat=\u00a76[\u00a7r{0}\u00a76] \u00a7r{1} +cantGamemode=\u00a74You do not have permission to change to gamemode {0} \ No newline at end of file diff --git a/Essentials/src/messages_zh_HK.properties b/Essentials/src/messages_zh_HK.properties index 341373af4..39eb0d9ac 100644 --- a/Essentials/src/messages_zh_HK.properties +++ b/Essentials/src/messages_zh_HK.properties @@ -556,3 +556,4 @@ mailMessage={0} whoisTempBanned=\u00a76 - Ban expires:\u00a7r {0} playerTempBanned=\u00a76Player \u00a7c{0}\u00a76 temporarily banned \u00a7c{1}\u00a76 for \u00a7c{2}\u00a76: \u00a7c{3}\u00a76. mailFormat=\u00a76[\u00a7r{0}\u00a76] \u00a7r{1} +cantGamemode=\u00a74You do not have permission to change to gamemode {0} \ No newline at end of file diff --git a/Essentials/src/messages_zh_TW.properties b/Essentials/src/messages_zh_TW.properties index b49ee4e52..bd916c326 100644 --- a/Essentials/src/messages_zh_TW.properties +++ b/Essentials/src/messages_zh_TW.properties @@ -556,3 +556,4 @@ mailMessage={0} whoisTempBanned=\u00a76 - Ban expires:\u00a7r {0} playerTempBanned=\u00a76Player \u00a7c{0}\u00a76 temporarily banned \u00a7c{1}\u00a76 for \u00a7c{2}\u00a76: \u00a7c{3}\u00a76. mailFormat=\u00a76[\u00a7r{0}\u00a76] \u00a7r{1} +cantGamemode=\u00a74You do not have permission to change to gamemode {0} \ No newline at end of file