11package com .stupidrepo .mcscanner ;
22
3+ import com .stupidrepo .mcscanner .language .LanguageHandler ;
34import org .bson .Document ;
45
56import javax .swing .*;
1415import java .net .Socket ;
1516import java .nio .charset .StandardCharsets ;
1617import java .util .ArrayList ;
18+ import java .util .Locale ;
1719import java .util .concurrent .atomic .AtomicInteger ;
1820import java .util .concurrent .atomic .AtomicReference ;
1921import java .util .logging .Level ;
@@ -27,20 +29,23 @@ public class MCScanner {
2729 private static int offsetL = 0 ;
2830 private static boolean stopping = false ;
2931
30- public static void main (String [] var0 ) {
32+ public static LanguageHandler lang ;
33+
34+ public static void main (String [] args ) {
3135 AtomicInteger threads = new AtomicInteger (1024 );
3236 int timeout = 1000 ;
33- int minimumRange = 1 ;
3437 int maxRange = 255 ;
3538 int port = 25565 ;
3639
3740 Logger logger = Logger .getLogger ("com.stupidrepo.mcscanner" );
3841
39- float version = 1.20f ;
42+ float version = 1.21f ;
4043
4144 AtomicReference <String > uri = new AtomicReference <>("mongodb://localhost:27017" );
4245
43- PopupHandler threadsPopup = new PopupHandler ("How many threads would you like to use?" , "1024" , "OK" );
46+ lang = new LanguageHandler (Locale .forLanguageTag ("en-gb" ));
47+
48+ PopupHandler threadsPopup = new PopupHandler (lang .get ("question.THREADS" ), "1024" , "OK" );
4449 threadsPopup .showAndWait ();
4550
4651 try {
@@ -49,7 +54,7 @@ public static void main(String[] var0) {
4954 logger .log (Level .SEVERE , "Invalid thread count." );
5055 }
5156
52- PopupHandler mongoDBURIPopup = new PopupHandler ("Enter the URI to the MongoDB database:" , "mongodb://localhost:27017" , "Done" );
57+ PopupHandler mongoDBURIPopup = new PopupHandler (lang . get ( "question.MONGO" ) , "mongodb://localhost:27017" , "Done" );
5358 mongoDBURIPopup .showAndWait ();
5459
5560 uri .set (mongoDBURIPopup .responseText );
@@ -58,14 +63,14 @@ public static void main(String[] var0) {
5863
5964 logger .log (Level .INFO , "Scanning IPs..." );
6065
61- JFrame frame = new JFrame ("MCScanner v" + version );
66+ JFrame frame = new JFrame (lang . get ( "text.TITLE" ). formatted ( version ) );
6267 frame .setDefaultCloseOperation (WindowConstants .DO_NOTHING_ON_CLOSE );
6368 frame .setSize (300 , 100 );
6469 frame .setLayout (new BorderLayout ());
6570
6671 ArrayList < Thread > threadList = new ArrayList < Thread > ();
6772
68- JLabel scannedLabel = new JLabel ("Scanned: 0" );
73+ JLabel scannedLabel = new JLabel (lang . get ( "text.SCANNED" ). formatted ( 0 ) );
6974 scannedLabel .setHorizontalAlignment (0 );
7075
7176 frame .add (scannedLabel , "Center" );
@@ -97,16 +102,12 @@ public void windowClosing(java.awt.event.WindowEvent windowEvent) {
97102 }
98103 });
99104
100- ServerList serverList = new ServerList (databaseHandler );
105+ ServerList serverList = new ServerList (databaseHandler , lang );
101106
102- JButton viewServersButton = new JButton ("Show Server List" );
107+ JButton viewServersButton = new JButton (lang . get ( "button.SERVERLIST" ) );
103108
104109 viewServersButton .addActionListener (e -> {
105- if (serverList .toggleGUI ()) {
106- viewServersButton .setText ("Hide Server List" );
107- } else {
108- viewServersButton .setText ("Show Server List" );
109- }
110+ serverList .toggleGUI ();
110111 });
111112
112113 frame .add (viewServersButton , "North" );
@@ -170,7 +171,7 @@ public void windowClosing(java.awt.event.WindowEvent windowEvent) {
170171 try {
171172 nextThread .join ();
172173 ++scanned ;
173- scannedLabel .setText ("Scanned: " + scanned + " (" + ip + ")" );
174+ scannedLabel .setText (lang . get ( "text.SCANNED" ). formatted ( scanned ) );
174175 } catch (InterruptedException timeout2 ) {
175176 // Timed out or smth
176177 }
@@ -189,7 +190,7 @@ public void windowClosing(java.awt.event.WindowEvent windowEvent) {
189190 try {
190191 nextThreadAgain .join ();
191192 ++scanned ;
192- scannedLabel .setText ("Scanned: " + scanned );
193+ scannedLabel .setText (lang . get ( "text.SCANNED" ). formatted ( scanned ) );
193194 } catch (InterruptedException timeout1 ) {
194195 // Timeout, again!
195196 }
@@ -287,11 +288,13 @@ public void run() {
287288
288289class ServerList {
289290 private final DatabaseHandler dbHandler ;
291+ private final LanguageHandler lang ;
290292 private final JFrame frame ;
291293
292- public ServerList (DatabaseHandler dbHandler ) {
294+ public ServerList (DatabaseHandler dbHandler , LanguageHandler lang ) {
295+ this .lang = lang ;
293296 this .dbHandler = dbHandler ;
294- this .frame = new JFrame ("MCScanner - Servers (" + this . dbHandler . getServerCount () + ")" );
297+ this .frame = new JFrame (lang . get ( "text.SERVERLIST.TITLE" ). formatted ( 0 ) );
295298 this .frame .setDefaultCloseOperation (WindowConstants .HIDE_ON_CLOSE );
296299 this .frame .setSize (720 , 500 );
297300 this .frame .setLayout (new BorderLayout ());
@@ -301,7 +304,7 @@ public ServerList(DatabaseHandler dbHandler) {
301304 new Object [][] {
302305 },
303306 new String [] {
304- " IP", " MOTD", "Version" , "Max Players"
307+ lang . get ( this . lang . get ( "text.SERVERLIST. IP")), this . lang . get ( "text.SERVERLIST. MOTD"), this . lang . get ( "text.SERVERLIST.VERSION" ), this . lang . get ( "text.SERVERLIST.MAX_PLAYERS" )
305308 }
306309 ));
307310 table .getColumnModel ().getColumn (0 ).setPreferredWidth (100 );
@@ -328,10 +331,10 @@ public ServerList(DatabaseHandler dbHandler) {
328331 searchBar .addFocusListener (new PlaceholderText ("Search" , searchBar ).getFocusAdapter ());
329332
330333 JComboBox <String > searchBy = new JComboBox <String >();
331- searchBy .addItem ("Sort By: IP" );
332- searchBy .addItem ("Sort By: MOTD" );
333- searchBy .addItem ("Sort By: Version" );
334- searchBy .addItem ("Sort By: Max Players" );
334+ searchBy .addItem (lang . get ( "dropdown.SERVERLIST. IP") );
335+ searchBy .addItem (lang . get ( "dropdown.SERVERLIST. MOTD") );
336+ searchBy .addItem (lang . get ( "dropdown.SERVERLIST.VERSION" ) );
337+ searchBy .addItem (lang . get ( "dropdown.SERVERLIST.MAX_PLAYERS" ) );
335338 searchBy .setSelectedIndex (2 );
336339
337340 searchBar .addActionListener (e -> {
@@ -350,7 +353,7 @@ public ServerList(DatabaseHandler dbHandler) {
350353 Timer timer = new Timer (10000 , e -> {
351354 ((DefaultTableModel ) table .getModel ()).setRowCount (0 );
352355 ArrayList < Document > documents1 = this .dbHandler .getServers ();
353- this .frame .setTitle ("MCScanner - Servers (" + documents1 .size () + ")" );
356+ this .frame .setTitle (lang . get ( "text.SERVERLIST.TITLE" ). formatted ( documents1 .size ()) );
354357 for (Document document : documents1 ) {
355358 String ip = document .getString ("ip" );
356359 String motd = document .getString ("motd" );
0 commit comments