Перейти к содержанию
Авторизация  
iceman

Мануал Как Обезопасится От Лишних Админов)

Рекомендуемые сообщения

И так у могих были такие моменты когда из не откуда появлиль "левые" админы и делали вред

как произошло с пользоватилем данного форму 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. код уже был протестирован и всё норм работает

не забывайте ставить +++

Если есть ошибки в описании сори) :clapping:

Если комуто что то не понятно спрашивайте.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
И так у могих были такие моменты когда из не откуда появлиль "левые" админы и делали вред

как произошло с пользоватилем данного форму 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. код уже был протестирован и всё норм работает

не забывайте ставить +++

Если есть ошибки в описании сори) :clapping:

Если комуто что то не понятно спрашивайте.

Все отлично работает))

Спасибо большой за помощь Андрюха))

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Cпасиб пригодится) позже будет время попробую сделать это чудо чтоб работало из конфига чтобы не менять ник в коде)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Cпасиб пригодится) позже будет время попробую сделать это чудо чтоб работало из конфига чтобы не менять ник в коде)

Для спасибки есть кнопочка)))

конфиги не сделал по одной просто причине у MustanGа нету исходов я брал последнюю реву фрозенов и переделывал

а конфиги не трогал тк их уже изменяли) :clapping:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
2.создаём отдельный класс и называем его(можете конечно по другому)) AdminCheck.java

и добавляйте в него следующий код

где его создавать?)

в папке com.l2jfrozen.gameserver.network

Изменено пользователем taste

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Для спасибки есть кнопочка)))

конфиги не сделал по одной просто причине у MustanGа нету исходов я брал последнюю реву фрозенов и переделывал

а конфиги не трогал тк их уже изменяли) :clapping:

На лионне выведена проверка админа по ИД чара в конфигах . Мне показалось так нажеджнее чем проверка по нику . Но все равно спасибо , попробую переписать импорты под другие исходники

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Мне больше интересно посмотреть на то не как обезопаситься, а как стать им =)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Мне больше интересно посмотреть на то не как обезопаситься, а как стать им =)

На жук заглянь там подскажут

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Постов нету там, а флудить попусту за ради постов не мой конёк =)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
где его создавать?)

в папке com.l2jfrozen.gameserver.network

Ну если посмотреть внемательно то я создавал новый пакет

com.l2jfrozen.gameserver.network.check - и тут создавал класс

 

На лионне выведена проверка админа по ИД чара в конфигах . Мне показалось так нажеджнее чем проверка по нику . Но все равно спасибо , попробую переписать импорты под другие исходники

Если надо могу сделать и по ид чара там делов то)))

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

хм мб еще в конфиг вывести?что бы удобней было?)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Смысл только от этого,если имеется доступ к базе и drop tables;

обезопасит только от левого гм каторые ломанет чара или в этом вроде.

Изменено пользователем ENERGODAR

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
хм мб еще в конфиг вывести?что бы удобней было?)

я не делал этого потому что у Мустанга не было исходов что бы я их мог вывести

я взял последнии фрозенов и некоторые классы из них Config не брал потому что он был переделан)

P.S. Если интересно как сделать проверку по objId или ip :D (только вот если динам ип уже не покатии(()то могу щас выложить... :D

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
я не делал этого потому что у Мустанга не было исходов что бы я их мог вывести

я взял последнии фрозенов и некоторые классы из них Config не брал потому что он был переделан)

P.S. Если интересно как сделать проверку по objId или ip :D (только вот если динам ип уже не покатии(()то могу щас выложить... :D

да не особо есть разница по нику или обджект ид :D

вот если бы конфиг что бы не править каждый раз xDDDDDDDDDDDDD

ну всеравно спасибо еще раз)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
да не особо есть разница по нику или обджект ид :D

вот если бы конфиг что бы не править каждый раз 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 и тд)

Изменено пользователем iceman

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Всем привет

выкладываю ещё один маленький пример как обезапаситься от переточеных игроков

В некоторых сборках вроде бы такое есть уже , но мб кому-то мб пригодится)

Скрытый текст
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. В дальнейшем в свободное время буду выкладывать различные мануалы <_<:)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Iceman , можно ли полный код с выводом в конфиг :D

Завтро скину по obj_Id

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация  

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×
×
  • Создать...