mirror of
https://github.com/BGHDDevelopment/PlayerBalancer.git
synced 2024-09-19 03:01:18 +02:00
Some more progress, really want to this this out...
This commit is contained in:
parent
6205a61bb0
commit
4071fc130d
@ -13,10 +13,8 @@ import com.jaimemartz.playerbalancer.ping.StatusManager;
|
||||
import com.jaimemartz.playerbalancer.section.SectionManager;
|
||||
import com.jaimemartz.playerbalancer.settings.Settings;
|
||||
import com.jaimemartz.playerbalancer.settings.SettingsProvider;
|
||||
import com.jaimemartz.playerbalancer.settings.types.CheckerProperties;
|
||||
import com.jaimemartz.playerbalancer.settings.types.CommandProperties;
|
||||
import com.jaimemartz.playerbalancer.settings.types.GeneralProperties;
|
||||
import com.jaimemartz.playerbalancer.settings.types.ReconnectorProperties;
|
||||
import com.jaimemartz.playerbalancer.settings.beans.SectionHandler;
|
||||
import com.jaimemartz.playerbalancer.settings.types.*;
|
||||
import lombok.Getter;
|
||||
import net.md_5.bungee.api.ProxyServer;
|
||||
import net.md_5.bungee.api.plugin.Command;
|
||||
@ -56,6 +54,7 @@ public class PlayerBalancer extends Plugin {
|
||||
injector.registerProvider(Settings.class, SettingsProvider.class);
|
||||
|
||||
settings = injector.getSingleton(Settings.class);
|
||||
injector.register(SectionHandler.class, settings.getProperty(SectionsHolder.SECTION_HOLDER));
|
||||
|
||||
Metrics metrics = new Metrics(this);
|
||||
if (this.enable()) {
|
||||
|
@ -1,9 +1,14 @@
|
||||
package com.jaimemartz.playerbalancer.commands;
|
||||
|
||||
import com.jaimemartz.playerbalancer.PlayerBalancer;
|
||||
import com.google.common.collect.Iterables;
|
||||
import com.jaimemartz.playerbalancer.connection.ConnectionIntent;
|
||||
import com.jaimemartz.playerbalancer.section.ServerSection;
|
||||
import com.jaimemartz.playerbalancer.settings.ConfigEntries;
|
||||
import com.jaimemartz.playerbalancer.settings.Settings;
|
||||
import com.jaimemartz.playerbalancer.settings.beans.MapBean;
|
||||
import com.jaimemartz.playerbalancer.settings.types.CommandProperties;
|
||||
import com.jaimemartz.playerbalancer.settings.types.GeneralProperties;
|
||||
import com.jaimemartz.playerbalancer.settings.types.MessageProperties;
|
||||
import com.jaimemartz.playerbalancer.settings.types.SectionsHolder;
|
||||
import com.jaimemartz.playerbalancer.utils.MessageUtils;
|
||||
import net.md_5.bungee.api.ChatColor;
|
||||
import net.md_5.bungee.api.CommandSender;
|
||||
@ -11,16 +16,24 @@ import net.md_5.bungee.api.chat.ComponentBuilder;
|
||||
import net.md_5.bungee.api.config.ServerInfo;
|
||||
import net.md_5.bungee.api.connection.ProxiedPlayer;
|
||||
import net.md_5.bungee.api.plugin.Command;
|
||||
import net.md_5.bungee.config.Configuration;
|
||||
|
||||
import javax.inject.Inject;
|
||||
import java.util.concurrent.Callable;
|
||||
|
||||
public class FallbackCommand extends Command {
|
||||
private final PlayerBalancer plugin;
|
||||
@Inject
|
||||
private Settings settings;
|
||||
|
||||
public FallbackCommand(PlayerBalancer plugin) {
|
||||
super(ConfigEntries.FALLBACK_COMMAND_NAME.get(), ConfigEntries.FALLBACK_COMMAND_PERMISSION.get(), (ConfigEntries.FALLBACK_COMMAND_ALIASES.get().stream()).toArray(String[]::new));
|
||||
this.plugin = plugin;
|
||||
@Inject
|
||||
private SectionsHolder sections;
|
||||
|
||||
@Inject
|
||||
public FallbackCommand(Settings settings) {
|
||||
super(
|
||||
settings.getProperty(CommandProperties.COMMAND).getName(),
|
||||
settings.getProperty(CommandProperties.COMMAND).getPermission(),
|
||||
Iterables.toArray(settings.getProperty(CommandProperties.COMMAND).getAliases(), String.class)
|
||||
);
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -29,38 +42,38 @@ public class FallbackCommand extends Command {
|
||||
ProxiedPlayer player = (ProxiedPlayer) sender;
|
||||
|
||||
Callable<ServerSection> callable = () -> {
|
||||
ServerSection current = plugin.getSectionManager().getByPlayer(player);
|
||||
ServerSection current = sections.getByPlayer(player);
|
||||
|
||||
if (current != null) {
|
||||
if ((ConfigEntries.FALLBACK_COMMAND_IGNORED_SECTIONS.get()).contains(current.getName())) {
|
||||
MessageUtils.send(player, ConfigEntries.UNAVAILABLE_MESSAGE.get());
|
||||
if (settings.getProperty(CommandProperties.IGNORED_SECTIONS).contains(current.getName())) {
|
||||
MessageUtils.send(player, settings.getProperty(MessageProperties.UNAVAILABLE_SERVER));
|
||||
return null;
|
||||
}
|
||||
|
||||
Configuration rules = plugin.getConfigHandle().getSection("settings.fallback-command.rules");
|
||||
String bind = rules.getString(current.getName());
|
||||
ServerSection target = plugin.getSectionManager().getByName(bind);
|
||||
MapBean rules = settings.getProperty(CommandProperties.RULES);
|
||||
String bind = rules.getMap().get(current.getName());
|
||||
ServerSection target = sections.getByName(bind);
|
||||
|
||||
if (target == null) {
|
||||
if (current.getParent() != null) {
|
||||
target = current.getParent();
|
||||
} else {
|
||||
MessageUtils.send(player, ConfigEntries.UNAVAILABLE_MESSAGE.get());
|
||||
MessageUtils.send(player, settings.getProperty(MessageProperties.UNAVAILABLE_SERVER));
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
if (ConfigEntries.FALLBACK_COMMAND_RESTRICTED.get()) {
|
||||
if (settings.getProperty(CommandProperties.RESTRICTED)) {
|
||||
if (current.getPosition() >= 0 && target.getPosition() < 0) {
|
||||
MessageUtils.send(player, ConfigEntries.UNAVAILABLE_MESSAGE.get());
|
||||
MessageUtils.send(player, settings.getProperty(MessageProperties.UNAVAILABLE_SERVER));
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
return target;
|
||||
} else {
|
||||
if (ConfigEntries.FALLBACK_PRINCIPAL_ENABLED.get()) {
|
||||
return plugin.getSectionManager().getPrincipal();
|
||||
if (settings.getProperty(GeneralProperties.FALLBACK_PRINCIPAL)) {
|
||||
return sections.getPrincipal();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -5,7 +5,6 @@ import com.jaimemartz.playerbalancer.PlayerBalancer;
|
||||
import com.jaimemartz.playerbalancer.connection.ConnectionIntent;
|
||||
import com.jaimemartz.playerbalancer.ping.ServerStatus;
|
||||
import com.jaimemartz.playerbalancer.section.ServerSection;
|
||||
import com.jaimemartz.playerbalancer.settings.ConfigEntries;
|
||||
import com.jaimemartz.playerbalancer.utils.MessageUtils;
|
||||
import net.md_5.bungee.api.ChatColor;
|
||||
import net.md_5.bungee.api.CommandSender;
|
||||
|
@ -35,7 +35,7 @@ public class SettingsProvider implements Provider<Settings> {
|
||||
PropertyResource resource = new YamlFileResource(configFile);
|
||||
ConfigurationData configurationData = ConfigurationDataBuilder.collectData(
|
||||
GeneralProperties.class, CheckerProperties.class, ReconnectorProperties.class,
|
||||
CommandProperties.class, MessagesProperties.class, SectionsHolder.class
|
||||
CommandProperties.class, MessageProperties.class, SectionsHolder.class
|
||||
);
|
||||
|
||||
return new Settings(resource, new PlainMigrationService(), configurationData);
|
||||
|
@ -1,7 +1,10 @@
|
||||
package com.jaimemartz.playerbalancer.settings.beans;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
public final class CommandBean {
|
||||
private final String name;
|
||||
private final String permission;
|
||||
|
@ -9,4 +9,6 @@ public class SectionHandler {
|
||||
public SectionHandler() {
|
||||
//Default constructor?
|
||||
}
|
||||
|
||||
//TODO The methods in SectionManager
|
||||
}
|
||||
|
@ -7,7 +7,7 @@ import java.util.Optional;
|
||||
|
||||
import static ch.jalu.configme.properties.PropertyInitializer.optionalStringProperty;
|
||||
|
||||
public class MessagesProperties implements SettingsHolder {
|
||||
public class MessageProperties implements SettingsHolder {
|
||||
public static final Property<Optional<String>> CONNECTING_SERVER = optionalStringProperty("settings.messages.connecting-server");
|
||||
|
||||
public static final Property<Optional<String>> CONNECTED_SERVER = optionalStringProperty("settings.messages.connected-server");
|
@ -7,5 +7,5 @@ import com.jaimemartz.playerbalancer.settings.beans.SectionHandler;
|
||||
import static ch.jalu.configme.properties.PropertyInitializer.newBeanProperty;
|
||||
|
||||
public class SectionsHolder implements SettingsHolder {
|
||||
public static final Property<SectionHandler> SECTIONS_STORAGE = newBeanProperty(SectionHandler.class, "", new SectionHandler());
|
||||
public static final Property<SectionHandler> SECTION_HOLDER = newBeanProperty(SectionHandler.class, "", new SectionHandler());
|
||||
}
|
||||
|
@ -1,10 +1,10 @@
|
||||
package com.jaimemartz.playerbalancer.utils;
|
||||
|
||||
import ch.jalu.configme.properties.Property;
|
||||
import net.md_5.bungee.api.ChatColor;
|
||||
import net.md_5.bungee.api.CommandSender;
|
||||
import net.md_5.bungee.api.chat.TextComponent;
|
||||
|
||||
import java.util.Optional;
|
||||
import java.util.function.Function;
|
||||
|
||||
public final class MessageUtils {
|
||||
@ -23,7 +23,11 @@ public final class MessageUtils {
|
||||
send(sender, text);
|
||||
}
|
||||
|
||||
public static void send(CommandSender sender, Property<String> property) {
|
||||
throw new UnsupportedOperationException();
|
||||
public static void send(CommandSender sender, Optional<String> message) {
|
||||
message.ifPresent(text -> send(sender, text));
|
||||
}
|
||||
|
||||
public static void send(CommandSender sender, Optional<String> message, Function<String, String> after) {
|
||||
message.ifPresent(text -> send(sender, text, after));
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user