added maintenance mode
This commit is contained in:
parent
f4da7e7674
commit
b2021d5815
@ -18,6 +18,7 @@ import eu.mhsl.craftattack.spawn.appliances.help.Help;
|
|||||||
import eu.mhsl.craftattack.spawn.appliances.hotbarRefill.HotbarRefill;
|
import eu.mhsl.craftattack.spawn.appliances.hotbarRefill.HotbarRefill;
|
||||||
import eu.mhsl.craftattack.spawn.appliances.kick.Kick;
|
import eu.mhsl.craftattack.spawn.appliances.kick.Kick;
|
||||||
import eu.mhsl.craftattack.spawn.appliances.knockDoor.KnockDoor;
|
import eu.mhsl.craftattack.spawn.appliances.knockDoor.KnockDoor;
|
||||||
|
import eu.mhsl.craftattack.spawn.appliances.maintenance.Maintenance;
|
||||||
import eu.mhsl.craftattack.spawn.appliances.outlawed.Outlawed;
|
import eu.mhsl.craftattack.spawn.appliances.outlawed.Outlawed;
|
||||||
import eu.mhsl.craftattack.spawn.appliances.packSelect.PackSelect;
|
import eu.mhsl.craftattack.spawn.appliances.packSelect.PackSelect;
|
||||||
import eu.mhsl.craftattack.spawn.appliances.panicBan.PanicBan;
|
import eu.mhsl.craftattack.spawn.appliances.panicBan.PanicBan;
|
||||||
@ -85,7 +86,8 @@ public final class Main extends JavaPlugin {
|
|||||||
new DoubleDoor(),
|
new DoubleDoor(),
|
||||||
new KnockDoor(),
|
new KnockDoor(),
|
||||||
new PackSelect(),
|
new PackSelect(),
|
||||||
new GlowingBerries()
|
new GlowingBerries(),
|
||||||
|
new Maintenance()
|
||||||
)
|
)
|
||||||
.filter(appliance -> disabledAppliances.stream()
|
.filter(appliance -> disabledAppliances.stream()
|
||||||
.noneMatch(s -> s.equalsIgnoreCase(appliance.getClass().getSimpleName())))
|
.noneMatch(s -> s.equalsIgnoreCase(appliance.getClass().getSimpleName())))
|
||||||
|
@ -72,7 +72,8 @@ public abstract class Appliance {
|
|||||||
*/
|
*/
|
||||||
@NotNull
|
@NotNull
|
||||||
public ConfigurationSection localConfig() {
|
public ConfigurationSection localConfig() {
|
||||||
return Optional.ofNullable(Configuration.cfg.getConfigurationSection(localConfigPath)).orElse(Configuration.cfg);
|
return Optional.ofNullable(Configuration.cfg.getConfigurationSection(localConfigPath))
|
||||||
|
.orElseGet(() -> Configuration.cfg.createSection(localConfigPath));
|
||||||
}
|
}
|
||||||
|
|
||||||
public void onEnable() {
|
public void onEnable() {
|
||||||
|
@ -0,0 +1,43 @@
|
|||||||
|
package eu.mhsl.craftattack.spawn.appliances.maintenance;
|
||||||
|
|
||||||
|
import eu.mhsl.craftattack.spawn.appliance.Appliance;
|
||||||
|
import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand;
|
||||||
|
import eu.mhsl.craftattack.spawn.config.Configuration;
|
||||||
|
import org.bukkit.event.Listener;
|
||||||
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public class Maintenance extends Appliance {
|
||||||
|
private boolean isInMaintenance;
|
||||||
|
private final String configKey = "enabled";
|
||||||
|
|
||||||
|
public Maintenance() {
|
||||||
|
super("maintenance");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onEnable() {
|
||||||
|
this.isInMaintenance = localConfig().getBoolean(configKey, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setState(boolean enabled) {
|
||||||
|
this.isInMaintenance = enabled;
|
||||||
|
localConfig().set(configKey, enabled);
|
||||||
|
Configuration.saveChanges();
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isInMaintenance() {
|
||||||
|
return isInMaintenance;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected @NotNull List<ApplianceCommand<?>> commands() {
|
||||||
|
return List.of(new MaintenanceCommand());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected @NotNull List<Listener> listeners() {
|
||||||
|
return List.of(new PreventMaintenanceJoinListener());
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,22 @@
|
|||||||
|
package eu.mhsl.craftattack.spawn.appliances.maintenance;
|
||||||
|
|
||||||
|
import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand;
|
||||||
|
import org.bukkit.command.Command;
|
||||||
|
import org.bukkit.command.CommandSender;
|
||||||
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
public class MaintenanceCommand extends ApplianceCommand<Maintenance> {
|
||||||
|
public MaintenanceCommand() {
|
||||||
|
super("maintanance");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void execute(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, @NotNull String[] args) throws Exception {
|
||||||
|
Map<String, Boolean> options = Map.of("enable", true, "disable", false);
|
||||||
|
if(args.length != 1 || !options.containsKey(args[0])) throw new Error("Argument 'enable' oder 'disable' gefordert!");
|
||||||
|
getAppliance().setState(options.get(args[0]));
|
||||||
|
sender.sendMessage(String.format("Maintanance: %b", getAppliance().isInMaintenance()));
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,23 @@
|
|||||||
|
package eu.mhsl.craftattack.spawn.appliances.maintenance;
|
||||||
|
|
||||||
|
import eu.mhsl.craftattack.spawn.appliance.ApplianceListener;
|
||||||
|
import eu.mhsl.craftattack.spawn.util.text.DisconnectInfo;
|
||||||
|
import org.bukkit.event.EventHandler;
|
||||||
|
import org.bukkit.event.player.PlayerLoginEvent;
|
||||||
|
|
||||||
|
public class PreventMaintenanceJoinListener extends ApplianceListener<Maintenance> {
|
||||||
|
@EventHandler
|
||||||
|
public void onJoin(PlayerLoginEvent event) {
|
||||||
|
if(!getAppliance().isInMaintenance()) return;
|
||||||
|
if(event.getPlayer().hasPermission("bypassMaintainance")) return;
|
||||||
|
|
||||||
|
DisconnectInfo disconnectInfo = new DisconnectInfo(
|
||||||
|
"Wartunsarbeiten",
|
||||||
|
"Zurzeit können nur Admins dem Server beitreten!",
|
||||||
|
"Bitte warte bis die Warungsarbeiten wieder deaktiviert werden.",
|
||||||
|
event.getPlayer().getUniqueId()
|
||||||
|
);
|
||||||
|
|
||||||
|
event.disallow(PlayerLoginEvent.Result.KICK_OTHER, disconnectInfo.getComponent());
|
||||||
|
}
|
||||||
|
}
|
@ -38,3 +38,4 @@ commands:
|
|||||||
vogelfrei:
|
vogelfrei:
|
||||||
settings:
|
settings:
|
||||||
texturepack:
|
texturepack:
|
||||||
|
maintanance:
|
Loading…
x
Reference in New Issue
Block a user