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>
Date: Thu, 16 Jan 2020 14:59:16 -0600
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/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/JConsolePanel.java | 128 ++++++++++++++++
.../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 +++++++
.../purpur/gui/info/graph/GraphColor.java | 44 ++++++
.../pl3x/purpur/gui/info/graph/GraphData.java | 47 ++++++
.../pl3x/purpur/gui/info/graph/RAMGraph.java | 138 ++++++++++++++++++
.../purpur/gui/playerlist/JPlayerList.java | 57 ++++++++
.../pl3x/purpur/gui/info/graph/RAMGraph.java | 144 ++++++++++++++++++
.../purpur/gui/playerlist/JPlayerList.java | 57 +++++++
.../playerlist/PlayerListCellRenderer.java | 22 +++
.../gui/playerlist/PlayerListModel.java | 47 ++++++
.../playerlist/PlayerListMouseAdapter.java | 32 ++++
.../net/pl3x/purpur/gui/util/GUIColor.java | 54 +++++++
.../purpur/util/HighlightErrorConverter.java | 86 +++++++++++
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/console/JColorTextPane.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
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
+++ b/src/main/java/net/minecraft/server/DedicatedServer.java
@@ -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
index af5dd9f2d..f2a8af48d 100644
index af5dd9f2d3..f2a8af48df 100644
--- a/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
@@ -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
new file mode 100644
index 000000000..973b5efef
index 0000000000..973b5efef5
--- /dev/null
+++ b/src/main/java/net/pl3x/purpur/gui/ServerGUI.java
@@ -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
new file mode 100644
index 000000000..55feec811
index 0000000000..55feec811f
--- /dev/null
+++ b/src/main/java/net/pl3x/purpur/gui/console/JColorTextPane.java
@@ -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
new file mode 100644
index 000000000..fb017a070
index 0000000000..fb017a0708
--- /dev/null
+++ b/src/main/java/net/pl3x/purpur/gui/console/JConsolePanel.java
@@ -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
new file mode 100644
index 000000000..4e0b80fdd
index 0000000000..4e0b80fddb
--- /dev/null
+++ b/src/main/java/net/pl3x/purpur/gui/info/DetailsListSelectionModel.java
@@ -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
new file mode 100644
index 000000000..a4983863c
index 0000000000..a4983863cb
--- /dev/null
+++ b/src/main/java/net/pl3x/purpur/gui/info/JInfoPanel.java
@@ -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
new file mode 100644
index 000000000..00f79e433
index 0000000000..00f79e4336
--- /dev/null
+++ b/src/main/java/net/pl3x/purpur/gui/info/RAMDetails.java
@@ -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
new file mode 100644
index 000000000..2fdb9bdd0
index 0000000000..2fdb9bdd0d
--- /dev/null
+++ b/src/main/java/net/pl3x/purpur/gui/info/graph/GraphColor.java
@@ -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
new file mode 100644
index 000000000..85babad9c
index 0000000000..85babad9cd
--- /dev/null
+++ b/src/main/java/net/pl3x/purpur/gui/info/graph/GraphData.java
@@ -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
new file mode 100644
index 000000000..f2f3dd2c1
index 0000000000..0c0c73beeb
--- /dev/null
+++ 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;
+
+import javax.swing.JComponent;
@@ -687,6 +687,7 @@ index 000000000..f2f3dd2c1
+import java.awt.Graphics;
+import java.awt.MouseInfo;
+import java.awt.Point;
+import java.awt.PointerInfo;
+import java.awt.event.MouseAdapter;
+import java.awt.event.MouseEvent;
+import java.text.SimpleDateFormat;
@@ -748,13 +749,18 @@ index 000000000..f2f3dd2c1
+ Runtime jvm = Runtime.getRuntime();
+ DATA.add(new GraphData(jvm.totalMemory(), jvm.freeMemory(), jvm.maxMemory()));
+
+ Point scr = MouseInfo.getPointerInfo().getLocation();
+ Point loc = new Point(scr);
+ SwingUtilities.convertPointFromScreen(loc, this);
+ if (this.contains(loc)) {
+ ToolTipManager.sharedInstance().mouseMoved(
+ new MouseEvent(this, -1, System.currentTimeMillis(), 0, loc.x, loc.y,
+ scr.x, scr.y, 0, false, 0));
+ PointerInfo pointerInfo = MouseInfo.getPointerInfo();
+ if (pointerInfo != null) {
+ Point point = pointerInfo.getLocation();
+ if (point != null) {
+ Point loc = new Point(point);
+ SwingUtilities.convertPointFromScreen(loc, this);
+ 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++;
@@ -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
new file mode 100644
index 000000000..17e75a207
index 0000000000..17e75a2070
--- /dev/null
+++ b/src/main/java/net/pl3x/purpur/gui/playerlist/JPlayerList.java
@@ -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
new file mode 100644
index 000000000..2f02e9adc
index 0000000000..2f02e9adc7
--- /dev/null
+++ b/src/main/java/net/pl3x/purpur/gui/playerlist/PlayerListCellRenderer.java
@@ -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
new file mode 100644
index 000000000..edbf45416
index 0000000000..edbf454163
--- /dev/null
+++ b/src/main/java/net/pl3x/purpur/gui/playerlist/PlayerListModel.java
@@ -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
new file mode 100644
index 000000000..13a5eb3ad
index 0000000000..13a5eb3ad3
--- /dev/null
+++ b/src/main/java/net/pl3x/purpur/gui/playerlist/PlayerListMouseAdapter.java
@@ -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
new file mode 100644
index 000000000..973c8ddf9
index 0000000000..973c8ddf93
--- /dev/null
+++ b/src/main/java/net/pl3x/purpur/gui/util/GUIColor.java
@@ -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
new file mode 100644
index 000000000..4b340b88a
index 0000000000..4b340b88a2
--- /dev/null
+++ b/src/main/java/net/pl3x/purpur/util/HighlightErrorConverter.java
@@ -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
index a9bb98765..4be7613d0 100644
index a9bb987652..4be7613d0f 100644
--- a/src/main/resources/log4j2.xml
+++ b/src/main/resources/log4j2.xml
@@ -1,8 +1,17 @@