Skip to content

Commit 1a5bd63

Browse files
authored
Merge pull request #84 from MultiChat/v1-8
Version 1.8.1
2 parents 62d7a94 + c75d494 commit 1a5bd63

30 files changed

Lines changed: 231 additions & 130 deletions

multichat/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
<groupId>xyz.olivermartin.multichat</groupId>
77
<artifactId>multichat</artifactId>
8-
<version>1.8</version>
8+
<version>1.8.1</version>
99

1010
<repositories>
1111

Binary file not shown.
313 KB
Binary file not shown.

multichat/src/main/java/xyz/olivermartin/multichat/bungee/Channel.java

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -142,7 +142,7 @@ public void sendMessage(ProxiedPlayer sender, String message, String format) {
142142

143143
for (ProxiedPlayer receiver : ProxyServer.getInstance().getPlayers()) {
144144

145-
if (receiver != null) {
145+
if (receiver != null && sender != null) {
146146

147147
synchronized (receiver) {
148148

@@ -172,6 +172,14 @@ public void sendMessage(ProxiedPlayer sender, String message, String format) {
172172

173173
}
174174

175+
} else {
176+
177+
DebugManager.log("NULL POINTER WAS DETECTED CHECKS!");
178+
DebugManager.log("< START >");
179+
DebugManager.log(sender != null ? sender.getName() : "SENDER NULL");
180+
DebugManager.log(receiver != null ? receiver.getUniqueId().toString() : "RECEIVER NULL");
181+
DebugManager.log("< / END >");
182+
175183
}
176184
}
177185

multichat/src/main/java/xyz/olivermartin/multichat/bungee/Events.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -355,6 +355,14 @@ public void onChat(ChatEvent event) {
355355
message = ChatControl.replaceLinks(message);
356356
event.setMessage(message);
357357
}
358+
359+
DebugManager.log("NULL POINTER CHECKS!");
360+
DebugManager.log("< START >");
361+
DebugManager.log(player.getName());
362+
DebugManager.log(player.getUniqueId().toString());
363+
DebugManager.log(Channel.getChannel(player.getUniqueId()).getName());
364+
DebugManager.log(player.getServer().getInfo().getName());
365+
DebugManager.log("< / END >");
358366

359367
// Let server know players channel preference
360368
BungeeComm.sendPlayerChannelMessage(player.getName(), Channel.getChannel(player.getUniqueId()).getName(), Channel.getChannel(player.getUniqueId()), player.getServer().getInfo(), (player.hasPermission("multichat.chat.colour")||player.hasPermission("multichat.chat.color")));

multichat/src/main/java/xyz/olivermartin/multichat/bungee/MultiChat.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,11 +37,12 @@
3737
*/
3838
public class MultiChat extends Plugin implements Listener {
3939

40-
public static final String LATEST_VERSION = "1.8";
40+
public static final String LATEST_VERSION = "1.8.1";
4141

4242
public static final String[] ALLOWED_VERSIONS = new String[] {
4343

4444
LATEST_VERSION,
45+
"1.8",
4546
"1.7.5",
4647
"1.7.4",
4748
"1.7.3",

multichat/src/main/java/xyz/olivermartin/multichat/database/DatabaseManager.java

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ private DatabaseManager() {
3838
////////////
3939

4040
public static void main(String args[]) throws SQLException {
41-
41+
4242
DatabaseManager.getInstance().setPathSQLite(new File("C:\\multichat\\db\\"));
4343
DatabaseManager.getInstance().createDatabase("multichat.db");
4444

@@ -52,31 +52,31 @@ public static void main(String args[]) throws SQLException {
5252

5353
try {
5454
db.connectToDatabase();
55-
db.execute("DROP TABLE IF EXISTS name_data;");
56-
db.execute("DROP TABLE IF EXISTS nick_data;");
57-
58-
db.update("CREATE TABLE IF NOT EXISTS name_data(id VARCHAR(128), f_name VARCHAR(255), u_name VARCHAR(255), PRIMARY KEY (id));");
59-
db.update("CREATE TABLE IF NOT EXISTS nick_data(id VARCHAR(128), u_nick VARCHAR(255), f_nick VARCHAR(255), PRIMARY KEY (id));");
60-
61-
db.update("INSERT INTO name_data VALUES ('" + uuid1.toString() + "', 'Revilo410', 'revilo410');");
62-
db.update("INSERT INTO nick_data VALUES ('" + uuid1.toString() + "', '&3Revi', 'revi');");
63-
db.update("INSERT INTO name_data VALUES ('" + uuid2.toString() + "', 'Revilo510', 'revilo510');");
64-
ResultSet results = db.query("SELECT * FROM name_data;");
55+
db.safeExecute("DROP TABLE IF EXISTS name_data;");
56+
db.safeExecute("DROP TABLE IF EXISTS nick_data;");
57+
58+
db.safeUpdate("CREATE TABLE IF NOT EXISTS name_data(id VARCHAR(128), f_name VARCHAR(255), u_name VARCHAR(255), PRIMARY KEY (id));");
59+
db.safeUpdate("CREATE TABLE IF NOT EXISTS nick_data(id VARCHAR(128), u_nick VARCHAR(255), f_nick VARCHAR(255), PRIMARY KEY (id));");
60+
61+
db.safeUpdate("INSERT INTO name_data VALUES (?, 'Revilo410', 'revilo410');", uuid1.toString());
62+
db.safeUpdate("INSERT INTO nick_data VALUES (?, '&3Revi', 'revi');", uuid1.toString());
63+
db.safeUpdate("INSERT INTO name_data VALUES (?, 'Revilo510', 'revilo510');", uuid2.toString());
64+
ResultSet results = db.safeQuery("SELECT * FROM name_data;");
6565
while (results.next()) {
6666
System.out.println(results.getString("id"));
6767
}
68-
69-
results = db.query("SELECT * FROM nick_data;");
68+
69+
results = db.safeQuery("SELECT * FROM nick_data;");
7070
while (results.next()) {
7171
System.out.println(results.getString("id"));
7272
}
73-
74-
results = db.query("SELECT * FROM name_data INNER JOIN nick_data ON name_data.id = nick_data.id;");
73+
74+
results = db.safeQuery("SELECT * FROM name_data INNER JOIN nick_data ON name_data.id = nick_data.id;");
7575
while (results.next()) {
7676
System.out.println(results.getString("id"));
7777
}
78-
79-
results = db.query("SELECT * FROM name_data LEFT JOIN nick_data ON name_data.id = nick_data.id;");
78+
79+
results = db.safeQuery("SELECT * FROM name_data LEFT JOIN nick_data ON name_data.id = nick_data.id;");
8080
while (results.next()) {
8181
System.out.println(results.getString("id"));
8282
if (results.getString("f_nick") == null) {
@@ -85,21 +85,21 @@ public static void main(String args[]) throws SQLException {
8585
System.out.println(results.getString("f_nick"));
8686
}
8787
}
88-
89-
results = db.query("SELECT f_name, f_nick FROM name_data LEFT JOIN nick_data ON name_data.id = nick_data.id WHERE name_data.id = '" + uuid1.toString() + "';");
88+
89+
results = db.safeQuery("SELECT f_name, f_nick FROM name_data LEFT JOIN nick_data ON name_data.id = nick_data.id WHERE name_data.id = ?;", uuid1.toString());
9090
while (results.next()) {
9191
if (results.getString("f_nick") == null) {
9292
System.out.println(results.getString("f_name"));
9393
} else {
9494
System.out.println(results.getString("f_nick"));
9595
}
9696
}
97-
97+
9898
db.disconnectFromDatabase();
9999
} catch (SQLException e) {
100100
e.printStackTrace();
101101
}
102-
102+
103103
}
104104

105105
/*DatabaseManager.getInstance().setPathSQLite(new File("C:\\multichat\\db\\"));

multichat/src/main/java/xyz/olivermartin/multichat/database/GenericDatabase.java

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,15 +7,15 @@ public abstract class GenericDatabase {
77

88
protected String url;
99
private boolean ready;
10-
10+
1111
protected String username;
1212
protected String password;
1313

1414
public GenericDatabase(String url) throws SQLException {
1515
this.url = url;
1616
ready = setupDatabase(url);
1717
}
18-
18+
1919
public GenericDatabase(String url, String user, String pass) throws SQLException {
2020
this.url = url;
2121
this.username = user;
@@ -37,11 +37,17 @@ public boolean isReady() {
3737

3838
protected abstract boolean connect() throws SQLException;
3939

40-
public abstract ResultSet query(String sql) throws SQLException;
40+
public abstract ResultSet safeQuery(String sqlTemplate, String... stringParameters) throws SQLException;
41+
42+
public abstract void safeUpdate(String sqlTemplate, String... stringParameters) throws SQLException;
43+
44+
public abstract void safeExecute(String sqlTemplate, String... stringParameters) throws SQLException;
45+
46+
//public abstract ResultSet query(String sql) throws SQLException;
47+
48+
//public abstract void update(String sql) throws SQLException;
4149

42-
public abstract void update(String sql) throws SQLException;
43-
44-
public abstract void execute(String sql) throws SQLException;
50+
//public abstract void execute(String sql) throws SQLException;
4551

4652
public void connectToDatabase() throws SQLException {
4753
this.ready = connect();

multichat/src/main/java/xyz/olivermartin/multichat/database/MySQLDatabase.java

Lines changed: 41 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import java.sql.Connection;
44
import java.sql.DriverManager;
5+
import java.sql.PreparedStatement;
56
import java.sql.ResultSet;
67
import java.sql.SQLException;
78

@@ -70,7 +71,7 @@ protected boolean connect() throws SQLException {
7071
return true;
7172
}
7273

73-
@Override
74+
/*@Override
7475
public ResultSet query(String sql) throws SQLException {
7576
7677
ResultSet results = conn.createStatement().executeQuery(sql);
@@ -90,8 +91,47 @@ public void execute(String sql) throws SQLException {
9091
9192
conn.createStatement().execute(sql);
9293
94+
}*/
95+
96+
@Override
97+
public ResultSet safeQuery(String sqlTemplate, String... stringParameters) throws SQLException {
98+
99+
PreparedStatement p = conn.prepareStatement(sqlTemplate);
100+
101+
for (int i = 1; i <= stringParameters.length; i++) {
102+
p.setString(i, stringParameters[i-1]);
103+
}
104+
105+
ResultSet results = p.executeQuery();
106+
107+
return results;
108+
109+
}
110+
111+
@Override
112+
public void safeUpdate(String sqlTemplate, String... stringParameters) throws SQLException {
113+
114+
PreparedStatement p = conn.prepareStatement(sqlTemplate);
115+
116+
for (int i = 1; i <= stringParameters.length; i++) {
117+
p.setString(i, stringParameters[i-1]);
118+
}
119+
120+
p.executeUpdate();
121+
93122
}
94123

124+
@Override
125+
public void safeExecute(String sqlTemplate, String... stringParameters) throws SQLException {
126+
127+
PreparedStatement p = conn.prepareStatement(sqlTemplate);
128+
129+
for (int i = 1; i <= stringParameters.length; i++) {
130+
p.setString(i, stringParameters[i-1]);
131+
}
132+
133+
p.execute();
95134

135+
}
96136

97137
}

multichat/src/main/java/xyz/olivermartin/multichat/database/SQLiteDatabase.java

Lines changed: 43 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import java.io.File;
44
import java.sql.Connection;
55
import java.sql.DriverManager;
6+
import java.sql.PreparedStatement;
67
import java.sql.ResultSet;
78
import java.sql.SQLException;
89

@@ -71,7 +72,7 @@ protected boolean connect() throws SQLException {
7172
return true;
7273
}
7374

74-
@Override
75+
/*@Override
7576
public ResultSet query(String sql) throws SQLException {
7677
7778
ResultSet results = conn.createStatement().executeQuery(sql);
@@ -91,6 +92,47 @@ public void execute(String sql) throws SQLException {
9192
9293
conn.createStatement().execute(sql);
9394
95+
}*/
96+
97+
@Override
98+
public ResultSet safeQuery(String sqlTemplate, String... stringParameters) throws SQLException {
99+
100+
PreparedStatement p = conn.prepareStatement(sqlTemplate);
101+
102+
for (int i = 1; i <= stringParameters.length; i++) {
103+
p.setString(i, stringParameters[i-1]);
104+
}
105+
106+
ResultSet results = p.executeQuery();
107+
108+
return results;
109+
110+
}
111+
112+
@Override
113+
public void safeUpdate(String sqlTemplate, String... stringParameters) throws SQLException {
114+
115+
PreparedStatement p = conn.prepareStatement(sqlTemplate);
116+
117+
for (int i = 1; i <= stringParameters.length; i++) {
118+
p.setString(i, stringParameters[i-1]);
119+
}
120+
121+
p.executeUpdate();
122+
123+
}
124+
125+
@Override
126+
public void safeExecute(String sqlTemplate, String... stringParameters) throws SQLException {
127+
128+
PreparedStatement p = conn.prepareStatement(sqlTemplate);
129+
130+
for (int i = 1; i <= stringParameters.length; i++) {
131+
p.setString(i, stringParameters[i-1]);
132+
}
133+
134+
p.execute();
135+
94136
}
95137

96138
}

0 commit comments

Comments
 (0)