Code/Resource
Windows Develop
Linux-Unix program
Internet-Socket-Network
Web Server
Browser Client
Ftp Server
Ftp Client
Browser Plugins
Proxy Server
Email Server
Email Client
WEB Mail
Firewall-Security
Telnet Server
Telnet Client
ICQ-IM-Chat
Search Engine
Sniffer Package capture
Remote Control
xml-soap-webservice
P2P
WEB(ASP,PHP,...)
TCP/IP Stack
SNMP
Grid Computing
SilverLight
DNS
Cluster Service
Network Security
Communication-Mobile
Game Program
Editor
Multimedia program
Graph program
Compiler program
Compress-Decompress algrithms
Crypt_Decrypt algrithms
Mathimatics-Numerical algorithms
MultiLanguage
Disk/Storage
Java Develop
assembly language
Applications
Other systems
Database system
Embeded-SCM Develop
FlashMX/Flex
source in ebook
Delphi VCL
OS Develop
MiddleWare
MPI
MacOS develop
LabView
ELanguage
Software/Tools
E-Books
Artical/Document
ReportHandler.java
Package: src.rar [view]
Upload User: gwt600
Upload Date: 2021-06-03
Package Size: 704k
Code Size: 3k
Category:
Games
Development Platform:
Java
- /*
- * To change this template, choose Tools | Templates
- * and open the template in the editor.
- */
- package net.sf.odinms.net.channel.handler;
- import java.rmi.RemoteException;
- import net.sf.odinms.client.MapleClient;
- import net.sf.odinms.net.AbstractMaplePacketHandler;
- import net.sf.odinms.tools.data.input.SeekableLittleEndianAccessor;
- import java.sql.*;
- import net.sf.odinms.client.MapleCharacter;
- import org.slf4j.Logger;
- import org.slf4j.LoggerFactory;
- import net.sf.odinms.database.DatabaseConnection;
- import net.sf.odinms.net.world.remote.WorldChannelInterface;
- import net.sf.odinms.tools.MaplePacketCreator;
- /**
- *
- * @author Administrator
- */
- public class ReportHandler extends AbstractMaplePacketHandler {
- final String[] reasons = {
- "使用外挂",
- "装B",
- "欺骗我",
- "冒充GM",
- "骚扰我",
- "广告"
- };
- @Override
- public void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) {
- c.getPlayer().resetAfkTime();
- int reportedCharId = slea.readInt();
- byte reason = slea.readByte();
- String chatlog = "在数据库中没有找到chatlog";
- short clogLen = slea.readShort();
- if (clogLen > 0) {
- chatlog = slea.readAsciiString(clogLen);
- }
- Logger logger = LoggerFactory.getLogger(this.getClass());
- logger.info(c.getPlayer().getName() + " 举报了玩家,被举报玩家ID为 " + reportedCharId);
- int cid = reportedCharId;
- if (addReportEntry(c.getPlayer().getId(), reportedCharId, reason, chatlog)) {
- c.getSession().write(MaplePacketCreator.reportReply((byte) 0));
- } else {
- c.getSession().write(MaplePacketCreator.reportReply((byte) 4));
- }
- try {
- WorldChannelInterface wci = c.getChannelServer().getWorldInterface();
- wci.broadcastGMMessage(null, MaplePacketCreator.serverNotice(5, c.getPlayer().getName() + " 报告 " + MapleCharacter.getNameById(cid, 0) + " 因为 " + reasons[reason] + ".").getBytes());
- } catch (RemoteException ex) {
- c.getChannelServer().reconnectWorld();
- }
- }
- private boolean addReportEntry(int reporterId, int victimId, byte reason, String chatlog) {
- try {
- Connection dcon = DatabaseConnection.getConnection();
- PreparedStatement ps;
- ps = dcon.prepareStatement("INSERT INTO reports VALUES (NULL, CURRENT_TIMESTAMP, ?, ?, ?, ?, 'UNHANDLED')");
- ps.setInt(1, reporterId);
- ps.setInt(2, victimId);
- ps.setInt(3, reason);
- ps.setString(4, chatlog);
- ps.executeUpdate();
- ps.close();
- } catch (SQLException ex) {
- return false;
- }
- return true;
- }
- }