Skip to content

Commit

Permalink
Move all errors to point to SettingsManager
Browse files Browse the repository at this point in the history
Good step forward since this means all work except the bridge between client and server is left and not porting legacy code
  • Loading branch information
AlexProgrammerDE committed Nov 24, 2023
1 parent ec884e9 commit 5572c43
Show file tree
Hide file tree
Showing 3 changed files with 18 additions and 15 deletions.
17 changes: 5 additions & 12 deletions src/main/java/net/pistonmaster/serverwrecker/AttackManager.java
Original file line number Diff line number Diff line change
Expand Up @@ -34,15 +34,13 @@
import net.pistonmaster.serverwrecker.api.event.ServerWreckerAttackEvent;
import net.pistonmaster.serverwrecker.api.event.attack.AttackEndedEvent;
import net.pistonmaster.serverwrecker.api.event.attack.AttackStartEvent;
import net.pistonmaster.serverwrecker.auth.AccountList;
import net.pistonmaster.serverwrecker.auth.AccountSettings;
import net.pistonmaster.serverwrecker.auth.MinecraftAccount;
import net.pistonmaster.serverwrecker.common.AttackState;
import net.pistonmaster.serverwrecker.protocol.BotConnection;
import net.pistonmaster.serverwrecker.protocol.BotConnectionFactory;
import net.pistonmaster.serverwrecker.protocol.netty.ResolveUtil;
import net.pistonmaster.serverwrecker.protocol.netty.SWNettyHelper;
import net.pistonmaster.serverwrecker.proxy.ProxyList;
import net.pistonmaster.serverwrecker.proxy.ProxySettings;
import net.pistonmaster.serverwrecker.proxy.SWProxy;
import net.pistonmaster.serverwrecker.settings.BotSettings;
Expand Down Expand Up @@ -83,13 +81,8 @@ public CompletableFuture<Void> start(SettingsHolder settingsHolder) {
throw new IllegalStateException("Attack is already running");
}

var accountListSettings = settingsHolder.get(AccountList.class);
var accounts = new ArrayList<>(accountListSettings.accounts()
.stream().filter(MinecraftAccount::enabled).toList());

var proxyListSettings = settingsHolder.get(ProxyList.class);
var proxies = new ArrayList<>(proxyListSettings.proxies()
.stream().filter(SWProxy::enabled).toList());
var accounts = new ArrayList<>(settingsHolder.accounts());
var proxies = new ArrayList<>(settingsHolder.proxies());

ServerWreckerServer.setupLoggingAndVia(settingsHolder);

Expand Down Expand Up @@ -140,7 +133,7 @@ public CompletableFuture<Void> start(SettingsHolder settingsHolder) {
var factories = new ArrayBlockingQueue<BotConnectionFactory>(botAmount);
for (var botId = 1; botId <= botAmount; botId++) {
var proxyData = getProxy(botsPerProxy, proxyUseMap).orElse(null);
var minecraftAccount = getAccount(accountSettings, accounts, botId);
var minecraftAccount = getAccount(settingsHolder, accounts, botId);

// AuthData will be used internally instead of the MCProtocol data
var protocol = new MinecraftProtocol(EMPTY_GAME_PROFILE, null);
Expand Down Expand Up @@ -202,9 +195,9 @@ public CompletableFuture<Void> start(SettingsHolder settingsHolder) {
});
}

private static MinecraftAccount getAccount(AccountSettings accountSettings, List<MinecraftAccount> accounts, int botId) {
private static MinecraftAccount getAccount(SettingsHolder settingsHolder, List<MinecraftAccount> accounts, int botId) {
if (accounts.isEmpty()) {
return new MinecraftAccount(String.format(accountSettings.nameFormat(), botId));
return new MinecraftAccount(String.format(settingsHolder.get(AccountSettings.NAME_FORMAT), botId));
}

return accounts.remove(0);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,12 +19,15 @@
*/
package net.pistonmaster.serverwrecker.auth;

import lombok.AccessLevel;
import lombok.NoArgsConstructor;
import net.pistonmaster.serverwrecker.settings.lib.SettingsObject;
import net.pistonmaster.serverwrecker.settings.lib.property.BooleanProperty;
import net.pistonmaster.serverwrecker.settings.lib.property.Property;
import net.pistonmaster.serverwrecker.settings.lib.property.StringProperty;

public record AccountSettings(String nameFormat, boolean shuffleAccounts) implements SettingsObject {
@NoArgsConstructor(access = AccessLevel.NONE)
public class AccountSettings implements SettingsObject {
private static final Property.Builder BUILDER = Property.builder("account");
public static final StringProperty NAME_FORMAT = BUILDER.ofString(
"nameFormat",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,21 +20,28 @@
package net.pistonmaster.serverwrecker.settings.lib;

import it.unimi.dsi.fastutil.objects.*;
import net.pistonmaster.serverwrecker.auth.MinecraftAccount;
import net.pistonmaster.serverwrecker.proxy.SWProxy;
import net.pistonmaster.serverwrecker.settings.lib.property.*;

import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.function.Function;

public record SettingsHolder(
Object2IntMap<PropertyKey> intProperties,
Object2BooleanMap<PropertyKey> booleanProperties,
Object2ObjectMap<PropertyKey, String> stringProperties
Object2ObjectMap<PropertyKey, String> stringProperties,
List<MinecraftAccount> accounts,
List<SWProxy> proxies
) {
public static final SettingsHolder EMPTY = new SettingsHolder(
Object2IntMaps.emptyMap(),
Object2BooleanMaps.emptyMap(),
Object2ObjectMaps.emptyMap()
Object2ObjectMaps.emptyMap(),
List.of(),
List.of()
);

public int get(IntProperty property) {
Expand Down

0 comments on commit 5572c43

Please sign in to comment.