iceman 42 Опубликовано 28 марта, 2012 И так у могих были такие моменты когда из не откуда появлиль "левые" админы и делали вред как произошло с пользоватилем данного форму MustanG в чём я ему помог и помогу вам. 1. и так открываем класс EnterWorld.java и добавляем такой код : if(activeChar.isGM() &&!(activeChar.getName().equals("MustanG") || activeChar.getName().equals("Umen"))){ activeChar.setAccessLevel(-100); Util.handleIllegalPlayerAction(activeChar,"Игрок " +activeChar.getName() +" получил бан! ", IllegalPlayerAction.PUNISH_KICKBAN); } 2.создаём отдельный класс и называем его(можете конечно по другому)) AdminCheck.java и добавляйте в него следующий код package com.l2jfrozen.gameserver.network.check; import java.util.logging.Logger; import com.l2jfrozen.gameserver.thread.ThreadPoolManager; import com.l2jfrozen.gameserver.util.IllegalPlayerAction; import com.l2jfrozen.gameserver.util.Util; import com.l2jfrozen.gameserver.model.L2World; import com.l2jfrozen.gameserver.model.actor.instance.L2PcInstance; /**Класс <FONT COLOR = ff0000>GetItemChar</FONT> делает проверку на ники персонажей в игре*/ public class AdminCheck { public static AdminCheck _instance = new AdminCheck(); public static AdminCheck getInstance(){ if(_instance == null) _instance = new AdminCheck(); return _instance; } public AdminCheck(){ ThreadPoolManager.getInstance().scheduleGeneral(new StartClass(), 140000); } /**<FONT COLOR=#ZZQQ9> Метод который в заданное время будет проверять * ники персонажей в игре </FONT>*/ public synchronized void getAllPlayersNick(){ for(L2PcInstance player:L2World.getInstance().getAllPlayers() ){ if(player.isGM() &&!(player.getName().equals("MustanG") || player.getName().equals("Umen"))){ player.setAccessLevel(-100); Util.handleIllegalPlayerAction(player,"Игрок " +player.getName() +" получил бан! ", IllegalPlayerAction.PUNISH_KICKBAN); } } } public class StartClass implements Runnable{ @Override public void run() { getAllPlayersNick(); ThreadPoolManager.getInstance().scheduleGeneral(new StartClass(), 600000); //Задержка 10 мин } } } 3. И последнее добавляем вызоа нашего нового класса в GameServer.java AdminCheck.getInstance(); Вот и всё!) P.S. код уже был протестирован и всё норм работает не забывайте ставить +++ Если есть ошибки в описании сори) Если комуто что то не понятно спрашивайте. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
MustanG™ 40 Опубликовано 28 марта, 2012 И так у могих были такие моменты когда из не откуда появлиль "левые" админы и делали вред как произошло с пользоватилем данного форму MustanG в чём я ему помог и помогу вам. 1. и так открываем класс EnterWorld.java и добавляем такой код : if(activeChar.isGM() &&!(activeChar.getName().equals("MustanG") || activeChar.getName().equals("Umen"))){ activeChar.setAccessLevel(-100); Util.handleIllegalPlayerAction(activeChar,"Игрок " +activeChar.getName() +" получил бан! ", IllegalPlayerAction.PUNISH_KICKBAN); } 2.создаём отдельный класс и называем его(можете конечно по другому)) AdminCheck.java и добавляйте в него следующий код package com.l2jfrozen.gameserver.network.check; import java.util.logging.Logger; import com.l2jfrozen.gameserver.thread.ThreadPoolManager; import com.l2jfrozen.gameserver.util.IllegalPlayerAction; import com.l2jfrozen.gameserver.util.Util; import com.l2jfrozen.gameserver.model.L2World; import com.l2jfrozen.gameserver.model.actor.instance.L2PcInstance; /**Класс <FONT COLOR = ff0000>GetItemChar</FONT> делает проверку на ники персонажей в игре*/ public class AdminCheck { public static AdminCheck _instance = new AdminCheck(); public static AdminCheck getInstance(){ if(_instance == null) _instance = new AdminCheck(); return _instance; } public AdminCheck(){ ThreadPoolManager.getInstance().scheduleGeneral(new StartClass(), 140000); } /**<FONT COLOR=#ZZQQ9> Метод который в заданное время будет проверять * ники персонажей в игре </FONT>*/ public synchronized void getAllPlayersNick(){ for(L2PcInstance player:L2World.getInstance().getAllPlayers() ){ if(player.isGM() &&!(player.getName().equals("MustanG") || player.getName().equals("Umen"))){ player.setAccessLevel(-100); Util.handleIllegalPlayerAction(player,"Игрок " +player.getName() +" получил бан! ", IllegalPlayerAction.PUNISH_KICKBAN); } } } public class StartClass implements Runnable{ @Override public void run() { getAllPlayersNick(); ThreadPoolManager.getInstance().scheduleGeneral(new StartClass(), 600000); //Задержка 10 мин } } } 3. И последнее добавляем вызоа нашего нового класса в GameServer.java AdminCheck.getInstance(); Вот и всё!) P.S. код уже был протестирован и всё норм работает не забывайте ставить +++ Если есть ошибки в описании сори) Если комуто что то не понятно спрашивайте. Все отлично работает)) Спасибо большой за помощь Андрюха)) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
{N{eX}T} 5 Опубликовано 28 марта, 2012 Cпасиб пригодится) позже будет время попробую сделать это чудо чтоб работало из конфига чтобы не менять ник в коде) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
iceman 42 Опубликовано 28 марта, 2012 Cпасиб пригодится) позже будет время попробую сделать это чудо чтоб работало из конфига чтобы не менять ник в коде) Для спасибки есть кнопочка))) конфиги не сделал по одной просто причине у MustanGа нету исходов я брал последнюю реву фрозенов и переделывал а конфиги не трогал тк их уже изменяли) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
taste 501 Опубликовано 28 марта, 2012 (изменено) 2.создаём отдельный класс и называем его(можете конечно по другому)) AdminCheck.javaи добавляйте в него следующий код где его создавать?) в папке com.l2jfrozen.gameserver.network Изменено 28 марта, 2012 пользователем taste Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
(D)uality 700 Опубликовано 28 марта, 2012 Для спасибки есть кнопочка))) конфиги не сделал по одной просто причине у MustanGа нету исходов я брал последнюю реву фрозенов и переделывал а конфиги не трогал тк их уже изменяли) На лионне выведена проверка админа по ИД чара в конфигах . Мне показалось так нажеджнее чем проверка по нику . Но все равно спасибо , попробую переписать импорты под другие исходники Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
MaRSHaL_ 2 Опубликовано 28 марта, 2012 очень полезно, спасибку дал) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
logan22 169 Опубликовано 28 марта, 2012 Мне больше интересно посмотреть на то не как обезопаситься, а как стать им =) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
(D)uality 700 Опубликовано 28 марта, 2012 Мне больше интересно посмотреть на то не как обезопаситься, а как стать им =) На жук заглянь там подскажут Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
logan22 169 Опубликовано 28 марта, 2012 Постов нету там, а флудить попусту за ради постов не мой конёк =) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
iceman 42 Опубликовано 29 марта, 2012 где его создавать?)в папке com.l2jfrozen.gameserver.network Ну если посмотреть внемательно то я создавал новый пакет com.l2jfrozen.gameserver.network.check - и тут создавал класс На лионне выведена проверка админа по ИД чара в конфигах . Мне показалось так нажеджнее чем проверка по нику . Но все равно спасибо , попробую переписать импорты под другие исходники Если надо могу сделать и по ид чара там делов то))) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
taste 501 Опубликовано 29 марта, 2012 хм мб еще в конфиг вывести?что бы удобней было?) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
SteveDogs 1077 Опубликовано 29 марта, 2012 (изменено) Смысл только от этого,если имеется доступ к базе и drop tables; обезопасит только от левого гм каторые ломанет чара или в этом вроде. Изменено 29 марта, 2012 пользователем ENERGODAR Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
iceman 42 Опубликовано 29 марта, 2012 хм мб еще в конфиг вывести?что бы удобней было?) я не делал этого потому что у Мустанга не было исходов что бы я их мог вывести я взял последнии фрозенов и некоторые классы из них Config не брал потому что он был переделан) P.S. Если интересно как сделать проверку по objId или ip (только вот если динам ип уже не покатии(()то могу щас выложить... Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
taste 501 Опубликовано 29 марта, 2012 я не делал этого потому что у Мустанга не было исходов что бы я их мог вывестия взял последнии фрозенов и некоторые классы из них Config не брал потому что он был переделан) P.S. Если интересно как сделать проверку по objId или ip (только вот если динам ип уже не покатии(()то могу щас выложить... да не особо есть разница по нику или обджект ид вот если бы конфиг что бы не править каждый раз xDDDDDDDDDDDDD ну всеравно спасибо еще раз) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
iceman 42 Опубликовано 29 марта, 2012 (изменено) да не особо есть разница по нику или обджект ид вот если бы конфиг что бы не править каждый раз xDDDDDDDDDDDDD ну всеравно спасибо еще раз) Ну как вариант можна сделать вот так конфиг Скрытый текст public static String ADMIN_NAME; public static FastList<String> ADMIN_NAME_LIST; Потом добавляем такой код: Скрытый текст ADMIN_NAME = altSettings.getProperty("AdminName"); ADMIN_NAME_LIST = new FastList<String>(); for(String name: ADMIN_NAME.split(",")) ADMIN_NAME_LIST.add(name); и потом в проверке писать уже не ник а просто Config.ADMIN_NAME А в файле конефига (в примере я брал altsettings) добавляете AdminName = Admin,Admin2,adfhdf и тд) Изменено 29 марта, 2012 пользователем iceman Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
iceman 42 Опубликовано 31 марта, 2012 Всем привет выкладываю ещё один маленький пример как обезапаситься от переточеных игроков В некоторых сборках вроде бы такое есть уже , но мб кому-то мб пригодится) Скрытый текст if(!activeChar.isGM()){// Добавляем в класс EnterWorld.java for(L2ItemInstance item : activeChar.getInventory().getItems()){ if(item.getEnchantLevel() > Config.MAX_ENCHANT){ activeChar.setAccessLevel(-100); Util.handleIllegalPlayerAction(activeChar,"Игрок " +activeChar.getName() +" получил бан! ", IllegalPlayerAction.PUNISH_KICKBAN); } } } //Создаём отдельный класс по примеру проверки на админку в промежутки времени //Который я выкладывал выше и вместо проверку на админку пишем такой код : for(L2PcInstance player: L2World.getInstance().getAllPlayers()){ if(!player.isGM()){ for(L2ItemInstance item : activeChar.getInventory().getItems()){ if(item.getEnchantLevel() > Config.MAX_ENCHANT){ activeChar.setAccessLevel(-100); Util.handleIllegalPlayerAction(activeChar,"Игрок " +activeChar.getName() +" получил бан! ", IllegalPlayerAction.PUNISH_KICKBAN); } } } P.S. В дальнейшем в свободное время буду выкладывать различные мануалы Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Gy6aH 0 Опубликовано 16 августа, 2012 Iceman , можно ли полный код с выводом в конфиг Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
iceman 42 Опубликовано 16 августа, 2012 Iceman , можно ли полный код с выводом в конфиг Завтро скину по obj_Id Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты