Fix NPE on GUI when mouse info in unavailable

This commit is contained in:
William Blake Galbreath
2020-03-13 17:56:14 -05:00
parent 65a3567ab4
commit 5538109a89

View File

@@ -1,4 +1,4 @@
From 335d8b0af490d19df395bcee5ead408a0261ba98 Mon Sep 17 00:00:00 2001 From fe907eb13ca2c2ad64be766bf0579149385f1caa Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <Blake.Galbreath@GMail.com> From: William Blake Galbreath <Blake.Galbreath@GMail.com>
Date: Thu, 16 Jan 2020 14:59:16 -0600 Date: Thu, 16 Jan 2020 14:59:16 -0600
Subject: [PATCH] Make the GUI better Subject: [PATCH] Make the GUI better
@@ -6,23 +6,23 @@ Subject: [PATCH] Make the GUI better
--- ---
.../net/minecraft/server/DedicatedServer.java | 6 +- .../net/minecraft/server/DedicatedServer.java | 6 +-
.../net/minecraft/server/MinecraftServer.java | 1 + .../net/minecraft/server/MinecraftServer.java | 1 +
.../java/net/pl3x/purpur/gui/ServerGUI.java | 123 ++++++++++++++++ .../java/net/pl3x/purpur/gui/ServerGUI.java | 123 +++++++++++++++
.../purpur/gui/console/JColorTextPane.java | 81 ++++++++++ .../purpur/gui/console/JColorTextPane.java | 81 ++++++++++
.../purpur/gui/console/JConsolePanel.java | 128 ++++++++++++++++ .../purpur/gui/console/JConsolePanel.java | 128 ++++++++++++++++
.../gui/info/DetailsListSelectionModel.java | 21 +++ .../gui/info/DetailsListSelectionModel.java | 21 +++
.../net/pl3x/purpur/gui/info/JInfoPanel.java | 42 ++++++ .../net/pl3x/purpur/gui/info/JInfoPanel.java | 42 +++++
.../net/pl3x/purpur/gui/info/RAMDetails.java | 54 +++++++ .../net/pl3x/purpur/gui/info/RAMDetails.java | 54 +++++++
.../purpur/gui/info/graph/GraphColor.java | 44 ++++++ .../purpur/gui/info/graph/GraphColor.java | 44 ++++++
.../pl3x/purpur/gui/info/graph/GraphData.java | 47 ++++++ .../pl3x/purpur/gui/info/graph/GraphData.java | 47 ++++++
.../pl3x/purpur/gui/info/graph/RAMGraph.java | 138 ++++++++++++++++++ .../pl3x/purpur/gui/info/graph/RAMGraph.java | 144 ++++++++++++++++++
.../purpur/gui/playerlist/JPlayerList.java | 57 ++++++++ .../purpur/gui/playerlist/JPlayerList.java | 57 +++++++
.../playerlist/PlayerListCellRenderer.java | 22 +++ .../playerlist/PlayerListCellRenderer.java | 22 +++
.../gui/playerlist/PlayerListModel.java | 47 ++++++ .../gui/playerlist/PlayerListModel.java | 47 ++++++
.../playerlist/PlayerListMouseAdapter.java | 32 ++++ .../playerlist/PlayerListMouseAdapter.java | 32 ++++
.../net/pl3x/purpur/gui/util/GUIColor.java | 54 +++++++ .../net/pl3x/purpur/gui/util/GUIColor.java | 54 +++++++
.../purpur/util/HighlightErrorConverter.java | 86 +++++++++++ .../purpur/util/HighlightErrorConverter.java | 86 +++++++++++
src/main/resources/log4j2.xml | 13 +- src/main/resources/log4j2.xml | 13 +-
18 files changed, 991 insertions(+), 5 deletions(-) 18 files changed, 997 insertions(+), 5 deletions(-)
create mode 100644 src/main/java/net/pl3x/purpur/gui/ServerGUI.java create mode 100644 src/main/java/net/pl3x/purpur/gui/ServerGUI.java
create mode 100644 src/main/java/net/pl3x/purpur/gui/console/JColorTextPane.java create mode 100644 src/main/java/net/pl3x/purpur/gui/console/JColorTextPane.java
create mode 100644 src/main/java/net/pl3x/purpur/gui/console/JConsolePanel.java create mode 100644 src/main/java/net/pl3x/purpur/gui/console/JConsolePanel.java
@@ -40,7 +40,7 @@ Subject: [PATCH] Make the GUI better
create mode 100644 src/main/java/net/pl3x/purpur/util/HighlightErrorConverter.java create mode 100644 src/main/java/net/pl3x/purpur/util/HighlightErrorConverter.java
diff --git a/src/main/java/net/minecraft/server/DedicatedServer.java b/src/main/java/net/minecraft/server/DedicatedServer.java diff --git a/src/main/java/net/minecraft/server/DedicatedServer.java b/src/main/java/net/minecraft/server/DedicatedServer.java
index 8c7156bb5..5337c0be0 100644 index 8c7156bb52..5337c0be08 100644
--- a/src/main/java/net/minecraft/server/DedicatedServer.java --- a/src/main/java/net/minecraft/server/DedicatedServer.java
+++ b/src/main/java/net/minecraft/server/DedicatedServer.java +++ b/src/main/java/net/minecraft/server/DedicatedServer.java
@@ -51,7 +51,7 @@ public class DedicatedServer extends MinecraftServer implements IMinecraftServer @@ -51,7 +51,7 @@ public class DedicatedServer extends MinecraftServer implements IMinecraftServer
@@ -71,7 +71,7 @@ index 8c7156bb5..5337c0be0 100644
} }
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index af5dd9f2d..f2a8af48d 100644 index af5dd9f2d3..f2a8af48df 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java --- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -1289,6 +1289,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas @@ -1289,6 +1289,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
@@ -84,7 +84,7 @@ index af5dd9f2d..f2a8af48d 100644
} }
diff --git a/src/main/java/net/pl3x/purpur/gui/ServerGUI.java b/src/main/java/net/pl3x/purpur/gui/ServerGUI.java diff --git a/src/main/java/net/pl3x/purpur/gui/ServerGUI.java b/src/main/java/net/pl3x/purpur/gui/ServerGUI.java
new file mode 100644 new file mode 100644
index 000000000..973b5efef index 0000000000..973b5efef5
--- /dev/null --- /dev/null
+++ b/src/main/java/net/pl3x/purpur/gui/ServerGUI.java +++ b/src/main/java/net/pl3x/purpur/gui/ServerGUI.java
@@ -0,0 +1,123 @@ @@ -0,0 +1,123 @@
@@ -213,7 +213,7 @@ index 000000000..973b5efef
+} +}
diff --git a/src/main/java/net/pl3x/purpur/gui/console/JColorTextPane.java b/src/main/java/net/pl3x/purpur/gui/console/JColorTextPane.java diff --git a/src/main/java/net/pl3x/purpur/gui/console/JColorTextPane.java b/src/main/java/net/pl3x/purpur/gui/console/JColorTextPane.java
new file mode 100644 new file mode 100644
index 000000000..55feec811 index 0000000000..55feec811f
--- /dev/null --- /dev/null
+++ b/src/main/java/net/pl3x/purpur/gui/console/JColorTextPane.java +++ b/src/main/java/net/pl3x/purpur/gui/console/JColorTextPane.java
@@ -0,0 +1,81 @@ @@ -0,0 +1,81 @@
@@ -300,7 +300,7 @@ index 000000000..55feec811
+} +}
diff --git a/src/main/java/net/pl3x/purpur/gui/console/JConsolePanel.java b/src/main/java/net/pl3x/purpur/gui/console/JConsolePanel.java diff --git a/src/main/java/net/pl3x/purpur/gui/console/JConsolePanel.java b/src/main/java/net/pl3x/purpur/gui/console/JConsolePanel.java
new file mode 100644 new file mode 100644
index 000000000..fb017a070 index 0000000000..fb017a0708
--- /dev/null --- /dev/null
+++ b/src/main/java/net/pl3x/purpur/gui/console/JConsolePanel.java +++ b/src/main/java/net/pl3x/purpur/gui/console/JConsolePanel.java
@@ -0,0 +1,128 @@ @@ -0,0 +1,128 @@
@@ -434,7 +434,7 @@ index 000000000..fb017a070
+} +}
diff --git a/src/main/java/net/pl3x/purpur/gui/info/DetailsListSelectionModel.java b/src/main/java/net/pl3x/purpur/gui/info/DetailsListSelectionModel.java diff --git a/src/main/java/net/pl3x/purpur/gui/info/DetailsListSelectionModel.java b/src/main/java/net/pl3x/purpur/gui/info/DetailsListSelectionModel.java
new file mode 100644 new file mode 100644
index 000000000..4e0b80fdd index 0000000000..4e0b80fddb
--- /dev/null --- /dev/null
+++ b/src/main/java/net/pl3x/purpur/gui/info/DetailsListSelectionModel.java +++ b/src/main/java/net/pl3x/purpur/gui/info/DetailsListSelectionModel.java
@@ -0,0 +1,21 @@ @@ -0,0 +1,21 @@
@@ -461,7 +461,7 @@ index 000000000..4e0b80fdd
+} +}
diff --git a/src/main/java/net/pl3x/purpur/gui/info/JInfoPanel.java b/src/main/java/net/pl3x/purpur/gui/info/JInfoPanel.java diff --git a/src/main/java/net/pl3x/purpur/gui/info/JInfoPanel.java b/src/main/java/net/pl3x/purpur/gui/info/JInfoPanel.java
new file mode 100644 new file mode 100644
index 000000000..a4983863c index 0000000000..a4983863cb
--- /dev/null --- /dev/null
+++ b/src/main/java/net/pl3x/purpur/gui/info/JInfoPanel.java +++ b/src/main/java/net/pl3x/purpur/gui/info/JInfoPanel.java
@@ -0,0 +1,42 @@ @@ -0,0 +1,42 @@
@@ -509,7 +509,7 @@ index 000000000..a4983863c
+} +}
diff --git a/src/main/java/net/pl3x/purpur/gui/info/RAMDetails.java b/src/main/java/net/pl3x/purpur/gui/info/RAMDetails.java diff --git a/src/main/java/net/pl3x/purpur/gui/info/RAMDetails.java b/src/main/java/net/pl3x/purpur/gui/info/RAMDetails.java
new file mode 100644 new file mode 100644
index 000000000..00f79e433 index 0000000000..00f79e4336
--- /dev/null --- /dev/null
+++ b/src/main/java/net/pl3x/purpur/gui/info/RAMDetails.java +++ b/src/main/java/net/pl3x/purpur/gui/info/RAMDetails.java
@@ -0,0 +1,54 @@ @@ -0,0 +1,54 @@
@@ -569,7 +569,7 @@ index 000000000..00f79e433
+} +}
diff --git a/src/main/java/net/pl3x/purpur/gui/info/graph/GraphColor.java b/src/main/java/net/pl3x/purpur/gui/info/graph/GraphColor.java diff --git a/src/main/java/net/pl3x/purpur/gui/info/graph/GraphColor.java b/src/main/java/net/pl3x/purpur/gui/info/graph/GraphColor.java
new file mode 100644 new file mode 100644
index 000000000..2fdb9bdd0 index 0000000000..2fdb9bdd0d
--- /dev/null --- /dev/null
+++ b/src/main/java/net/pl3x/purpur/gui/info/graph/GraphColor.java +++ b/src/main/java/net/pl3x/purpur/gui/info/graph/GraphColor.java
@@ -0,0 +1,44 @@ @@ -0,0 +1,44 @@
@@ -619,7 +619,7 @@ index 000000000..2fdb9bdd0
+} +}
diff --git a/src/main/java/net/pl3x/purpur/gui/info/graph/GraphData.java b/src/main/java/net/pl3x/purpur/gui/info/graph/GraphData.java diff --git a/src/main/java/net/pl3x/purpur/gui/info/graph/GraphData.java b/src/main/java/net/pl3x/purpur/gui/info/graph/GraphData.java
new file mode 100644 new file mode 100644
index 000000000..85babad9c index 0000000000..85babad9cd
--- /dev/null --- /dev/null
+++ b/src/main/java/net/pl3x/purpur/gui/info/graph/GraphData.java +++ b/src/main/java/net/pl3x/purpur/gui/info/graph/GraphData.java
@@ -0,0 +1,47 @@ @@ -0,0 +1,47 @@
@@ -672,10 +672,10 @@ index 000000000..85babad9c
+} +}
diff --git a/src/main/java/net/pl3x/purpur/gui/info/graph/RAMGraph.java b/src/main/java/net/pl3x/purpur/gui/info/graph/RAMGraph.java diff --git a/src/main/java/net/pl3x/purpur/gui/info/graph/RAMGraph.java b/src/main/java/net/pl3x/purpur/gui/info/graph/RAMGraph.java
new file mode 100644 new file mode 100644
index 000000000..f2f3dd2c1 index 0000000000..0c0c73beeb
--- /dev/null --- /dev/null
+++ b/src/main/java/net/pl3x/purpur/gui/info/graph/RAMGraph.java +++ b/src/main/java/net/pl3x/purpur/gui/info/graph/RAMGraph.java
@@ -0,0 +1,138 @@ @@ -0,0 +1,144 @@
+package net.pl3x.purpur.gui.info.graph; +package net.pl3x.purpur.gui.info.graph;
+ +
+import javax.swing.JComponent; +import javax.swing.JComponent;
@@ -687,6 +687,7 @@ index 000000000..f2f3dd2c1
+import java.awt.Graphics; +import java.awt.Graphics;
+import java.awt.MouseInfo; +import java.awt.MouseInfo;
+import java.awt.Point; +import java.awt.Point;
+import java.awt.PointerInfo;
+import java.awt.event.MouseAdapter; +import java.awt.event.MouseAdapter;
+import java.awt.event.MouseEvent; +import java.awt.event.MouseEvent;
+import java.text.SimpleDateFormat; +import java.text.SimpleDateFormat;
@@ -748,13 +749,18 @@ index 000000000..f2f3dd2c1
+ Runtime jvm = Runtime.getRuntime(); + Runtime jvm = Runtime.getRuntime();
+ DATA.add(new GraphData(jvm.totalMemory(), jvm.freeMemory(), jvm.maxMemory())); + DATA.add(new GraphData(jvm.totalMemory(), jvm.freeMemory(), jvm.maxMemory()));
+ +
+ Point scr = MouseInfo.getPointerInfo().getLocation(); + PointerInfo pointerInfo = MouseInfo.getPointerInfo();
+ Point loc = new Point(scr); + if (pointerInfo != null) {
+ SwingUtilities.convertPointFromScreen(loc, this); + Point point = pointerInfo.getLocation();
+ if (this.contains(loc)) { + if (point != null) {
+ ToolTipManager.sharedInstance().mouseMoved( + Point loc = new Point(point);
+ new MouseEvent(this, -1, System.currentTimeMillis(), 0, loc.x, loc.y, + SwingUtilities.convertPointFromScreen(loc, this);
+ scr.x, scr.y, 0, false, 0)); + if (this.contains(loc)) {
+ ToolTipManager.sharedInstance().mouseMoved(
+ new MouseEvent(this, -1, System.currentTimeMillis(), 0, loc.x, loc.y,
+ point.x, point.y, 0, false, 0));
+ }
+ }
+ } + }
+ +
+ currentTick++; + currentTick++;
@@ -816,7 +822,7 @@ index 000000000..f2f3dd2c1
+} +}
diff --git a/src/main/java/net/pl3x/purpur/gui/playerlist/JPlayerList.java b/src/main/java/net/pl3x/purpur/gui/playerlist/JPlayerList.java diff --git a/src/main/java/net/pl3x/purpur/gui/playerlist/JPlayerList.java b/src/main/java/net/pl3x/purpur/gui/playerlist/JPlayerList.java
new file mode 100644 new file mode 100644
index 000000000..17e75a207 index 0000000000..17e75a2070
--- /dev/null --- /dev/null
+++ b/src/main/java/net/pl3x/purpur/gui/playerlist/JPlayerList.java +++ b/src/main/java/net/pl3x/purpur/gui/playerlist/JPlayerList.java
@@ -0,0 +1,57 @@ @@ -0,0 +1,57 @@
@@ -879,7 +885,7 @@ index 000000000..17e75a207
+} +}
diff --git a/src/main/java/net/pl3x/purpur/gui/playerlist/PlayerListCellRenderer.java b/src/main/java/net/pl3x/purpur/gui/playerlist/PlayerListCellRenderer.java diff --git a/src/main/java/net/pl3x/purpur/gui/playerlist/PlayerListCellRenderer.java b/src/main/java/net/pl3x/purpur/gui/playerlist/PlayerListCellRenderer.java
new file mode 100644 new file mode 100644
index 000000000..2f02e9adc index 0000000000..2f02e9adc7
--- /dev/null --- /dev/null
+++ b/src/main/java/net/pl3x/purpur/gui/playerlist/PlayerListCellRenderer.java +++ b/src/main/java/net/pl3x/purpur/gui/playerlist/PlayerListCellRenderer.java
@@ -0,0 +1,22 @@ @@ -0,0 +1,22 @@
@@ -907,7 +913,7 @@ index 000000000..2f02e9adc
+} +}
diff --git a/src/main/java/net/pl3x/purpur/gui/playerlist/PlayerListModel.java b/src/main/java/net/pl3x/purpur/gui/playerlist/PlayerListModel.java diff --git a/src/main/java/net/pl3x/purpur/gui/playerlist/PlayerListModel.java b/src/main/java/net/pl3x/purpur/gui/playerlist/PlayerListModel.java
new file mode 100644 new file mode 100644
index 000000000..edbf45416 index 0000000000..edbf454163
--- /dev/null --- /dev/null
+++ b/src/main/java/net/pl3x/purpur/gui/playerlist/PlayerListModel.java +++ b/src/main/java/net/pl3x/purpur/gui/playerlist/PlayerListModel.java
@@ -0,0 +1,47 @@ @@ -0,0 +1,47 @@
@@ -960,7 +966,7 @@ index 000000000..edbf45416
+} +}
diff --git a/src/main/java/net/pl3x/purpur/gui/playerlist/PlayerListMouseAdapter.java b/src/main/java/net/pl3x/purpur/gui/playerlist/PlayerListMouseAdapter.java diff --git a/src/main/java/net/pl3x/purpur/gui/playerlist/PlayerListMouseAdapter.java b/src/main/java/net/pl3x/purpur/gui/playerlist/PlayerListMouseAdapter.java
new file mode 100644 new file mode 100644
index 000000000..13a5eb3ad index 0000000000..13a5eb3ad3
--- /dev/null --- /dev/null
+++ b/src/main/java/net/pl3x/purpur/gui/playerlist/PlayerListMouseAdapter.java +++ b/src/main/java/net/pl3x/purpur/gui/playerlist/PlayerListMouseAdapter.java
@@ -0,0 +1,32 @@ @@ -0,0 +1,32 @@
@@ -998,7 +1004,7 @@ index 000000000..13a5eb3ad
+} +}
diff --git a/src/main/java/net/pl3x/purpur/gui/util/GUIColor.java b/src/main/java/net/pl3x/purpur/gui/util/GUIColor.java diff --git a/src/main/java/net/pl3x/purpur/gui/util/GUIColor.java b/src/main/java/net/pl3x/purpur/gui/util/GUIColor.java
new file mode 100644 new file mode 100644
index 000000000..973c8ddf9 index 0000000000..973c8ddf93
--- /dev/null --- /dev/null
+++ b/src/main/java/net/pl3x/purpur/gui/util/GUIColor.java +++ b/src/main/java/net/pl3x/purpur/gui/util/GUIColor.java
@@ -0,0 +1,54 @@ @@ -0,0 +1,54 @@
@@ -1058,7 +1064,7 @@ index 000000000..973c8ddf9
+} +}
diff --git a/src/main/java/net/pl3x/purpur/util/HighlightErrorConverter.java b/src/main/java/net/pl3x/purpur/util/HighlightErrorConverter.java diff --git a/src/main/java/net/pl3x/purpur/util/HighlightErrorConverter.java b/src/main/java/net/pl3x/purpur/util/HighlightErrorConverter.java
new file mode 100644 new file mode 100644
index 000000000..4b340b88a index 0000000000..4b340b88a2
--- /dev/null --- /dev/null
+++ b/src/main/java/net/pl3x/purpur/util/HighlightErrorConverter.java +++ b/src/main/java/net/pl3x/purpur/util/HighlightErrorConverter.java
@@ -0,0 +1,86 @@ @@ -0,0 +1,86 @@
@@ -1149,7 +1155,7 @@ index 000000000..4b340b88a
+ +
+} +}
diff --git a/src/main/resources/log4j2.xml b/src/main/resources/log4j2.xml diff --git a/src/main/resources/log4j2.xml b/src/main/resources/log4j2.xml
index a9bb98765..4be7613d0 100644 index a9bb987652..4be7613d0f 100644
--- a/src/main/resources/log4j2.xml --- a/src/main/resources/log4j2.xml
+++ b/src/main/resources/log4j2.xml +++ b/src/main/resources/log4j2.xml
@@ -1,8 +1,17 @@ @@ -1,8 +1,17 @@