Skip to content

Commit c1ceb47

Browse files
Some code cleanup (#2414)
1 parent 92faaee commit c1ceb47

39 files changed

+537
-516
lines changed

src/main/java/com/comphenix/protocol/CommandFilter.java

Lines changed: 34 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,10 @@
11
package com.comphenix.protocol;
22

3-
import java.util.ArrayList;
4-
import java.util.Deque;
5-
import java.util.HashSet;
6-
import java.util.Iterator;
7-
import java.util.List;
8-
import java.util.Set;
9-
10-
import javax.script.Invocable;
11-
import javax.script.ScriptEngine;
12-
import javax.script.ScriptEngineManager;
13-
import javax.script.ScriptException;
14-
3+
import com.comphenix.protocol.MultipleLinesPrompt.MultipleConversationCanceller;
4+
import com.comphenix.protocol.error.ErrorReporter;
5+
import com.comphenix.protocol.error.Report;
6+
import com.comphenix.protocol.error.ReportType;
7+
import com.comphenix.protocol.events.PacketEvent;
158
import org.bukkit.ChatColor;
169
import org.bukkit.command.CommandSender;
1710
import org.bukkit.conversations.Conversable;
@@ -22,11 +15,16 @@
2215
import org.bukkit.conversations.ConversationFactory;
2316
import org.bukkit.plugin.Plugin;
2417

25-
import com.comphenix.protocol.MultipleLinesPrompt.MultipleConversationCanceller;
26-
import com.comphenix.protocol.error.ErrorReporter;
27-
import com.comphenix.protocol.error.Report;
28-
import com.comphenix.protocol.error.ReportType;
29-
import com.comphenix.protocol.events.PacketEvent;
18+
import javax.script.Invocable;
19+
import javax.script.ScriptEngine;
20+
import javax.script.ScriptEngineManager;
21+
import javax.script.ScriptException;
22+
import java.util.Deque;
23+
import java.util.HashMap;
24+
import java.util.HashSet;
25+
import java.util.Iterator;
26+
import java.util.Map;
27+
import java.util.Set;
3028

3129
/**
3230
* A command to apply JavaScript filtering to the packet command.
@@ -48,7 +46,7 @@ public interface FilterFailedHandler{
4846
* @param ex - the failure.
4947
* @return TRUE to keep processing this filter, FALSE to remove it.
5048
*/
51-
public boolean handle(PacketEvent event, Filter filter, Exception ex);
49+
boolean handle(PacketEvent event, Filter filter, Exception ex);
5250
}
5351

5452
/**
@@ -57,7 +55,7 @@ public interface FilterFailedHandler{
5755
* @author Kristian
5856
*/
5957
private enum SubCommand {
60-
ADD, REMOVE;
58+
ADD, REMOVE
6159
}
6260

6361
/**
@@ -206,13 +204,13 @@ public CompilationSuccessCanceller clone() {
206204
private FilterFailedHandler defaultFailedHandler;
207205

208206
// Currently registered filters
209-
private List<Filter> filters = new ArrayList<Filter>();
207+
private final Map<String, Filter> filters = new HashMap<>();
210208

211209
// Owner plugin
212210
private final Plugin plugin;
213211

214-
// Whether or not the command is enabled
215-
private ProtocolConfig config;
212+
// Whether the command is enabled
213+
private final ProtocolConfig config;
216214

217215
// Script engine
218216
private ScriptEngine engine;
@@ -227,7 +225,7 @@ public CommandFilter(ErrorReporter reporter, Plugin plugin, ProtocolConfig confi
227225
this.uninitialized = true;
228226
}
229227

230-
private void initalizeScript() {
228+
private void initializeScript() {
231229
try {
232230
// First attempt
233231
initializeEngine();
@@ -306,7 +304,7 @@ public boolean handle(PacketEvent event, Filter filter, Exception ex) {
306304
}
307305

308306
/**
309-
* Determine whether or not to pass the given packet event to the packet listeners.
307+
* Determine whether to pass the given packet event to the packet listeners.
310308
* <p>
311309
* Uses a default filter failure handler that simply prints the error message and removes the filter.
312310
* @param event - the event.
@@ -317,13 +315,13 @@ public boolean filterEvent(PacketEvent event) {
317315
}
318316

319317
/**
320-
* Determine whether or not to pass the given packet event to the packet listeners.
318+
* Determine whether to pass the given packet event to the packet listeners.
321319
* @param event - the event.
322320
* @param handler - failure handler.
323321
* @return TRUE if we should, FALSE otherwise.
324322
*/
325323
public boolean filterEvent(PacketEvent event, FilterFailedHandler handler) {
326-
for (Iterator<Filter> it = filters.iterator(); it.hasNext(); ) {
324+
for (Iterator<Filter> it = filters.values().iterator(); it.hasNext(); ) {
327325
Filter filter = it.next();
328326

329327
try {
@@ -347,7 +345,7 @@ private void checkScriptStatus() {
347345
// Start the engine
348346
if (uninitialized) {
349347
uninitialized = false;
350-
initalizeScript();
348+
initializeScript();
351349
}
352350
}
353351

@@ -370,11 +368,12 @@ protected boolean handleCommand(CommandSender sender, String[] args) {
370368

371369
final SubCommand command = parseCommand(args, 0);
372370
final String name = args[1];
373-
371+
final String lowerCaseName = name.toLowerCase();
372+
374373
switch (command) {
375374
case ADD:
376375
// Never overwrite an existing filter
377-
if (findFilter(name) != null) {
376+
if(filters.containsKey(lowerCaseName)) {
378377
sender.sendMessage(ChatColor.RED + "Filter " + name + " already exists. Remove it first.");
379378
return true;
380379
}
@@ -402,8 +401,8 @@ public void conversationAbandoned(ConversationAbandonedEvent event) {
402401
final Conversable whom = event.getContext().getForWhom();
403402

404403
if (event.gracefulExit()) {
405-
String predicate = prompt.removeAccumulatedInput(event.getContext());
406-
Filter filter = new Filter(name, predicate, packets);
404+
final String predicate = prompt.removeAccumulatedInput(event.getContext());
405+
final Filter filter = new Filter(name, predicate, packets);
407406

408407
// Print the last line as well
409408
whom.sendRawMessage(prompt.getPromptText(event.getContext()));
@@ -412,7 +411,7 @@ public void conversationAbandoned(ConversationAbandonedEvent event) {
412411
// Force early compilation
413412
filter.compile(engine);
414413

415-
filters.add(filter);
414+
filters.put(lowerCaseName, filter);
416415
whom.sendRawMessage(ChatColor.GOLD + "Added filter " + name);
417416
} catch (ScriptException e) {
418417
e.printStackTrace();
@@ -438,12 +437,12 @@ public void conversationAbandoned(ConversationAbandonedEvent event) {
438437
break;
439438

440439
case REMOVE:
441-
Filter filter = findFilter(name);
440+
final Filter filter = filters.get(lowerCaseName);
442441

443442
// See if it exists before we remove it
444443
if (filter != null) {
445444
filter.close(engine);
446-
filters.remove(filter);
445+
filters.remove(lowerCaseName);
447446
sender.sendMessage(ChatColor.GOLD + "Removed filter " + name);
448447
} else {
449448
sender.sendMessage(ChatColor.RED + "Unable to find a filter by the name " + name);
@@ -453,22 +452,7 @@ public void conversationAbandoned(ConversationAbandonedEvent event) {
453452

454453
return true;
455454
}
456-
457-
/**
458-
* Lookup a filter by its name.
459-
* @param name - the filter name.
460-
* @return The filter, or NULL if not found.
461-
*/
462-
private Filter findFilter(String name) {
463-
// We'll just use a linear scan for now - we don't expect that many filters
464-
for (Filter filter : filters) {
465-
if (filter.getName().equalsIgnoreCase(name)) {
466-
return filter;
467-
}
468-
}
469-
return null;
470-
}
471-
455+
472456
private SubCommand parseCommand(String[] args, int index) {
473457
String text = args[index].toUpperCase();
474458

src/main/java/com/comphenix/protocol/CommandPacket.java

Lines changed: 31 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,21 @@
1717

1818
package com.comphenix.protocol;
1919

20-
import java.lang.reflect.InvocationTargetException;
20+
import com.comphenix.protocol.PacketType.Sender;
21+
import com.comphenix.protocol.concurrency.PacketTypeSet;
22+
import com.comphenix.protocol.error.ErrorReporter;
23+
import com.comphenix.protocol.error.ReportType;
24+
import com.comphenix.protocol.events.ListeningWhitelist;
25+
import com.comphenix.protocol.events.PacketEvent;
26+
import com.comphenix.protocol.events.PacketListener;
27+
import com.comphenix.protocol.utility.ChatExtensions;
28+
import com.comphenix.protocol.utility.HexDumper;
29+
import com.google.common.collect.MapMaker;
30+
import org.bukkit.ChatColor;
31+
import org.bukkit.command.CommandSender;
32+
import org.bukkit.entity.Player;
33+
import org.bukkit.plugin.Plugin;
34+
2135
import java.util.ArrayDeque;
2236
import java.util.ArrayList;
2337
import java.util.Arrays;
@@ -30,23 +44,6 @@
3044
import java.util.logging.Level;
3145
import java.util.logging.Logger;
3246

33-
import org.bukkit.ChatColor;
34-
import org.bukkit.command.CommandSender;
35-
import org.bukkit.entity.Player;
36-
import org.bukkit.plugin.Plugin;
37-
38-
import com.comphenix.protocol.PacketType.Sender;
39-
import com.comphenix.protocol.concurrency.PacketTypeSet;
40-
import com.comphenix.protocol.error.ErrorReporter;
41-
import com.comphenix.protocol.error.Report;
42-
import com.comphenix.protocol.error.ReportType;
43-
import com.comphenix.protocol.events.ListeningWhitelist;
44-
import com.comphenix.protocol.events.PacketEvent;
45-
import com.comphenix.protocol.events.PacketListener;
46-
import com.comphenix.protocol.utility.ChatExtensions;
47-
import com.comphenix.protocol.utility.HexDumper;
48-
import com.google.common.collect.MapMaker;
49-
5047
/**
5148
* Handles the "packet" debug command.
5249
*
@@ -56,7 +53,7 @@ class CommandPacket extends CommandBase {
5653
public static final ReportType REPORT_CANNOT_SEND_MESSAGE = new ReportType("Cannot send chat message.");
5754

5855
private enum SubCommand {
59-
ADD, REMOVE, NAMES, PAGE;
56+
ADD, REMOVE, NAMES, PAGE
6057
}
6158

6259
/**
@@ -69,25 +66,25 @@ private enum SubCommand {
6966
*/
7067
public static final int PAGE_LINE_COUNT = 9;
7168

72-
private Plugin plugin;
73-
private Logger logger;
74-
private ProtocolManager manager;
69+
private final Plugin plugin;
70+
private final Logger logger;
71+
private final ProtocolManager manager;
7572

76-
private ChatExtensions chatter;
73+
private final ChatExtensions chatter;
7774

7875
// The main parser
79-
private PacketTypeParser typeParser = new PacketTypeParser();
76+
private final PacketTypeParser typeParser = new PacketTypeParser();
8077

8178
// Paged message
82-
private Map<CommandSender, List<String>> pagedMessage = new WeakHashMap<CommandSender, List<String>>();
79+
private final Map<CommandSender, List<String>> pagedMessage = new WeakHashMap<CommandSender, List<String>>();
8380

8481
// Current registered packet types
85-
private PacketTypeSet packetTypes = new PacketTypeSet();
86-
private PacketTypeSet extendedTypes = new PacketTypeSet();
82+
private final PacketTypeSet packetTypes = new PacketTypeSet();
83+
private final PacketTypeSet extendedTypes = new PacketTypeSet();
8784

8885
// Compare listeners
89-
private PacketTypeSet compareTypes = new PacketTypeSet();
90-
private Map<PacketEvent, String> originalPackets = new MapMaker().weakKeys().makeMap();
86+
private final PacketTypeSet compareTypes = new PacketTypeSet();
87+
private final Map<PacketEvent, String> originalPackets = new MapMaker().weakKeys().makeMap();
9188

9289
// The packet listener
9390
private PacketListener listener;
@@ -96,7 +93,7 @@ private enum SubCommand {
9693
private PacketListener compareListener;
9794

9895
// Filter packet events
99-
private CommandFilter filter;
96+
private final CommandFilter filter;
10097

10198
public CommandPacket(ErrorReporter reporter, Plugin plugin, Logger logger, CommandFilter filter, ProtocolManager manager) {
10299
super(reporter, CommandBase.PERMISSION_ADMIN, NAME, 1);
@@ -156,7 +153,7 @@ private void printPage(CommandSender sender, int pageIndex) {
156153
@Override
157154
protected boolean handleCommand(CommandSender sender, String[] args) {
158155
try {
159-
Deque<String> arguments = new ArrayDeque<String>(Arrays.asList(args));
156+
Deque<String> arguments = new ArrayDeque<>(Arrays.asList(args));
160157
SubCommand subCommand = parseCommand(arguments);
161158

162159
// Commands with different parameters
@@ -247,14 +244,14 @@ private void executeRemoveCommand(CommandSender sender, Set<PacketType> removal)
247244
}
248245

249246
private void executeNamesCommand(CommandSender sender, Set<PacketType> types) {
250-
List<String> messages = new ArrayList<String>();
247+
List<String> messages = new ArrayList<>();
251248

252249
// Print the equivalent name of every given ID
253250
for (PacketType type : types) {
254251
messages.add(ChatColor.YELLOW + type.toString());
255252
}
256253

257-
if (sender instanceof Player && messages.size() > 0 && messages.size() > PAGE_LINE_COUNT) {
254+
if (sender instanceof Player && messages.size() > PAGE_LINE_COUNT) {
258255
// Divide the messages into chuncks
259256
pagedMessage.put(sender, messages);
260257
printPage(sender, 1);
@@ -444,19 +441,6 @@ public PacketListener updatePacketListener() {
444441

445442
private SubCommand parseCommand(Deque<String> arguments)
446443
{
447-
final String text = arguments.remove().toLowerCase();
448-
449-
switch (text) {
450-
case "add":
451-
return SubCommand.ADD;
452-
case "remove":
453-
return SubCommand.REMOVE;
454-
case "names":
455-
return SubCommand.NAMES;
456-
case "page":
457-
return SubCommand.PAGE;
458-
default:
459-
throw new IllegalArgumentException(text + " is not a valid sub command. Must be add or remove.");
460-
}
444+
return SubCommand.valueOf(arguments.remove().toUpperCase());
461445
}
462446
}

src/main/java/com/comphenix/protocol/PacketLogging.java

Lines changed: 4 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -158,7 +158,7 @@ public boolean onCommand(CommandSender sender, Command command, String label, St
158158
sender.sendMessage(ChatColor.RED + "Invalid syntax: /packetlog <protocol> <sender> <packet> [location]");
159159
return true;
160160
} catch (Throwable ex) {
161-
sender.sendMessage(ChatColor.RED + "Failed to parse command: " + ex.toString());
161+
sender.sendMessage(ChatColor.RED + "Failed to parse command: " + ex);
162162
return true;
163163
}
164164
}
@@ -173,7 +173,7 @@ private void startLogging() {
173173
this.sendingWhitelist = ListeningWhitelist.newBuilder().types(sendingTypes).build();
174174
this.receivingWhitelist = ListeningWhitelist.newBuilder().types(receivingTypes).build();
175175

176-
// Setup the file logger if it hasn't been already
176+
// Set up the file logger if it hasn't been already
177177
if (location == LogLocation.FILE && fileLogger == null) {
178178
fileLogger = Logger.getLogger("ProtocolLib-FileLogging");
179179

@@ -270,15 +270,8 @@ private static class LogFormatter extends Formatter {
270270

271271
@Override
272272
public String format(LogRecord record) {
273-
String string = formatMessage(record);
274-
if (string.isEmpty()) {
275-
return LINE_SEPARATOR;
276-
}
277-
278-
StringBuilder message = new StringBuilder();
279-
message.append(MessageFormat.format(FORMAT, DATE.format(record.getMillis()), string));
280-
message.append(LINE_SEPARATOR);
281-
return message.toString();
273+
final String string = formatMessage(record);
274+
return string.isEmpty() ? LINE_SEPARATOR : MessageFormat.format(FORMAT, DATE.format(record.getMillis()), string) + LINE_SEPARATOR;
282275
}
283276
}
284277
}

0 commit comments

Comments
 (0)