forked from SteamWar/SteamWar
Add GameModeConfig.Checkers
This commit is contained in:
@@ -101,6 +101,14 @@ public final class GameModeConfig<M, W> {
|
|||||||
*/
|
*/
|
||||||
public final List<String> CheckQuestions;
|
public final List<String> CheckQuestions;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The allowed checkers to check this schematic type denoted by a list of SteamWar ids.
|
||||||
|
* The people need the {@link UserPerm#CHECK} to be able to check though.
|
||||||
|
*
|
||||||
|
* @implSpec {@code []} by default -> denoting every person with {@link UserPerm#CHECK} can check it
|
||||||
|
*/
|
||||||
|
public final List<Integer> Checkers;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Bundle for countdowns during the fight
|
* Bundle for countdowns during the fight
|
||||||
*/
|
*/
|
||||||
@@ -194,6 +202,7 @@ public final class GameModeConfig<M, W> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
CheckQuestions = loader.getStringList("CheckQuestions");
|
CheckQuestions = loader.getStringList("CheckQuestions");
|
||||||
|
Checkers = loader.getIntList("Checkers");
|
||||||
Times = new TimesConfig(loader.with("Times"));
|
Times = new TimesConfig(loader.with("Times"));
|
||||||
// Arena would be here to be in config order but needs Schematic.Size and EnterStages loaded afterwards
|
// Arena would be here to be in config order but needs Schematic.Size and EnterStages loaded afterwards
|
||||||
Schematic = new SchematicConfig<>(loader.with("Schematic"));
|
Schematic = new SchematicConfig<>(loader.with("Schematic"));
|
||||||
|
|||||||
@@ -319,6 +319,7 @@ CHECK_LIST_CHECKING_HOVER=§eTo the reviewer
|
|||||||
CHECK_SCHEMATIC_ALREADY_CHECKING=§cYou are already reviewing a schematic!
|
CHECK_SCHEMATIC_ALREADY_CHECKING=§cYou are already reviewing a schematic!
|
||||||
CHECK_SCHEMATIC_OWN=§cYou cannot review your own schematics.
|
CHECK_SCHEMATIC_OWN=§cYou cannot review your own schematics.
|
||||||
CHECK_SCHEMATIC_OWN_TEAM=§cYou cannot review your team schematics.
|
CHECK_SCHEMATIC_OWN_TEAM=§cYou cannot review your team schematics.
|
||||||
|
CHECK_SCHEMATIC_EVENT=§cYou cannot check the schematic for the event.
|
||||||
CHECK_SCHEMATIC_PREVIOUS=§7{0} from {1}§8: §e{2}
|
CHECK_SCHEMATIC_PREVIOUS=§7{0} from {1}§8: §e{2}
|
||||||
CHECK_INVALID_RANK=§cUnknown schematic rank.
|
CHECK_INVALID_RANK=§cUnknown schematic rank.
|
||||||
CHECK_ABORT=§aThe test operation was canceled!
|
CHECK_ABORT=§aThe test operation was canceled!
|
||||||
|
|||||||
@@ -301,6 +301,7 @@ CHECK_LIST_CHECKING_HOVER=§eZum Prüfer
|
|||||||
CHECK_SCHEMATIC_ALREADY_CHECKING=§cDu prüfst schon eine Schematic!
|
CHECK_SCHEMATIC_ALREADY_CHECKING=§cDu prüfst schon eine Schematic!
|
||||||
CHECK_SCHEMATIC_OWN=§cDu kannst nicht deine eigenen Schematics prüfen.
|
CHECK_SCHEMATIC_OWN=§cDu kannst nicht deine eigenen Schematics prüfen.
|
||||||
CHECK_SCHEMATIC_OWN_TEAM=§cDu kannst nicht Schematics deines Teams prüfen.
|
CHECK_SCHEMATIC_OWN_TEAM=§cDu kannst nicht Schematics deines Teams prüfen.
|
||||||
|
CHECK_SCHEMATIC_EVENT=§cDu kannst die schematic für das Event nicht prüfen.
|
||||||
CHECK_SCHEMATIC_PREVIOUS=§7{0} von {1}§8: §e{2}
|
CHECK_SCHEMATIC_PREVIOUS=§7{0} von {1}§8: §e{2}
|
||||||
CHECK_INVALID_RANK=§cUnbekannter Schematicrang.
|
CHECK_INVALID_RANK=§cUnbekannter Schematicrang.
|
||||||
CHECK_ABORT=§aDer Prüfvorgang wurde abgebrochen!
|
CHECK_ABORT=§aDer Prüfvorgang wurde abgebrochen!
|
||||||
|
|||||||
@@ -21,7 +21,6 @@ package de.steamwar.velocitycore.commands;
|
|||||||
|
|
||||||
import com.velocitypowered.api.proxy.Player;
|
import com.velocitypowered.api.proxy.Player;
|
||||||
import de.steamwar.command.SWCommand;
|
import de.steamwar.command.SWCommand;
|
||||||
import de.steamwar.sql.GameModeConfig;
|
|
||||||
import de.steamwar.linkage.Linked;
|
import de.steamwar.linkage.Linked;
|
||||||
import de.steamwar.messages.Chatter;
|
import de.steamwar.messages.Chatter;
|
||||||
import de.steamwar.messages.Message;
|
import de.steamwar.messages.Message;
|
||||||
@@ -100,17 +99,27 @@ public class CheckCommand extends SWCommand {
|
|||||||
sender.system("CHECK_LIST_HEADER", schematicList.size());
|
sender.system("CHECK_LIST_HEADER", schematicList.size());
|
||||||
|
|
||||||
for (SchematicNode schematic : schematicList) {
|
for (SchematicNode schematic : schematicList) {
|
||||||
|
GameModeConfig<String, String> gameModeConfig = ArenaMode.getBySchemType(schematic.getSchemtype());
|
||||||
CheckSession current = currentSchems.get(schematic.getId());
|
CheckSession current = currentSchems.get(schematic.getId());
|
||||||
|
ClickEvent clickEvent = null;
|
||||||
|
if (gameModeConfig.Checkers.isEmpty() || gameModeConfig.Checkers.contains(sender.user().getId())) {
|
||||||
|
if (current == null) {
|
||||||
|
clickEvent = ClickEvent.runCommand("/check schematic " + schematic.getId());
|
||||||
|
} else {
|
||||||
|
clickEvent = ClickEvent.runCommand("/join " + current.checker.user().getUserName());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (current == null) {
|
if (current == null) {
|
||||||
sender.prefixless("CHECK_LIST_TO_CHECK",
|
sender.prefixless("CHECK_LIST_TO_CHECK",
|
||||||
new Message("CHECK_LIST_TO_CHECK_HOVER"),
|
new Message("CHECK_LIST_TO_CHECK_HOVER"),
|
||||||
ClickEvent.runCommand("/check schematic " + schematic.getId()),
|
clickEvent,
|
||||||
getWaitTime(schematic),
|
getWaitTime(schematic),
|
||||||
schematic.getSchemtype().getKuerzel(), SteamwarUser.get(schematic.getOwner()).getUserName(), schematic.getName());
|
schematic.getSchemtype().getKuerzel(), SteamwarUser.get(schematic.getOwner()).getUserName(), schematic.getName());
|
||||||
} else {
|
} else {
|
||||||
sender.prefixless("CHECK_LIST_CHECKING",
|
sender.prefixless("CHECK_LIST_CHECKING",
|
||||||
new Message("CHECK_LIST_CHECKING_HOVER"),
|
new Message("CHECK_LIST_CHECKING_HOVER"),
|
||||||
ClickEvent.runCommand("/join " + current.checker.user().getUserName()),
|
clickEvent,
|
||||||
getWaitTime(schematic),
|
getWaitTime(schematic),
|
||||||
schematic.getSchemtype().getKuerzel(), SteamwarUser.get(schematic.getOwner()).getUserName(), schematic.getName(), current.checker.user().getUserName());
|
schematic.getSchemtype().getKuerzel(), SteamwarUser.get(schematic.getOwner()).getUserName(), schematic.getName(), current.checker.user().getUserName());
|
||||||
}
|
}
|
||||||
@@ -125,6 +134,11 @@ public class CheckCommand extends SWCommand {
|
|||||||
}
|
}
|
||||||
|
|
||||||
SchematicNode schem = SchematicNode.getSchematicNode(Integer.parseInt(schemID));
|
SchematicNode schem = SchematicNode.getSchematicNode(Integer.parseInt(schemID));
|
||||||
|
GameModeConfig<String, String> gameModeConfig = ArenaMode.getBySchemType(schem.getSchemtype());
|
||||||
|
if (!gameModeConfig.Checkers.isEmpty() && !gameModeConfig.Checkers.contains(sender.user().getId())) {
|
||||||
|
sender.system("CHECK_SCHEMATIC_EVENT");
|
||||||
|
return;
|
||||||
|
}
|
||||||
if(!schem.getSchemtype().check()){
|
if(!schem.getSchemtype().check()){
|
||||||
VelocityCore.getLogger().log(Level.SEVERE, () -> sender.user().getUserName() + " tried to check an uncheckable schematic!");
|
VelocityCore.getLogger().log(Level.SEVERE, () -> sender.user().getUserName() + " tried to check an uncheckable schematic!");
|
||||||
return;
|
return;
|
||||||
|
|||||||
Reference in New Issue
Block a user