
23.09.2015, 16:28
|
|
Постоянный
Регистрация: 13.04.2015
Сообщений: 454
С нами:
5834308
Репутация:
2128
|
|
Код:
Код:
/**
*
* @author Visor123
* L2Emu Enterprise Server
*/
public class L2ManagementEventGroupEngine extends L2EventGroupEngine
{
public L2ManagementEventGroupEngine(String name, String command)
{
super(name, command);
}
@Override
public boolean useAdminCommand(L2PcInstance player, String command)
{
if (Config.ENT_TESTEVENTS)
_log.info("L2ManagementEventGroupEngine "+getName()+" useAdminCommand player="+player.getName()+" command="+command);
if (command.equalsIgnoreCase(getCommand()))
{
showMainPage(player);
}
else if (command.startsWith(getCommand()+"_show")
|| command.startsWith(getCommand()+"_status")
|| command.startsWith(getCommand()+"_edit")
|| command.startsWith(getCommand()+"_save")
|| command.startsWith(getCommand()+"_load")
|| command.startsWith(getCommand()+"_schedule")
|| command.startsWith(getCommand()+"_totaliser")
|| command.startsWith(getCommand()+"_join")
|| command.startsWith(getCommand()+"_start")
|| command.startsWith(getCommand()+"_teleport")
|| command.startsWith(getCommand()+"_abort")
|| command.startsWith(getCommand()+"_finish")
|| command.startsWith(getCommand()+"_auto")
|| command.startsWith(getCommand()+"_sit")
|| command.startsWith(getCommand()+"_stand")
|| command.startsWith(getCommand()+"_kick")
)
{
String eventName = command.substring(getCommand().length()+6);
if (command.startsWith(getCommand()+"_schedule")
|| command.startsWith(getCommand()+"_teleport"))
eventName = command.substring(getCommand().length()+10);
else if (command.startsWith(getCommand()+"_finish") || command.startsWith(getCommand()+"_status"))
eventName = command.substring(getCommand().length()+8);
else if (command.startsWith(getCommand()+"_start")
|| command.startsWith(getCommand()+"_abort")
|| command.startsWith(getCommand()+"_stand"))
eventName = command.substring(getCommand().length()+7);
else if (command.startsWith(getCommand()+"_sit"))
eventName = command.substring(getCommand().length()+5);
else if (command.startsWith(getCommand()+"_totaliser"))
eventName = command.substring(getCommand().length()+11);
try
{
String[] params = eventName.split(" ");
if (Config.ENT_TESTEVENTS)
_log.info("L2ManagementEventEngine "+getName()+" show/edit... eventName="+params[0]+" params.length="+params.length);
if (_eventInstances.containsKey(params[0]))
_eventInstances.get(params[0]).useAdminCommand(player, command, params);
else
{
player.sendMessage("Event instance with name="+params[0]+" not found");
showMainPage(player);
}
return true;
}
catch (Exception e) {
_log.warn(e.getMessage());
}
}
else if (command.startsWith(getCommand()+"_del"))
{
try
{
String eventName = command.substring(getCommand().length()+5);
String[] params = eventName.split(" ");
if (Config.ENT_TESTEVENTS)
_log.info(getName()+" eventName="+params[0]+" params.length="+params.length);
if (_eventInstances.containsKey(params[0]) && params.length > 1 && params[1].equalsIgnoreCase("y"))
{
L2EventGroupEngineInstance event = _eventInstances.remove(params[0]);
event.deleteData();
saveData();
player.sendMessage(getName()+" data saved to DB");
}
else if (params.length 0 && !eventName.contains(" ") && eventName.length() 16)
player.sendMessage("Name event need have 1-16 characters");
showMainPage(player);
}
catch (Exception e) {
_log.warn(e.getMessage());
}
}
return super.useAdminCommand(player, command);
}
protected void showMainPage(L2PcInstance player)
{
NpcHtmlMessage adminReply = new NpcHtmlMessage(5);
TextBuilder replyMSG = new TextBuilder(""+getName()+"");
replyMSG.append("[ "+getName()+" ]"
+""
+"");
replyMSG.append("
Engine instances");
replyMSG.append("");
for (L2EventGroupEngineInstance event : _eventInstances.values())
{
replyMSG.append(""+event.getName()+""
+""
+""
+""
);
}
replyMSG.append("");
replyMSG.append("");
replyMSG.append("");
replyMSG.append("");
replyMSG.append("");
adminReply.setHtml(replyMSG.toString());
player.sendPacket(adminReply);
// Send a Server->Client ActionFailed to the L2PcInstance in order to avoid that the client wait another packet
player.sendPacket(ActionFailed.STATIC_PACKET);
}
}
С точки зрения ява-машины - ничего страшного, но нужно было оставить вторую проверку - выполнение кода не пошло бы хоть так, хоть эдак, никаких потерь по времени
Но с точки зрения написания - ***ец
Чет герычем попахивает, мдам.......
command.substring(getCommand().length()+5); еще меня особенно умиляет)
Берем строку, режем ее, вычленяем остаток - вуаля, команда!
|
|
|

23.09.2015, 16:40
|
|
Участник форума
Регистрация: 15.09.2015
Сообщений: 119
С нами:
5610336
Репутация:
766
|
|
Я тут, конечно, недавно, но почему на форуме нет раздела куда будут выкладывать говнокоды?
P.S. Скорее всего писал он на Java 6, где не было поддержки switch(String), которая появилась только в Java 7. Но даже так мне не понятно зачем везде вызываются getCommand и почему нельзя было красиво оформить код с использованием enum
|
|
|

23.09.2015, 16:41
|
|
Постоянный
Регистрация: 13.04.2015
Сообщений: 454
С нами:
5834308
Репутация:
2128
|
|
Сообщение от WoWan-SM
Я тут, конечно, недавно, но почему на форуме нет раздела куда будут выкладывать говнокоды?
P.S. Скорее всего писал он на Java 6, где не было поддержки switch(String), которая появилась только в Java 7. Но даже так мне не понятно зачем везде вызываются getCommand и почему нельзя было красиво оформить код с использованием enum
А по вашему это в каком разделе?
|
|
|

23.09.2015, 16:43
|
|
Постоянный
Регистрация: 07.07.2015
Сообщений: 486
С нами:
5710893
Репутация:
0
|
|
Сообщение от WoWan-SM
Я тут, конечно, недавно, но почему на форуме нет раздела куда будут выкладывать говнокоды?
|
|
|

23.09.2015, 18:04
|
|
Постоянный
Регистрация: 22.09.2015
Сообщений: 427
С нами:
5600182
Репутация:
0
|
|
Сообщение от WoWan-SM
P.S. Но даже так мне не понятно зачем везде вызываются getCommand и почему нельзя было красиво оформить код с использованием enum
Потому что это команды для ивентов(если я не ошибаюсь), а у каждого ивента может быть своя команда.
П.С. Единственное что напрягает, это куча обрезания строк... Нельзя в начале обработки разделить строку по первому пробелу, и вышло бы 1 часть - команда, 2 часть - аргументы?
|
|
|

23.09.2015, 19:55
|
|
Участник форума
Регистрация: 15.09.2015
Сообщений: 119
С нами:
5610336
Репутация:
766
|
|
Сообщение от Mifesto
Потому что это команды для ивентов(если я не ошибаюсь), а у каждого ивента может быть своя команда.
П.С. Единственное что напрягает, это куча обрезания строк... Нельзя в начале обработки разделить строку по первому пробелу, и вышло бы 1 часть - команда, 2 часть - аргументы?
И что? Почему сразу переменную не объявить?
Со вторым пунктом согласен. С использованием StringTokenizer было бы лучше переписать.
|
|
|

23.09.2015, 23:15
|
|
Постоянный
Регистрация: 22.06.2015
Сообщений: 766
С нами:
5732336
Репутация:
0
|
|
Сообщение от WoWan-SM
Я тут, конечно, недавно, но почему на форуме нет раздела куда будут выкладывать говнокоды?
P.S. Скорее всего писал он на Java 6, где не было поддержки switch(String), которая появилась только в Java 7. Но даже так мне не понятно зачем везде вызываются getCommand и почему нельзя было красиво оформить код с использованием enum
Команда генерится по имени типа эвента, и да писалось это достаточно давно. Еще один момент - компилятор для java классов, я оставил как и был, компилит на старте java (основа не овер, а l2emu project формата 2007 года) работает быстро под 1.6, когда уже 1.7 грузит чуть ли не в 5 раз дольше (хотел обновить как-то). Поэтому и синтаксис я оставил под 1.6.
Код может и кажется несколько "тяжелым", но он прост, понятен и достаточно надежен.
ТС (агрессивный и тупой) критически не понял, что он видит и почему так - и вылез кинуть это в говнокод, но по факту не все так как кажется. Просто в его голове не укладывается, что можно писать в таком ООП-стиле.
|
|
|

23.09.2015, 16:50
|
|
Постоянный
Регистрация: 14.06.2015
Сообщений: 910
С нами:
5744218
Репутация:
1488
|
|
|
|
|

23.09.2015, 21:08
|
|
Постоянный
Регистрация: 22.06.2015
Сообщений: 766
С нами:
5732336
Репутация:
0
|
|
Сообщение от GenCloud
Код:
Код:
/**
*
* @author Visor123
* L2Emu Enterprise Server
*/
public class L2ManagementEventGroupEngine extends L2EventGroupEngine
{
public L2ManagementEventGroupEngine(String name, String command)
{
super(name, command);
}
@Override
public boolean useAdminCommand(L2PcInstance player, String command)
{
if (Config.ENT_TESTEVENTS)
_log.info("L2ManagementEventGroupEngine "+getName()+" useAdminCommand player="+player.getName()+" command="+command);
if (command.equalsIgnoreCase(getCommand()))
{
showMainPage(player);
}
else if (command.startsWith(getCommand()+"_show")
|| command.startsWith(getCommand()+"_status")
|| command.startsWith(getCommand()+"_edit")
|| command.startsWith(getCommand()+"_save")
|| command.startsWith(getCommand()+"_load")
|| command.startsWith(getCommand()+"_schedule")
|| command.startsWith(getCommand()+"_totaliser")
|| command.startsWith(getCommand()+"_join")
|| command.startsWith(getCommand()+"_start")
|| command.startsWith(getCommand()+"_teleport")
|| command.startsWith(getCommand()+"_abort")
|| command.startsWith(getCommand()+"_finish")
|| command.startsWith(getCommand()+"_auto")
|| command.startsWith(getCommand()+"_sit")
|| command.startsWith(getCommand()+"_stand")
|| command.startsWith(getCommand()+"_kick")
)
{
String eventName = command.substring(getCommand().length()+6);
if (command.startsWith(getCommand()+"_schedule")
|| command.startsWith(getCommand()+"_teleport"))
eventName = command.substring(getCommand().length()+10);
else if (command.startsWith(getCommand()+"_finish") || command.startsWith(getCommand()+"_status"))
eventName = command.substring(getCommand().length()+8);
else if (command.startsWith(getCommand()+"_start")
|| command.startsWith(getCommand()+"_abort")
|| command.startsWith(getCommand()+"_stand"))
eventName = command.substring(getCommand().length()+7);
else if (command.startsWith(getCommand()+"_sit"))
eventName = command.substring(getCommand().length()+5);
else if (command.startsWith(getCommand()+"_totaliser"))
eventName = command.substring(getCommand().length()+11);
try
{
String[] params = eventName.split(" ");
if (Config.ENT_TESTEVENTS)
_log.info("L2ManagementEventEngine "+getName()+" show/edit... eventName="+params[0]+" params.length="+params.length);
if (_eventInstances.containsKey(params[0]))
_eventInstances.get(params[0]).useAdminCommand(player, command, params);
else
{
player.sendMessage("Event instance with name="+params[0]+" not found");
showMainPage(player);
}
return true;
}
catch (Exception e) {
_log.warn(e.getMessage());
}
}
else if (command.startsWith(getCommand()+"_del"))
{
try
{
String eventName = command.substring(getCommand().length()+5);
String[] params = eventName.split(" ");
if (Config.ENT_TESTEVENTS)
_log.info(getName()+" eventName="+params[0]+" params.length="+params.length);
if (_eventInstances.containsKey(params[0]) && params.length > 1 && params[1].equalsIgnoreCase("y"))
{
L2EventGroupEngineInstance event = _eventInstances.remove(params[0]);
event.deleteData();
saveData();
player.sendMessage(getName()+" data saved to DB");
}
else if (params.length 0 && !eventName.contains(" ") && eventName.length() 16)
player.sendMessage("Name event need have 1-16 characters");
showMainPage(player);
}
catch (Exception e) {
_log.warn(e.getMessage());
}
}
return super.useAdminCommand(player, command);
}
protected void showMainPage(L2PcInstance player)
{
NpcHtmlMessage adminReply = new NpcHtmlMessage(5);
TextBuilder replyMSG = new TextBuilder(""+getName()+"");
replyMSG.append("[ "+getName()+" ]"
+""
+"");
replyMSG.append("
Engine instances");
replyMSG.append("");
for (L2EventGroupEngineInstance event : _eventInstances.values())
{
replyMSG.append(""+event.getName()+""
+""
+""
+""
);
}
replyMSG.append("");
replyMSG.append("");
replyMSG.append("");
replyMSG.append("");
replyMSG.append("");
adminReply.setHtml(replyMSG.toString());
player.sendPacket(adminReply);
// Send a Server->Client ActionFailed to the L2PcInstance in order to avoid that the client wait another packet
player.sendPacket(ActionFailed.STATIC_PACKET);
}
}
С точки зрения ява-машины - ничего страшного, но нужно было оставить вторую проверку - выполнение кода не пошло бы хоть так, хоть эдак, никаких потерь по времени
Но с точки зрения написания - ***ец
Чет герычем попахивает, мдам.......
command.substring(getCommand().length()+5); еще меня особенно умиляет)
Берем строку, режем ее, вычленяем остаток - вуаля, команда!
Начнем с того, что ты кроме маршалинга тут, я так понимаю, ничего не понял?
Второй интересный вопрос, а ты вообще что-то написал, или ты воздух сам знаешь из чьей попы в попытке создать пук?
Когда ты ответишь на эти простые вопросы, то станет понятно и к чему этот цирк. И тогда мы поищем что там за говно ты написал, а то что оно у тебя говно - так не сомневайся, показывай свой код - мы поржем.
Сообщение от GenCloud
Код:
Код:
/**
*
* @author Visor123
* L2Emu Enterprise Server
*/
public class L2ManagementEventGroupEngine extends L2EventGroupEngine
{
public L2ManagementEventGroupEngine(String name, String command)
{
super(name, command);
}
@Override
public boolean useAdminCommand(L2PcInstance player, String command)
{
if (Config.ENT_TESTEVENTS)
_log.info("L2ManagementEventGroupEngine "+getName()+" useAdminCommand player="+player.getName()+" command="+command);
if (command.equalsIgnoreCase(getCommand()))
{
showMainPage(player);
}
else if (command.startsWith(getCommand()+"_show")
|| command.startsWith(getCommand()+"_status")
|| command.startsWith(getCommand()+"_edit")
|| command.startsWith(getCommand()+"_save")
|| command.startsWith(getCommand()+"_load")
|| command.startsWith(getCommand()+"_schedule")
|| command.startsWith(getCommand()+"_totaliser")
|| command.startsWith(getCommand()+"_join")
|| command.startsWith(getCommand()+"_start")
|| command.startsWith(getCommand()+"_teleport")
|| command.startsWith(getCommand()+"_abort")
|| command.startsWith(getCommand()+"_finish")
|| command.startsWith(getCommand()+"_auto")
|| command.startsWith(getCommand()+"_sit")
|| command.startsWith(getCommand()+"_stand")
|| command.startsWith(getCommand()+"_kick")
)
{
String eventName = command.substring(getCommand().length()+6);
if (command.startsWith(getCommand()+"_schedule")
|| command.startsWith(getCommand()+"_teleport"))
eventName = command.substring(getCommand().length()+10);
else if (command.startsWith(getCommand()+"_finish") || command.startsWith(getCommand()+"_status"))
eventName = command.substring(getCommand().length()+8);
else if (command.startsWith(getCommand()+"_start")
|| command.startsWith(getCommand()+"_abort")
|| command.startsWith(getCommand()+"_stand"))
eventName = command.substring(getCommand().length()+7);
else if (command.startsWith(getCommand()+"_sit"))
eventName = command.substring(getCommand().length()+5);
else if (command.startsWith(getCommand()+"_totaliser"))
eventName = command.substring(getCommand().length()+11);
try
{
String[] params = eventName.split(" ");
if (Config.ENT_TESTEVENTS)
_log.info("L2ManagementEventEngine "+getName()+" show/edit... eventName="+params[0]+" params.length="+params.length);
if (_eventInstances.containsKey(params[0]))
_eventInstances.get(params[0]).useAdminCommand(player, command, params);
else
{
player.sendMessage("Event instance with name="+params[0]+" not found");
showMainPage(player);
}
return true;
}
catch (Exception e) {
_log.warn(e.getMessage());
}
}
else if (command.startsWith(getCommand()+"_del"))
{
try
{
String eventName = command.substring(getCommand().length()+5);
String[] params = eventName.split(" ");
if (Config.ENT_TESTEVENTS)
_log.info(getName()+" eventName="+params[0]+" params.length="+params.length);
if (_eventInstances.containsKey(params[0]) && params.length > 1 && params[1].equalsIgnoreCase("y"))
{
L2EventGroupEngineInstance event = _eventInstances.remove(params[0]);
event.deleteData();
saveData();
player.sendMessage(getName()+" data saved to DB");
}
else if (params.length 0 && !eventName.contains(" ") && eventName.length() 16)
player.sendMessage("Name event need have 1-16 characters");
showMainPage(player);
}
catch (Exception e) {
_log.warn(e.getMessage());
}
}
return super.useAdminCommand(player, command);
}
protected void showMainPage(L2PcInstance player)
{
NpcHtmlMessage adminReply = new NpcHtmlMessage(5);
TextBuilder replyMSG = new TextBuilder(""+getName()+"");
replyMSG.append("[ "+getName()+" ]"
+""
+"");
replyMSG.append("
Engine instances");
replyMSG.append("");
for (L2EventGroupEngineInstance event : _eventInstances.values())
{
replyMSG.append(""+event.getName()+""
+""
+""
+""
);
}
replyMSG.append("");
replyMSG.append("");
replyMSG.append("");
replyMSG.append("");
replyMSG.append("");
adminReply.setHtml(replyMSG.toString());
player.sendPacket(adminReply);
// Send a Server->Client ActionFailed to the L2PcInstance in order to avoid that the client wait another packet
player.sendPacket(ActionFailed.STATIC_PACKET);
}
}
С точки зрения ява-машины - ничего страшного, но нужно было оставить вторую проверку - выполнение кода не пошло бы хоть так, хоть эдак, никаких потерь по времени
Но с точки зрения написания - ***ец
Чет герычем попахивает, мдам.......
command.substring(getCommand().length()+5); еще меня особенно умиляет)
Берем строку, режем ее, вычленяем остаток - вуаля, команда!
Я смотрю, ты ссыкнул показать свой говнокод. Вывод очевиден - человек ты воздух из попы единорога.
Вопросы? Видимо нет. Нет кода - нет вопросов.
Человек, ты обосрался, сочувствую.
Сообщение от Mifesto
Потому что это команды для ивентов(если я не ошибаюсь), а у каждого ивента может быть своя команда.
П.С. Единственное что напрягает, это куча обрезания строк... Нельзя в начале обработки разделить строку по первому пробелу, и вышло бы 1 часть - команда, 2 часть - аргументы?
Для оптимизации можно было бы ровнять строки, переделывать в енумы наборы команд - но это ничего не изменит в общем времени нагрузки процессора или работе сервера, но зато заберет мое время. Такое обычно поручают какому-то глуповатому программеру - чтобы при деле был. Поскольку все обычно хватают шары чьих-то команд и если там переписано что-то, кичатся этим, так было с фениксом, овером и лоствордом. Но чья это была заслуга? ТС? Нет конечно, и ни одного из бздо-писателей.
Я не посчитал нужным тратить время на реструктуризации кода и вывод маршалинга некритичных к времени секций. Ничего в этом нет страшного, зато я потратил время на то, что исправил Javolution - а никто этого сделать не смог почему-то, это же так просто.
У всех "просто" разное, кто-то ровняет маршалинг, а кто-то вообще ничего, зато трындит.
Причем ТС настолько тупой, что даже не понял для чего этот класс нужен. И используется ли он вообще в игре.
|
|
|

23.09.2015, 21:25
|
|
Постоянный
Регистрация: 13.04.2015
Сообщений: 454
С нами:
5834308
Репутация:
2128
|
|
Сообщение от Visor123
Начнем с того, что ты кроме маршалинга тут, я так понимаю, ничего не понял?
Второй интересный вопрос, а ты вообще что-то написал, или ты воздух сам знаешь из чьей попы в попытке создать пук?
Когда ты ответишь на эти простые вопросы, то станет понятно и к чему этот цирк. И тогда мы поищем что там за говно ты написал, а то что оно у тебя говно - так не сомневайся, показывай свой код - мы поржем.
1) Я не сторонник расшариваний своих наработок.
2) Может это ты все через жопу вывернул ммм? Чекаем команды: проверка "или" на все команды команд -> следующая такая же проверка команду, лол, пздц, я ору.
Сплит по пробелу, [0] - наша команда... самое клевое дальше ты делает этот сплит по пробелу что бы получить параметры String[] params = eventName.split(" ");
А свое пуканобомбение могешь засунуть себе в очко.
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|