07-26-2013, 08:58 PM
Сборка Silentium (Исходы последней ревы) http://yadi.sk/d/t3LRpErx6eeot
Нужно добавить команду //banhwid
Сутки проковырялся, безуспешно, компилятор показывает ошибки.
Основа: посмотрел на исходниках люцеры как там реализовано. Там отдельный класс CatsGuardHandler.java
Пробывал прикрутить:
1. Поменял импорты - неудачно. Некоторых нужных классов нету, а создать их без ошибок не получилось(
2. Попробывал вырезать оттуда код отвечающий за banhwid и прикрутить его по аналогии в копию AdminCache.java - неудачно. И то я пробывал сделать только 20% реализации этой команды.
3. Пробывал из CatsGuard.java вытянуть бан при обнаружении hack софта. И вставить по аналогии в копию AdminCache.java
Получилась - неудача.
Исходник CatsGuardHandler из люцеры:
http://pastebin.com/DDE0xU0T
Исходник CatsGuard из силентиума:
http://pastebin.com/EmZNcfKp
Укажите пожалуйста на то, как нужно прикручивать. Всем заранее спасибо.
Нужно добавить команду //banhwid
Сутки проковырялся, безуспешно, компилятор показывает ошибки.
Основа: посмотрел на исходниках люцеры как там реализовано. Там отдельный класс CatsGuardHandler.java
Пробывал прикрутить:
1. Поменял импорты - неудачно. Некоторых нужных классов нету, а создать их без ошибок не получилось(
2. Попробывал вырезать оттуда код отвечающий за banhwid и прикрутить его по аналогии в копию AdminCache.java - неудачно. И то я пробывал сделать только 20% реализации этой команды.
Код:
package silentium.scripts.handlers.admin;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import silentium.commons.database.DatabaseFactory;
import silentium.gameserver.handlers.IAdminCommandHandler;
import silentium.gameserver.model.actor.instance.L2PcInstance;
import silentium.gameserver.network.clientpackets.Say2;
public class AdminBanHwid implements IAdminCommandHandler
{
private static final String[] ADMIN_COMMANDS =
{
"admin_hwidban"
};
@Override
public String[] getAdminCommandList()
{
return ADMIN_COMMANDS;
}
@Override
/* public void runCommand(L2PcInstance admin, String... params) {
String command = params[0]; */
public boolean useAdminCommand(String... params, L2PcInstance admin) {
String command = params[0];
if (command.startsWith("hwidban")) {
String hwid=null;
if (params.length==1) {
if(admin.getTarget() instanceof L2PcInstance)
hwid = ((L2PcInstance)admin.getTarget()).getHWid();
}
/* else {
hwid = L2Utils.getHwId(params[1]);
}
if(hwid!=null) {
try {
// Integer.parseInt(hwid,16);
CatsGuard.getInstance().ban(hwid);
for(L2PcInstance pc : L2World.getInstance().getAllPlayers()) {
if(pc.getHWid()!=null && pc.getHWid().equals(hwid) && !gmCache.getInstance().isGm(pc.getObjectId()))
new Disconnection(pc).defaultSequence(false);
}
admin.sendMessage("HWID "+hwid+" забанен");
} catch(NumberFormatException e) {
admin.sendMessage("Нет такого игрока "+params[1]);
}
}
runCommand(admin, new String[] {"hwidbanned"});
}### */
return true;
}
}
}
Код:
if (ProtectionProperties.ON_HACK_ATTEMP.equals("hwidban") && (cl.getHWid() != null))
{
ban(cl.getHWid());
}
Код:
package silentium.scripts.handlers.admin;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import silentium.commons.database.DatabaseFactory;
import silentium.gameserver.handlers.IAdminCommandHandler;
import silentium.gameserver.model.actor.instance.L2PcInstance;
import silentium.protection.CatsGuard;
import silentium.gameserver.network.clientpackets.Say2;
private class AdminBanHwid implements IAdminCommandHandler
{
@Override
public boolean useAdminCommand(String command, L2PcInstance activeChar)
{
if (command.startsWith("hwidban"))
{
ban(activeChar.getTarget().getHWid());
}
}
}
http://pastebin.com/DDE0xU0T
Исходник CatsGuard из силентиума:
http://pastebin.com/EmZNcfKp
Укажите пожалуйста на то, как нужно прикручивать. Всем заранее спасибо.