public synchronized void addPoints(MapleClient c, int points, long expiration, String reason) {
		// if (c.getPlayer().isJounin()) return;
		int acc = c.getPlayer().getAccountID();
		List<String> reasonList;
		if (this.points.containsKey(acc)) {
			if (this.points.get(acc) >= AUTOBAN_POINTS) return;
			this.points.put(acc, this.points.get(acc) + points);
			reasonList = this.reasons.get(acc);
			reasonList.add(reason);
		} else {
			this.points.put(acc, points);
			reasonList = new LinkedList<String>();
			reasonList.add(reason);
			this.reasons.put(acc, reasonList);
		}
		if (this.points.get(acc) >= AUTOBAN_POINTS) {
			String name = c.getPlayer().getName();
			StringBuilder banReason = new StringBuilder("Autoban for char ");
			banReason.append(name);
			banReason.append(" (IP ");
			banReason.append(c.getSessionIPAddress());
			banReason.append("): ");
			for (String s : reasons.get(acc)) {
				banReason.append(s);
				banReason.append(", ");
			}
			
			if (c.getPlayer().isJounin()) {
				log.warn("[h4x] Trying to a/b gm - something fishy going on: {}", banReason.toString());
			} else {
				c.getPlayer().ban(banReason.toString());				
				c.getChannelServer().broadcastPacket(MaplePacketCreator.serverNotice(0, "[Autoban] " + name + " banned by the system (Reason: " + reason + ")"));
				MainIRC.getInstance().sendGlobalMessage("[Autoban] " + name + " banned by the system (Reason: " + reason + ")");
				//log.warn("[h4x] Autobanned player {} (accountid {})", name, acc);
			}
			return;
		}
		if (expiration > 0) {
			expirations.add(new ExpirationEntry(System.currentTimeMillis() + expiration, acc, points));
		}
	}