테스트

aion-server 4.8

Gitteol
최고관리자 · 1 · 💬 0 클론/새로받기
 4.8 61f661d · 1 commits 새로받기(Pull)
game-server/src/com/aionemu/gameserver/services/player/PlayerChatService.java
package com.aionemu.gameserver.services.player;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import com.aionemu.gameserver.configs.main.LoggingConfig;
import com.aionemu.gameserver.configs.main.SecurityConfig;
import com.aionemu.gameserver.model.ChatType;
import com.aionemu.gameserver.model.gameobjects.player.Player;

/**
 * @author Source, Neon
 */
public class PlayerChatService {

	private static final Logger playerLog = LoggerFactory.getLogger("CHAT_LOG");
	private static final Logger gmLog = LoggerFactory.getLogger("ADMINAUDIT_LOG");

	public static boolean isFlooding(final Player player) {
		player.setLastMessageTime();

		if (player.floodMsgCount() > SecurityConfig.FLOOD_MSG)
			return true;

		return false;
	}

	public static void logWhisper(Player sender, Player receiver, String message) {
		logMessage(sender, ChatType.WHISPER, message, receiver);
	}

	public static void logMessage(Player sender, ChatType type, String message) {
		logMessage(sender, type, message, null);
	}

	private static void logMessage(Player sender, ChatType type, String message, Player receiver) {
		Logger log = playerLog;

		// log whisper to adminaudit.log, if GM is involved (ignores private chat logging settings)
		if (type == ChatType.WHISPER && (sender.isStaff() || (receiver != null && receiver.isStaff())) && LoggingConfig.LOG_GMAUDIT)
			log = gmLog;
		else {
			switch (type) {
				case WHISPER:
				case LEGION:
					if (!LoggingConfig.LOG_PRIVATE_CHATS)
						return;
					break;
				default:
					if (!LoggingConfig.LOG_GENERAL_CHATS)
						return;
			}
		}

		switch (type) {
			case WHISPER:
				log.info(String.format("[%s] - [%s]>[%s]: %s", type.toString(), sender.getName(), receiver != null ? receiver.getName() : "", message));
				break;
			case GROUP:
			case ALLIANCE:
			case GROUP_LEADER:
			case LEAGUE:
			case LEAGUE_ALERT:
				log.info(String.format("[%s] <%d> - [%s]: %s", type.toString(), sender.getCurrentTeamId(), sender.getName(), message));
				break;
			case LEGION:
				log.info(String.format("[%s] <%s> - [%s]: %s", type.toString(), sender.getLegion().getName(), sender.getName(), message));
				break;
			case NORMAL:
			case SHOUT:
			default:
				log.info(String.format("[%s] - [%s](%s): %s", type.toString(), sender.getName(), sender.getRace().toString(), message));
				break;
		}
	}
}

📎 첨부파일

댓글 작성 권한이 없습니다.
🏆 포인트 랭킹 TOP 10
순위 닉네임 포인트
1 no_profile 타키야겐지쪽지보내기 자기소개 아이디로 검색 전체게시물 102,949
2 no_profile 동가리쪽지보내기 자기소개 아이디로 검색 전체게시물 63,733
3 no_profile 라프텔쪽지보내기 자기소개 아이디로 검색 전체게시물 51,771
4 no_profile 불멸의행복쪽지보내기 자기소개 아이디로 검색 전체게시물 36,923
5 서번트쪽지보내기 자기소개 아이디로 검색 전체게시물 35,011
6 no_profile 닥터스쪽지보내기 자기소개 아이디로 검색 전체게시물 29,470
7 no_profile 검은고양이쪽지보내기 자기소개 아이디로 검색 전체게시물 29,077
8 no_profile Revolution쪽지보내기 자기소개 아이디로 검색 전체게시물 28,199
9 no_profile 보거스쪽지보내기 자기소개 아이디로 검색 전체게시물 26,731
10 no_profile 호롤롤로쪽지보내기 자기소개 아이디로 검색 전체게시물 17,020
알림 0