From c23df0e8147d745c94a3b41dbd8a8d9246c82afc Mon Sep 17 00:00:00 2001 From: Sten Laane <21343173+StenAL@users.noreply.github.com> Date: Thu, 22 Aug 2024 22:07:06 +0300 Subject: [PATCH 1/4] Client: Remove use of Enumeration class Enumeration is a legacy class used for element iteration and has been superseded by Iterator, which can be looped over using a for-each loop. These are more concise to read and don't pollute variable scopes. --- .../java/com/aapeli/client/ImageTracker.java | 19 ++++++------------ .../com/aapeli/client/InputTextField.java | 20 ++++++------------- .../java/com/aapeli/client/SoundManager.java | 12 ++--------- .../java/com/aapeli/colorgui/Choicer.java | 7 ++----- .../java/com/aapeli/colorgui/ColorButton.java | 8 ++------ .../com/aapeli/colorgui/ColorCheckbox.java | 8 ++------ .../aapeli/colorgui/ColorCheckboxGroup.java | 8 ++------ .../java/com/aapeli/colorgui/ColorList.java | 14 ++++--------- .../com/aapeli/colorgui/ColorSpinner.java | 8 ++------ .../com/aapeli/colorgui/MultiColorList.java | 8 ++------ .../com/aapeli/colorgui/RadioButtonGroup.java | 7 +------ .../java/com/aapeli/colorgui/RoundButton.java | 8 ++------ .../main/java/com/aapeli/colorgui/TabBar.java | 8 ++------ .../java/com/aapeli/tools/QuickTimer.java | 13 +----------- 14 files changed, 36 insertions(+), 112 deletions(-) diff --git a/client/src/main/java/com/aapeli/client/ImageTracker.java b/client/src/main/java/com/aapeli/client/ImageTracker.java index 61639800..06d1b9ce 100644 --- a/client/src/main/java/com/aapeli/client/ImageTracker.java +++ b/client/src/main/java/com/aapeli/client/ImageTracker.java @@ -5,7 +5,6 @@ import java.applet.Applet; import java.awt.Image; -import java.util.Enumeration; import java.util.Hashtable; import java.util.Vector; @@ -146,24 +145,18 @@ protected void removeAllImageResources() { } } - Enumeration var6 = this.imageTable.elements(); - - while (var6.hasMoreElements()) { + for (Image image: this.imageTable.values()) { try { - var6.nextElement().flush(); - } catch (Exception var5) { - } + image.flush(); + } catch (Exception e) {} } this.imageTable.clear(); this.imageTable = null; - Enumeration var7 = this.imageResourceTable.elements(); - - while (var7.hasMoreElements()) { + for (ImageResource imageResource: this.imageResourceTable) { try { - var7.nextElement().method1652(); - } catch (Exception var4) { - } + imageResource.method1652(); + } catch (Exception e) {} } this.imageResourceTable.removeAllElements(); diff --git a/client/src/main/java/com/aapeli/client/InputTextField.java b/client/src/main/java/com/aapeli/client/InputTextField.java index 0a945ed3..a11bc1f5 100644 --- a/client/src/main/java/com/aapeli/client/InputTextField.java +++ b/client/src/main/java/com/aapeli/client/InputTextField.java @@ -8,7 +8,6 @@ import java.awt.event.FocusListener; import java.awt.event.KeyEvent; import java.awt.event.KeyListener; -import java.util.Enumeration; import java.util.Vector; public class InputTextField extends TextField implements FocusListener, KeyListener, ActionListener { @@ -135,10 +134,8 @@ public void keyTyped(KeyEvent evt) { public void actionPerformed(ActionEvent evt) { if (evt.getSource() == this) { synchronized (this) { - Enumeration enumeration = this.listeners.elements(); - - while (enumeration.hasMoreElements()) { - enumeration.nextElement().enterPressed(); + for (InputTextFieldListener listener: this.listeners) { + listener.enterPressed(); } } } @@ -244,20 +241,15 @@ private synchronized void keyInput() { this.setCaretPosition(lastCharIndex); } - Enumeration enumeration; if (this.inputTextLength == 0 && textLen > 0) { - enumeration = this.listeners.elements(); - - while (enumeration.hasMoreElements()) { - enumeration.nextElement().startedTyping(); + for (InputTextFieldListener listener: this.listeners) { + listener.startedTyping(); } } if (this.inputTextLength > 0 && textLen == 0) { - enumeration = this.listeners.elements(); - - while (enumeration.hasMoreElements()) { - enumeration.nextElement().clearedField(); + for (InputTextFieldListener listener: this.listeners) { + listener.clearedField(); } } diff --git a/client/src/main/java/com/aapeli/client/SoundManager.java b/client/src/main/java/com/aapeli/client/SoundManager.java index a2085158..976ab32f 100644 --- a/client/src/main/java/com/aapeli/client/SoundManager.java +++ b/client/src/main/java/com/aapeli/client/SoundManager.java @@ -4,7 +4,6 @@ import java.applet.AudioClip; import java.net.URL; -import java.util.Enumeration; import java.util.Hashtable; public final class SoundManager implements Runnable { @@ -55,21 +54,14 @@ public void run() { boolean anySoundClipsNotDefined; do { anySoundClipsNotDefined = false; - Enumeration soundClips = this.clientSounds.elements(); - - SoundClip soundClip; - while (soundClips.hasMoreElements()) { - soundClip = soundClips.nextElement(); + for (SoundClip soundClip: this.clientSounds.values()) { if (!soundClip.isDefined()) { soundClip.defineClip(); anySoundClipsNotDefined = true; } } - soundClips = this.sharedSounds.elements(); - - while (soundClips.hasMoreElements()) { - soundClip = soundClips.nextElement(); + for (SoundClip soundClip: this.sharedSounds.values()) { if (!soundClip.isDefined()) { soundClip.defineClip(); anySoundClipsNotDefined = true; diff --git a/client/src/main/java/com/aapeli/colorgui/Choicer.java b/client/src/main/java/com/aapeli/colorgui/Choicer.java index 35252fd4..c8568fd8 100644 --- a/client/src/main/java/com/aapeli/colorgui/Choicer.java +++ b/client/src/main/java/com/aapeli/colorgui/Choicer.java @@ -10,7 +10,6 @@ import java.awt.event.ComponentListener; import java.awt.event.ItemEvent; import java.awt.event.ItemListener; -import java.util.Enumeration; import java.util.Vector; public class Choicer extends IPanel implements ComponentListener, ItemListener, ItemSelectable { @@ -60,10 +59,8 @@ public void itemStateChanged(ItemEvent e) { synchronized (this.listeners) { if (!this.listeners.isEmpty()) { e = new ItemEvent(this, e.getID(), e.getItem(), e.getStateChange()); - Enumeration listenerEnumeration = this.listeners.elements(); - - while (listenerEnumeration.hasMoreElements()) { - listenerEnumeration.nextElement().itemStateChanged(e); + for (ItemListener listener: this.listeners) { + listener.itemStateChanged(e); } } } diff --git a/client/src/main/java/com/aapeli/colorgui/ColorButton.java b/client/src/main/java/com/aapeli/colorgui/ColorButton.java index 7b470bfa..7fd2870f 100644 --- a/client/src/main/java/com/aapeli/colorgui/ColorButton.java +++ b/client/src/main/java/com/aapeli/colorgui/ColorButton.java @@ -12,7 +12,6 @@ import java.awt.event.MouseEvent; import java.awt.event.MouseListener; import java.awt.event.MouseMotionListener; -import java.util.Enumeration; import java.util.Vector; public class ColorButton extends IPanel implements MouseMotionListener, MouseListener { @@ -401,12 +400,9 @@ public void processActionEvent() { synchronized (this.aVector3280) { if (this.aVector3280.size() != 0) { ActionEvent var2 = new ActionEvent(this, 1001, this.aString3272); - Enumeration var3 = this.aVector3280.elements(); - - while (var3.hasMoreElements()) { - var3.nextElement().actionPerformed(var2); + for (ActionListener listener : aVector3280) { + listener.actionPerformed(var2); } - } } } diff --git a/client/src/main/java/com/aapeli/colorgui/ColorCheckbox.java b/client/src/main/java/com/aapeli/colorgui/ColorCheckbox.java index 8e8e6313..d7703c04 100644 --- a/client/src/main/java/com/aapeli/colorgui/ColorCheckbox.java +++ b/client/src/main/java/com/aapeli/colorgui/ColorCheckbox.java @@ -12,7 +12,6 @@ import java.awt.event.ItemListener; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; -import java.util.Enumeration; import java.util.Vector; public class ColorCheckbox extends IPanel implements ItemSelectable, MouseListener { @@ -329,12 +328,9 @@ private void method838() { synchronized (this.aVector3305) { if (this.aVector3305.size() != 0) { ItemEvent var2 = new ItemEvent(this, 0, this, 701); - Enumeration var3 = this.aVector3305.elements(); - - while (var3.hasMoreElements()) { - var3.nextElement().itemStateChanged(var2); + for (ItemListener listener : aVector3305) { + listener.itemStateChanged(var2); } - } } } diff --git a/client/src/main/java/com/aapeli/colorgui/ColorCheckboxGroup.java b/client/src/main/java/com/aapeli/colorgui/ColorCheckboxGroup.java index c6646582..94742ca8 100644 --- a/client/src/main/java/com/aapeli/colorgui/ColorCheckboxGroup.java +++ b/client/src/main/java/com/aapeli/colorgui/ColorCheckboxGroup.java @@ -1,6 +1,5 @@ package com.aapeli.colorgui; -import java.util.Enumeration; import java.util.Vector; public final class ColorCheckboxGroup { @@ -22,11 +21,8 @@ protected boolean method1748(boolean var1) { } private void method1749() { - Enumeration var1 = this.aVector1553.elements(); - - while (var1.hasMoreElements()) { - var1.nextElement().realSetState(false); + for (ColorCheckbox colorCheckbox : aVector1553) { + colorCheckbox.realSetState(false); } - } } diff --git a/client/src/main/java/com/aapeli/colorgui/ColorList.java b/client/src/main/java/com/aapeli/colorgui/ColorList.java index e1c515f2..2beb817c 100644 --- a/client/src/main/java/com/aapeli/colorgui/ColorList.java +++ b/client/src/main/java/com/aapeli/colorgui/ColorList.java @@ -16,7 +16,6 @@ import java.awt.event.ItemListener; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; -import java.util.Enumeration; import java.util.Vector; public final class ColorList extends Panel implements ComponentListener, AdjustmentListener, MouseListener, ItemSelectable { @@ -189,11 +188,9 @@ public void update(Graphics var1) { private boolean method944() { ColorListItemGroup var1 = null; - Enumeration var4 = this.aVector669.elements(); - while (var4.hasMoreElements()) { - ColorListItem var3 = var4.nextElement(); - ColorListItemGroup var2 = var3.getGroup(); + for (ColorListItem colorListItem: this.aVector669) { + ColorListItemGroup var2 = colorListItem.getGroup(); if (var2 != null) { if (var1 != null && var2 != var1) { return true; @@ -665,12 +662,9 @@ private String method953(String var1) { private synchronized void method954(ColorListItem var1, int var2, int var3) { if (this.aVector680.size() != 0) { ItemEvent var4 = new ItemEvent(this, var2, var1, var3); - Enumeration var5 = this.aVector680.elements(); - - while (var5.hasMoreElements()) { - var5.nextElement().itemStateChanged(var4); + for (ItemListener itemListener: this.aVector680) { + itemListener.itemStateChanged(var4); } - } } diff --git a/client/src/main/java/com/aapeli/colorgui/ColorSpinner.java b/client/src/main/java/com/aapeli/colorgui/ColorSpinner.java index ec4e32bf..e5141897 100644 --- a/client/src/main/java/com/aapeli/colorgui/ColorSpinner.java +++ b/client/src/main/java/com/aapeli/colorgui/ColorSpinner.java @@ -14,7 +14,6 @@ import java.awt.event.MouseEvent; import java.awt.event.MouseListener; import java.awt.event.MouseMotionListener; -import java.util.Enumeration; import java.util.Vector; public final class ColorSpinner extends IPanel implements MouseListener, MouseMotionListener, ItemSelectable { @@ -402,12 +401,9 @@ protected void method846() { String var1 = this.getSelectedItem(); if (var1 != null) { ItemEvent var2 = new ItemEvent(this, 701, var1, ItemEvent.SELECTED); - Enumeration var3 = this.aVector3318.elements(); - - while (var3.hasMoreElements()) { - var3.nextElement().itemStateChanged(var2); + for (ItemListener listener : aVector3318) { + listener.itemStateChanged(var2); } - } } diff --git a/client/src/main/java/com/aapeli/colorgui/MultiColorList.java b/client/src/main/java/com/aapeli/colorgui/MultiColorList.java index 17e192c5..5748f1e2 100644 --- a/client/src/main/java/com/aapeli/colorgui/MultiColorList.java +++ b/client/src/main/java/com/aapeli/colorgui/MultiColorList.java @@ -16,7 +16,6 @@ import java.awt.event.ItemListener; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; -import java.util.Enumeration; import java.util.Vector; public class MultiColorList extends Panel implements AdjustmentListener, MouseListener, ItemSelectable { @@ -714,12 +713,9 @@ private synchronized void method961(boolean var1) { private synchronized void method962(MultiColorListItem var1, int var2, int var3) { if (this.aVector713.size() != 0) { ItemEvent var4 = new ItemEvent(this, var2, var1, var3); - Enumeration var5 = this.aVector713.elements(); - - while (var5.hasMoreElements()) { - var5.nextElement().itemStateChanged(var4); + for (ItemListener listener: this.aVector713) { + listener.itemStateChanged(var4); } - } } diff --git a/client/src/main/java/com/aapeli/colorgui/RadioButtonGroup.java b/client/src/main/java/com/aapeli/colorgui/RadioButtonGroup.java index 27a8b216..e314653a 100644 --- a/client/src/main/java/com/aapeli/colorgui/RadioButtonGroup.java +++ b/client/src/main/java/com/aapeli/colorgui/RadioButtonGroup.java @@ -2,7 +2,6 @@ import com.aapeli.client.IPanel; -import java.util.Enumeration; import java.util.Vector; public final class RadioButtonGroup { @@ -38,16 +37,12 @@ protected boolean method1758(boolean var1) { } private void method1759() { - Enumeration var1 = this.aVector1589.elements(); - - while (var1.hasMoreElements()) { - Object var2 = var1.nextElement(); + for (IPanel var2: this.aVector1589) { if (var2 instanceof RadioButton) { ((RadioButton) var2).realSetState(false); } else { ((RoundRadioButton) var2).realSetState(false); } } - } } diff --git a/client/src/main/java/com/aapeli/colorgui/RoundButton.java b/client/src/main/java/com/aapeli/colorgui/RoundButton.java index dbf945cc..cc0b16f6 100644 --- a/client/src/main/java/com/aapeli/colorgui/RoundButton.java +++ b/client/src/main/java/com/aapeli/colorgui/RoundButton.java @@ -12,7 +12,6 @@ import java.awt.event.MouseEvent; import java.awt.event.MouseListener; import java.awt.event.MouseMotionListener; -import java.util.Enumeration; import java.util.Vector; public class RoundButton extends IPanel implements MouseMotionListener, MouseListener { @@ -263,12 +262,9 @@ public void processActionEvent() { synchronized (this.aVector3395) { if (this.aVector3395.size() != 0) { ActionEvent var2 = new ActionEvent(this, 1001, this.aString3387); - Enumeration var3 = this.aVector3395.elements(); - - while (var3.hasMoreElements()) { - var3.nextElement().actionPerformed(var2); + for (ActionListener listener : aVector3395) { + listener.actionPerformed(var2); } - } } } diff --git a/client/src/main/java/com/aapeli/colorgui/TabBar.java b/client/src/main/java/com/aapeli/colorgui/TabBar.java index 00132647..77a1a240 100644 --- a/client/src/main/java/com/aapeli/colorgui/TabBar.java +++ b/client/src/main/java/com/aapeli/colorgui/TabBar.java @@ -12,7 +12,6 @@ import java.awt.event.ActionListener; import java.awt.event.ComponentEvent; import java.awt.event.ComponentListener; -import java.util.Enumeration; import java.util.Vector; public class TabBar extends IPanel implements ComponentListener, ActionListener { @@ -382,12 +381,9 @@ private void method879(int var1) { Object var2 = this.anObject3425; synchronized (this.anObject3425) { if (this.aVector3424.size() != 0) { - Enumeration var3 = this.aVector3424.elements(); - - while (var3.hasMoreElements()) { - var3.nextElement().selectedTabChanged(var1); + for (TabBarListener tabBarListener : aVector3424) { + tabBarListener.selectedTabChanged(var1); } - } } } diff --git a/client/src/main/java/com/aapeli/tools/QuickTimer.java b/client/src/main/java/com/aapeli/tools/QuickTimer.java index ffeef8e5..79748848 100644 --- a/client/src/main/java/com/aapeli/tools/QuickTimer.java +++ b/client/src/main/java/com/aapeli/tools/QuickTimer.java @@ -1,7 +1,5 @@ package com.aapeli.tools; -import java.util.Enumeration; -import java.util.NoSuchElementException; import java.util.Vector; public class QuickTimer implements Runnable { @@ -41,16 +39,7 @@ public QuickTimer(QuickTimerListener var1, int var2) { public void run() { Tools.sleep(this.anInt1727); if (!this.stopped) { - Enumeration var1 = this.aVector1728.elements(); - - while (var1.hasMoreElements()) { - QuickTimerListener var2; - try { - var2 = var1.nextElement(); - } catch (NoSuchElementException var4) { - return; - } - + for (QuickTimerListener var2: this.aVector1728) { if (var2 != null) { var2.qtFinished(); } From 098d35549b23ad20d15747e773a5097af076645d Mon Sep 17 00:00:00 2001 From: Sten Laane <21343173+StenAL@users.noreply.github.com> Date: Thu, 22 Aug 2024 22:07:06 +0300 Subject: [PATCH 2/4] Server: Fix single player quick start Most of the code was already in place, the regular expression matching packages in the server needed to be adjusted a bit. Also, the game code assumed that everyone starting a game was already in a lobby so I modified the quick start code to join the single player lobby before launching a game. --- .../golf/LobbyCreateSinglePlayerHandler.java | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/server/src/main/java/org/moparforia/server/net/packethandlers/golf/LobbyCreateSinglePlayerHandler.java b/server/src/main/java/org/moparforia/server/net/packethandlers/golf/LobbyCreateSinglePlayerHandler.java index 1e13fa66..41e41b85 100644 --- a/server/src/main/java/org/moparforia/server/net/packethandlers/golf/LobbyCreateSinglePlayerHandler.java +++ b/server/src/main/java/org/moparforia/server/net/packethandlers/golf/LobbyCreateSinglePlayerHandler.java @@ -1,6 +1,8 @@ package org.moparforia.server.net.packethandlers.golf; import org.moparforia.server.Server; +import org.moparforia.server.game.Lobby; +import org.moparforia.server.game.LobbyType; import org.moparforia.server.game.Player; import org.moparforia.server.game.gametypes.golf.ChampionshipGame; import org.moparforia.server.game.gametypes.golf.TrainingGame; @@ -19,19 +21,22 @@ public PacketType getType() { @Override public Pattern getPattern() { - return Pattern.compile("lobby\\tcsp(t|c)\\t(\\d+)(?:\\t(\\d+)\\t(\\d+))?"); + return Pattern.compile("(lobby|lobbyselect)\\tcsp(t|c)\\t(\\d+)(?:\\t(\\d+)\\t(\\d+))?"); } //CLIENT> WRITE "d 5 lobby cspt 10 7 0" @Override public boolean handle(Server server, Packet packet, Matcher message) { Player player = packet.getChannel().attr(Player.PLAYER_ATTRIBUTE_KEY).get(); - int number = Integer.parseInt(message.group(2)); - if (message.group(1).equals("t")) { - int trackType = Integer.parseInt(message.group(3)); - int water = Integer.parseInt(message.group(4)); + int number = Integer.parseInt(message.group(3)); + if (message.group(2).equals("t")) { // training + int trackType = Integer.parseInt(message.group(4)); + int water = Integer.parseInt(message.group(5)); + if (message.group(1).equals("lobbyselect")) { + server.getLobby(LobbyType.SINGLE).addPlayer(player, Lobby.JOIN_TYPE_NORMAL); + } new TrainingGame(player, server.getNextGameId(), trackType, number, water); - } else if (message.group(1).equals("c")) { + } else if (message.group(2).equals("c")) { // championship new ChampionshipGame(player, server.getNextGameId(), number); } else { return false; From 85e8fff3375a845210323a9f232e5427a4fbf9af Mon Sep 17 00:00:00 2001 From: Sten Laane <21343173+StenAL@users.noreply.github.com> Date: Thu, 22 Aug 2024 22:07:06 +0300 Subject: [PATCH 3/4] Server: Remove busy wait Instead of constantly polling for changes in the events queue and sleeping, using a BlockingQueue, the server can simply wait until receives any events and then react accordingly. This saves resources and simplifies the server logic. --- .../java/org/moparforia/server/Server.java | 32 +++++++------------ 1 file changed, 12 insertions(+), 20 deletions(-) diff --git a/server/src/main/java/org/moparforia/server/Server.java b/server/src/main/java/org/moparforia/server/Server.java index 1b51c406..0af4b7a8 100644 --- a/server/src/main/java/org/moparforia/server/Server.java +++ b/server/src/main/java/org/moparforia/server/Server.java @@ -35,9 +35,9 @@ import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; -import java.util.Iterator; import java.util.Optional; -import java.util.concurrent.ConcurrentLinkedQueue; +import java.util.concurrent.BlockingQueue; +import java.util.concurrent.LinkedBlockingQueue; public class Server implements Runnable { @@ -47,7 +47,7 @@ public class Server implements Runnable { private HashMap players = new HashMap<>(); private ChannelGroup allChannels = new DefaultChannelGroup(GlobalEventExecutor.INSTANCE); - private ConcurrentLinkedQueue events = new ConcurrentLinkedQueue<>(); + private BlockingQueue events = new LinkedBlockingQueue<>(); private HashMap> packetHandlers = new HashMap<>(); private String host; @@ -57,7 +57,7 @@ public class Server implements Runnable { private ChannelFuture serverChannelFuture; private boolean running; - private HashMap lobbies = new HashMap(); + private HashMap lobbies = new HashMap<>(); //private ArrayList lobbies = new ArrayList(); //private HashMap games = new HashMap(); @@ -137,11 +137,13 @@ public void addChannel(Channel channel) { /** * This is the only method that should be called from another thread (ie, the ClientChannelHandler) - * - * @param evt */ public void addEvent(Event evt) { - events.add(evt); + try { + events.put(evt); + } catch (Exception e) { + throw new RuntimeException(e); + } } public ArrayList getPacketHandlers(PacketType type) { @@ -219,19 +221,9 @@ public void run() { System.out.println("Started server on host " + this.host + " with port " + this.port); while (this.running) { try { - Thread.sleep(10); - Iterator iterator = events.iterator(); - while (iterator.hasNext()) { - Event evt = iterator.next(); - try { - if (evt.shouldProcess(this)) { - evt.process(this); - iterator.remove(); - } - } catch (Exception e) { - e.printStackTrace(); - iterator.remove(); - } + Event evt = events.take(); + if (evt.shouldProcess(this)) { + evt.process(this); } } catch (Exception e) { e.printStackTrace(); From a194841b72947bb0634808d40fd97d4933e1d961 Mon Sep 17 00:00:00 2001 From: Sten Laane <21343173+StenAL@users.noreply.github.com> Date: Thu, 22 Aug 2024 22:07:06 +0300 Subject: [PATCH 4/4] Server: Create all players as registered Registered players have a ranking icon next to their names in lobbies. This also adjusts the default ranking to be 0, instead of 10000 to display the basic ranking icon. --- .../org/moparforia/server/game/Player.java | 18 +++++++++--------- .../golf/TrackTestLoginHandler.java | 2 +- .../java/org/moparforia/server/ServerTest.java | 4 ++-- 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/server/src/main/java/org/moparforia/server/game/Player.java b/server/src/main/java/org/moparforia/server/game/Player.java index 9068ce5e..95fddd35 100644 --- a/server/src/main/java/org/moparforia/server/game/Player.java +++ b/server/src/main/java/org/moparforia/server/game/Player.java @@ -20,7 +20,7 @@ public class Player { private String avatarUrl; private String clan; private int accessLevel; - private int points; + private int ranking; private boolean emailVerified;// todo or something like that maybe, find out private boolean registered; private boolean vip; @@ -36,7 +36,7 @@ public class Player { public Player(Channel channel, int id) { this.channel = channel; this.id = id; - points = 0; + ranking = 0; resetVals(); } @@ -52,7 +52,7 @@ public void resetVals() { avatarUrl = "-"; clan = "-"; accessLevel = ACCESSLEVEL_NORMAL; - points = 10000; + ranking = 0; emailVerified = false; registered = false; vip = false; @@ -132,12 +132,12 @@ public void setAccessLevel(int whatsyourgame) { this.accessLevel = whatsyourgame; } - public int getPoints() { - return points; + public int getRanking() { + return ranking; } - public void setPoints(int points) { - this.points = points; + public void setRanking(int ranking) { + this.ranking = ranking; } public boolean isEmailVerified() { @@ -216,7 +216,7 @@ public boolean equals(Object o) { if (o == null || !(o instanceof Player)) return false; Player p = (Player) o; - return nick.equals(p.nick) && points == p.points && locale.equals(p.locale); + return nick.equals(p.nick) && ranking == p.ranking && locale.equals(p.locale); } public String toString() { @@ -224,7 +224,7 @@ public String toString() { return Tools.triangelize( "3:" + (nick != null ? nick : ""), tmp.equals("") ? "w" : tmp, - points, + ranking, locale != null ? locale : "", profileUrl != null ? profileUrl : "", avatarUrl != null ? avatarUrl : "" diff --git a/server/src/main/java/org/moparforia/server/net/packethandlers/golf/TrackTestLoginHandler.java b/server/src/main/java/org/moparforia/server/net/packethandlers/golf/TrackTestLoginHandler.java index c492d41d..07e2bc24 100644 --- a/server/src/main/java/org/moparforia/server/net/packethandlers/golf/TrackTestLoginHandler.java +++ b/server/src/main/java/org/moparforia/server/net/packethandlers/golf/TrackTestLoginHandler.java @@ -49,7 +49,7 @@ public boolean handle(Server server, Packet packet, Matcher message) { Player player = packet.getChannel().attr(Player.PLAYER_ATTRIBUTE_KEY).get(); player.setNick(username); player.setEmailVerified(true); - player.setRegistered(!anonym); + player.setRegistered(true); packet.getChannel().writeAndFlush(new Packet(PacketType.DATA, Tools.tabularize("basicinfo", player.isEmailVerified(), player.getAccessLevel(), "t", "f"))); packet.getChannel().writeAndFlush(new Packet(PacketType.DATA, Tools.tabularize("status", "lobbyselect", 300))); return true; diff --git a/server/src/test/java/org/moparforia/server/ServerTest.java b/server/src/test/java/org/moparforia/server/ServerTest.java index 65dbe18e..c8160743 100644 --- a/server/src/test/java/org/moparforia/server/ServerTest.java +++ b/server/src/test/java/org/moparforia/server/ServerTest.java @@ -77,7 +77,7 @@ void testSinglePlayerFlow() throws IOException, InterruptedException { String lobbyOwnjoin = reader.readLine(); assertEquals("d 4 status\tlobby\t1", statusLobby); assertEquals("d 5 lobby\tusers", lobbyUsers); - assertEquals("d 6 lobby\townjoin\t3:" + nickname + "^w^10000^-^-^-", lobbyOwnjoin); + assertEquals("d 6 lobby\townjoin\t3:" + nickname + "^r^0^-^-^-", lobbyOwnjoin); this.sendMessage(writer, "d 4 lobby\ttracksetlist"); String tracksetlist = reader.readLine(); assertEquals(tracksetlist, "d 7 lobby\ttracksetlist\tBirchwood\t1\t9\tNo one\t1\tNo one\t1\tNo one\t1\tNo one\t1\tOak Park\t1\t18\tNo one\t1\tNo one\t1\tNo one\t1\tNo one\t1\tOne by One\t2\t18\tNo one\t1\tNo one\t1\tNo one\t1\tNo one\t1\tScary Set\t3\t9\tNo one\t1\tNo one\t1\tNo one\t1\tNo one\t1\tSpruce Corpse\t2\t9\tNo one\t1\tNo one\t1\tNo one\t1\tNo one\t1\tThe First\t2\t18\tNo one\t1\tNo one\t1\tNo one\t1\tNo one\t1\tTorment Fields\t3\t18\tNo one\t1\tNo one\t1\tNo one\t1\tNo one\t1"); @@ -108,7 +108,7 @@ void testSinglePlayerFlow() throws IOException, InterruptedException { lobbyOwnjoin = reader.readLine(); assertEquals("d 16 status\tlobby\t1", statusLobby); assertEquals("d 17 lobby\tusers", lobbyUsers); - assertEquals("d 18 lobby\townjoin\t3:" + nickname + "^w^10000^-^-^-", lobbyOwnjoin); + assertEquals("d 18 lobby\townjoin\t3:" + nickname + "^r^0^-^-^-", lobbyOwnjoin); // quit game this.sendMessage(writer, "d 7 lobby\tquit");