From 659891a4d5800174d12dc265b839ce97a19cc55c Mon Sep 17 00:00:00 2001 From: Robin Kupper Date: Mon, 21 Mar 2011 19:01:40 +0100 Subject: [PATCH] Changed sessions type from ListArray to HashMap --- src/de/diddiz/LogBlock/LogBlock.java | 63 +++++++++++++++------------- 1 file changed, 34 insertions(+), 29 deletions(-) diff --git a/src/de/diddiz/LogBlock/LogBlock.java b/src/de/diddiz/LogBlock/LogBlock.java index 4c8ebd1..17cb902 100644 --- a/src/de/diddiz/LogBlock/LogBlock.java +++ b/src/de/diddiz/LogBlock/LogBlock.java @@ -7,7 +7,7 @@ import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; -import java.util.ArrayList; +import java.util.HashMap; import java.util.concurrent.LinkedBlockingQueue; import java.util.concurrent.TimeUnit; import java.util.logging.Level; @@ -47,7 +47,7 @@ public class LogBlock extends JavaPlugin static Logger log; private Consumer consumer = null; private LinkedBlockingQueue bqueue = new LinkedBlockingQueue(); - private ArrayList sessions = new ArrayList(); + private HashMap sessions = new HashMap(); @Override public void onEnable() { @@ -550,13 +550,12 @@ private boolean CheckPermission(Player player, String permission) { } private Session getSession(Player player) { - int idx = sessions.indexOf(new Session(player)); - if (idx != -1) - return sessions.get(idx); - else { - sessions.add(new Session(player)); - return getSession(player); + Session session = sessions.get(player.getName().hashCode()); + if (session == null) { + session = new Session(player); + sessions.put(player.getName().hashCode(), session); } + return session; } private boolean isInt(String str) { @@ -682,33 +681,39 @@ private boolean CheckPermission(Player player, String permission) { this.ca = null; } } - + private class Session { public String user; public Location loc1 = null, loc2 = null; - public Session (Player player) { - this.user = player.getName(); - } - - public boolean isloc1Set() { - if (loc1 == null) - return false; - else - return true; - } - - public boolean isloc2Set() { - if (loc2 == null) - return false; - else - return true; - } - + public Session (Player player) { + this.user = player.getName(); + } + + public boolean isloc1Set() { + if (loc1 == null) + return false; + else + return true; + } + + public boolean isloc2Set() { + if (loc2 == null) + return false; + else + return true; + } + @Override - public boolean equals(Object obj) - { + public int hashCode() { + return user.hashCode(); + } + + @Override + public boolean equals(Object obj) { + if (this == obj) + return true; if (obj == null) return false; if (!user.equalsIgnoreCase(((Session)obj).user))