사이트 로그인
2016.05.19 21:57
불량채팅 검출하여 채금걸어주는 소스입니다.
DB연동하기때문에 실시간 등록이 가능하도록 변경했습니다.
채금이 아닌 다른것을 주실수도 있습니다^^
우선 l1j.server.server.datatables 안에 BugChat.java 파일을 생성해줍니다.
-----------------------------------------------------------------------
package l1j.server.server.datatables;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.logging.Level;
import java.util.logging.Logger;
import l1j.server.L1DatabaseFactory;
import l1j.server.server.utils.SQLUtil;
public class BugChat {
private static Logger _log = Logger.getLogger(BugChat.class.getName());
private static BugChat _instance;
private static ArrayList<String> _chating = new ArrayList<String>();
public static BugChat getInstance() {
if (_instance == null) {
_instance = new BugChat();
}
return _instance;
}
private BugChat() {
_chating = allChatList();
}
private ArrayList<String> allChatList() {
Connection con = null;
PreparedStatement pstm = null;
ResultSet rs = null;
ArrayList<String> chating = new ArrayList<String>();
try {
con = L1DatabaseFactory.getInstance().getConnection();
pstm = con.prepareStatement("select * from bug_chat");
rs = pstm.executeQuery();
while (rs.next()) {
chating.add(rs.getString("chat"));
}
} catch (SQLException e) {
_log.log(Level.SEVERE, e.getLocalizedMessage(), e);
} finally {
SQLUtil.close(rs);
SQLUtil.close(pstm);
SQLUtil.close(con);
}
return chating;
}
public boolean isBugChat(String chating) {
for (String id : _chating) {
if (chating.equalsIgnoreCase(id)) {
return true;
}
}
return false;
}
}
-----------------------------------------------------------------------------------
그다음 C_Chat.java안에 추가를 해줍니다.
/** 불량채팅시 주고싶은거 골라서 주기 **/
int chatNg = 0; // 채금시간 0일경우 채금안함
boolean chatDie = false; // false일경우 죽이지 않음
/** 불량채팅시 주고싶은거 골라서 주기 **/
if(BugChat.getInstance().isBugChat(chatText)) {
if(!pc.isGm()){//운영작 아닐경우
if(chatNg != 0) { // 채금을 주고싶을때 0이 아닌경우
pc.setSkillEffect(L1SkillId.STATUS_CHAT_PROHIBITED, chatNg * 60 * 1000);
pc.sendPackets(new S_SkillIconGFX(36, chatNg * 60));
pc.sendPackets(new S_ServerMessage(286, String.valueOf(chatNg)));
} else if(chatDie != true) { //죽인다
pc.setCurrentHp(0);
pc.death(null);
}
}
}
--------------------------------------------------------------------------------
데이터베이스 생성을 해줍니다.
테이블명 bug_chat
필드 chat
타입 varchar
길이 20
십진법 0
제로허용안함
주된키 chat 필드
chat 필드안에 필터하실 욕설을 써주시면 됩니다.^^
벌칙은 응용하시면 더 많이 하실수도 있구요 외부화가 충분히 가능합니다
번호 | 제목 | 글쓴이 | 날짜 | 조회 수 |
---|---|---|---|---|
공지 | 소스자료는 직접 올려주세요 | 게임존 | 2017.06.06 | 550 |
159 | 통합 쓰레드(Thread) 소스!! 알고리즘? | 김닉넴 | 2016.05.20 | 102 |
158 | 보스몹 멘트 띄우기 | 김닉넴 | 2016.05.19 | 120 |
157 | 로또복권 | 김닉넴 | 2016.05.19 | 80 |
» | 불량 채팅 검출 | 김닉넴 | 2016.05.19 | 51 |
155 | 실시간 레벨제한 | 김닉넴 | 2016.05.19 | 59 |
154 | 여관 들어가기 | 김닉넴 | 2016.05.19 | 46 |
153 | 영자들끼리 대화 | 김닉넴 | 2016.05.19 | 96 |
152 | 영자 명령어 경치 복구 | 김닉넴 | 2016.05.19 | 39 |
151 | 오토루팅 | 김닉넴 | 2016.05.19 | 244 |
150 | 퀘스트템 자동 지급 소스 | 김닉넴 | 2016.05.19 | 115 |
149 | 초반 말하는 두루마리 지급 부분 본섭화 | 김닉넴 | 2016.05.19 | 59 |
148 | l1skilluse.handlecommands - null point 에러 | 야호 | 2016.05.19 | 47 |
147 | 기억창 소스 | 김닉넴 | 2016.05.18 | 127 |
146 | gm명령 메모리솔류션 | 김닉넴 | 2016.05.18 | 102 |
145 | 오림시스템 | 김닉넴 | 2016.05.18 | 80 |
144 | 너스핵쓰냐?잡아본다 [2] | 김닉넴 | 2016.05.18 | 202 |
143 | 마을경비 입구가져오는몹 죽이는법 | 김닉넴 | 2016.05.18 | 58 |
142 | 던전 타이머 소스 | 김닉넴 | 2016.05.18 | 102 |
141 | 낚시터 드랍경로 [1] | 김닉넴 | 2016.05.18 | 88 |
140 | 허수아비렙제 | 김닉넴 | 2016.05.18 | 99 |
139 | 운영자 명령어 [혈전시작] 추가방법 | 김닉넴 | 2016.05.18 | 71 |
138 | 같은혈 용병로봇들이 상대방혈의 로봇들 치게 하는방법.[초코님 점팩 기준] | 김닉넴 | 2016.05.18 | 285 |
137 | 파티원 수 늘리기 | 김닉넴 | 2016.05.18 | 36 |
136 | [아이서버] 공성주기 변경 | 김닉넴 | 2016.05.18 | 60 |
135 | 환영의 체인소드 | 김닉넴 | 2016.05.18 | 29 |
134 | 커멘드로 영자권한 주기입니다 | 김닉넴 | 2016.05.18 | 97 |
133 | 특정아이템 획득시 전체공지 | 김닉넴 | 2016.05.18 | 105 |
132 | [아이서버] 혈전종료 명령어 | 김닉넴 | 2016.05.18 | 41 |
131 | linall 유저가접하면 알아서 인사하고~ 성주가 접하면 알아서 성주인사를~합니다~ | 김닉넴 | 2016.05.18 | 139 |
130 | 축아이템 만들기 [1] | 김닉넴 | 2016.05.18 | 182 |
129 | 1억수표 | 김닉넴 | 2016.05.18 | 102 |
128 |
잊섬 2시간 텀으로 열리게 컴파일 요청합니다
![]() | 아오이와소라 | 2016.05.17 | 186 |
127 | mr에 의한 데미지 경감 소스 [1] | LoseF | 2016.05.10 | 157 |
126 | 몬스터 피틱 and 엠틱 간단하게 쓰레드 최소화? | 로스트사가 | 2016.05.05 | 84 |
125 |
매니저창 구버전 하시는분들한테 좋을거 같아서 올립니다.
![]() | 로스트사가 | 2016.05.05 | 683 |
124 | 귓말 글자수 늘려보자 | 로스트사가 | 2016.05.04 | 41 |
123 | 에메랄드 아이콘 패킷 | 로스트사가 | 2016.05.03 | 88 |
122 | 마법 방어 인첸트 적용 | 로스트사가 | 2016.05.03 | 85 |
121 |
족보&나이
[1] ![]() | 로스트사가 | 2016.05.03 | 143 |
120 |
펫관련 본섭화와 밸런스
![]() | 로스트사가 | 2016.05.03 | 198 |
119 | [본섭화]수호탑근처가면투명해제 | 로스트사가 | 2016.05.03 | 46 |
118 | 변신 레벨에따른 공속변화 | 로스트사가 | 2016.04.30 | 495 |
117 | 5분마다 자도옹지 띄우기 | 이드1 | 2016.04.27 | 103 |
116 | 공성 먹자 군주 방지 [1] | 이드1 | 2016.04.27 | 124 |
115 | 몬스터잡은만큼 버프주기 | 이드1 | 2016.04.26 | 113 |
114 | [중복] 자세히 클래스변경물약 | 이드1 | 2016.04.26 | 85 |
113 | 유저커멘드 인벤템 보여주기 | 이드1 | 2016.04.26 | 125 |
112 | 인첸별 이펙 | 이드1 | 2016.04.26 | 157 |
111 | 특정맵 경험치증가 | 이드1 | 2016.04.26 | 95 |
110 | 특정아이템 뮨효과 | 이드1 | 2016.04.26 | 135 |