forked from SteamWar/SteamWar
Add ActiveMonths to ArenaMode for rotating modes
This commit is contained in:
@@ -22,6 +22,7 @@ package de.steamwar.velocitycore;
|
||||
import de.steamwar.sql.SchematicType;
|
||||
import lombok.Getter;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.*;
|
||||
|
||||
public class ArenaMode extends GameModeConfig {
|
||||
@@ -76,7 +77,7 @@ public class ArenaMode extends GameModeConfig {
|
||||
public static List<String> getAllChatNames(boolean historic) {
|
||||
List<String> chatNames = new LinkedList<>();
|
||||
for(ArenaMode mode : byInternal.values()){
|
||||
if(historic == mode.isHistoric())
|
||||
if(!mode.isNotActive() && historic == mode.isHistoric())
|
||||
chatNames.addAll(mode.getServer().getChatNames());
|
||||
}
|
||||
return chatNames;
|
||||
@@ -94,6 +95,9 @@ public class ArenaMode extends GameModeConfig {
|
||||
@Getter
|
||||
private String config;
|
||||
|
||||
@Getter
|
||||
private List<Integer> ActiveMonths = Collections.emptyList();
|
||||
|
||||
public String hasMap(String map){
|
||||
for(String m : getMaps()) {
|
||||
if(m.equalsIgnoreCase(map))
|
||||
@@ -114,8 +118,10 @@ public class ArenaMode extends GameModeConfig {
|
||||
return getServer().getChatNames().get(0);
|
||||
}
|
||||
|
||||
public boolean withoutChatName(){
|
||||
return getServer().getChatNames().isEmpty();
|
||||
public boolean isNotActive() {
|
||||
if (getServer().getChatNames().isEmpty()) return true;
|
||||
if (ActiveMonths.isEmpty()) return false;
|
||||
return !ActiveMonths.contains(LocalDateTime.now().getMonth().getValue());
|
||||
}
|
||||
|
||||
public String getSchemTypeOrInternalName() {
|
||||
|
||||
@@ -45,7 +45,7 @@ public class FightCommand extends SWCommand {
|
||||
private static void getModes(Chatter sender, String precommand, boolean historic){
|
||||
Component start = Component.empty();
|
||||
for(ArenaMode mode : ArenaMode.getAllModes()){
|
||||
if(mode.withoutChatName() || mode.isHistoric() != historic)
|
||||
if (mode.isNotActive() || mode.isHistoric() != historic)
|
||||
continue;
|
||||
|
||||
String command = precommand + mode.getChatName();
|
||||
|
||||
@@ -49,7 +49,10 @@ public class TypeMappers {
|
||||
return new TypeMapper<>() {
|
||||
@Override
|
||||
public ArenaMode map(Chatter sender, PreviousArguments previousArguments, String s) {
|
||||
return ArenaMode.getByChat(s);
|
||||
ArenaMode arenaMode = ArenaMode.getByChat(s);
|
||||
if (arenaMode.isHistoric() != historic) return null;
|
||||
if (arenaMode.isNotActive()) return null;
|
||||
return arenaMode;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
Reference in New Issue
Block a user