2
2
3
3
import io .sentry .Sentry ;
4
4
import net .olympiccode .vhackos .api .entities .AppType ;
5
+ import net .olympiccode .vhackos .api .entities .impl .ServerImpl ;
5
6
import net .olympiccode .vhackos .api .server .Server ;
6
7
import net .olympiccode .vhackos .bot .core .BotService ;
7
8
import net .olympiccode .vhackos .bot .core .vHackOSBot ;
@@ -45,54 +46,21 @@ public void setup() {
45
46
public void runService () {
46
47
try {
47
48
Server server = vHackOSBot .api .getServer ();
48
- server . update ();
49
+
49
50
if (server .getPackages () > 0 ) {
50
51
Server .OpenResult result = server .openAllPacks ();
51
52
LOG .info ("Opened " + server .getPackages () + " server packages, got " + result .getServer () + " server, " + result .getAv () + " av, " + result .getFw () + " fw and " + result .getBoost () + " boosters." );
52
53
}
53
- server .update ();
54
54
if (ServerConfigValues .upgradeNodes ) {
55
- if (server .getServerPieces () > 9 ) {
56
- int times = 0 ;
57
- int cur = server .getServerStrength ();
58
- LOG .info ("Upgrading server's server..." );
59
- while (server .getServerPieces () > 9 && (server .getServerStrength () < server .getServerStrengthMax ())) {
60
- if (server .upgrade (Server .NODE_TYPE .SERVER , 1 )) times ++;
61
- }
62
- server .update ();
63
- LOG .info ("Upgraded server's server " + times + " times. (" + cur + "->" + server .getServerStrength () + ")" );
64
- }
65
-
66
- server .update ();
67
- int fwNodes = (int ) Arrays .stream (server .getFirewallStrength ()).filter (value -> value != 0 ).count ();
68
- for (int i = 0 ; i < fwNodes ; i ++) {
69
- if (server .getFirewallPieces () > 9 ) {
70
- LOG .info ("Upgrading server's firewall node " + (i + 1 ) + "..." );
71
- int times = 0 ;
72
- int cur = server .getFirewallStrength ()[i ];
73
- while (server .getFirewallPieces () > 9 && (server .getFirewallStrength ()[i ] < server .getFirewallStrengthMax ()[i ])) {
74
- if (server .upgrade (Server .NODE_TYPE .FW , i + 1 )) times ++;
75
- }
76
- server .update ();
77
- LOG .info ("Upgraded server's firewall node " + (i + 1 ) + " " + times + " times. (" + cur + "->" + server .getFirewallStrength ()[i ] + ")" );
78
- }
79
- }
80
-
81
-
82
- server .update ();
83
- int avNodes = (int ) Arrays .stream (server .getAntivirusStrength ()).filter (value -> value != 0 ).count ();
84
- for (int i = 0 ; i < avNodes ; i ++) {
85
- if (server .getAntivirusPieces () > 9 ) {
86
- LOG .info ("Upgrading server's antivirus node " + (i + 1 ) + "..." );
87
- int times = 0 ;
88
- int cur = server .getAntivirusStrength ()[0 ];
89
- while (server .getAntivirusPieces () > 9 && (server .getAntivirusStrength ()[i ] < server .getAntivirusStrengthMax ()[i ])) {
90
- if (server .upgrade (Server .NODE_TYPE .AV , i + 1 )) times ++;
91
- }
92
- server .update ();
93
- LOG .info ("Upgraded server's antivirus node " + (i + 1 ) + " " + times + " times. (" + cur + "->" + server .getAntivirusStrength ()[i ] + ")" );
94
- }
95
- }
55
+ server .getNodes ().forEach (serverNode -> {
56
+ while (serverNode .getMaxStrength () > serverNode .getStrength () && has (serverNode , server ) != 0 ) {
57
+ int s = serverNode .getStrength ();
58
+ boolean b = false ;
59
+ if (has (serverNode , server ) == 1 ) b = serverNode .upgrade (); else if (has (serverNode , server ) == 2 ) b = serverNode .upgradeFive ();
60
+ ((ServerImpl ) server ).update ();
61
+ if (b ) LOG .info ("Upgraded " + serverNode .getType () + " node (" + s + "->" + serverNode .getStrength () + ")" ); else LOG .info ("Failed to upgrade " + serverNode .getType () + " node." );
62
+ }
63
+ });
96
64
}
97
65
98
66
} catch (Exception e ) {
@@ -103,6 +71,21 @@ public void runService() {
103
71
}
104
72
}
105
73
74
+ int has (Server .ServerNode serverNode , Server server ) {
75
+ switch (serverNode .getType ()) {
76
+ case AV :
77
+ if (server .getAntivirusPieces () > 0 ) return (server .getAntivirusPieces () > 4 ) ? 2 : 1 ;
78
+ break ;
79
+ case FW :
80
+ if (server .getFirewallPieces () > 0 ) return (server .getFirewallPieces () > 4 ) ? 2 : 1 ;
81
+ break ;
82
+ case SERVER :
83
+ if (server .getServerPieces () > 0 ) return (server .getServerPieces () > 4 ) ? 2 : 1 ;
84
+ break ;
85
+ }
86
+ return 0 ;
87
+ }
88
+
106
89
public class ServerServiceFactory implements ThreadFactory {
107
90
public Thread newThread (Runnable r ) {
108
91
return new Thread (r , "vHackOSBot-ServerService" );
0 commit comments