Addition of .offline voiced command.
This commit is contained in:
parent
2a4a17b73f
commit
19241a0080
@ -41,3 +41,6 @@ OfflineDisconnectSameAccount = False
|
||||
# Uses more datatabase resources, but helps if server shuts down unexpectedly.
|
||||
StoreOfflineTradeInRealtime = True
|
||||
|
||||
# Enable .offline command for logging out.
|
||||
EnableOfflineCommand = True
|
||||
|
||||
|
@ -334,6 +334,7 @@ import handlers.voicedcommandhandlers.Banking;
|
||||
import handlers.voicedcommandhandlers.ChangePassword;
|
||||
import handlers.voicedcommandhandlers.ChatAdmin;
|
||||
import handlers.voicedcommandhandlers.Lang;
|
||||
import handlers.voicedcommandhandlers.Offline;
|
||||
import handlers.voicedcommandhandlers.Premium;
|
||||
|
||||
/**
|
||||
@ -588,6 +589,7 @@ public class MasterHandler
|
||||
Config.CHAT_ADMIN ? ChatAdmin.class : null,
|
||||
Config.MULTILANG_ENABLE && Config.MULTILANG_VOICED_ALLOW ? Lang.class : null,
|
||||
Config.ALLOW_CHANGE_PASSWORD ? ChangePassword.class : null,
|
||||
Config.ENABLE_OFFLINE_COMMAND && (Config.OFFLINE_TRADE_ENABLE || Config.OFFLINE_CRAFT_ENABLE) ? Offline.class : null,
|
||||
Config.PREMIUM_SYSTEM_ENABLED ? Premium.class : null,
|
||||
Config.AUTO_POTIONS_ENABLED ? AutoPotion.class : null,
|
||||
},
|
||||
|
65
L2J_Mobius_01.0_Ertheia/dist/game/data/scripts/handlers/voicedcommandhandlers/Offline.java
vendored
Normal file
65
L2J_Mobius_01.0_Ertheia/dist/game/data/scripts/handlers/voicedcommandhandlers/Offline.java
vendored
Normal file
@ -0,0 +1,65 @@
|
||||
/*
|
||||
* This file is part of the L2J Mobius project.
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package handlers.voicedcommandhandlers;
|
||||
|
||||
import org.l2jmobius.Config;
|
||||
import org.l2jmobius.gameserver.handler.IVoicedCommandHandler;
|
||||
import org.l2jmobius.gameserver.model.actor.Player;
|
||||
import org.l2jmobius.gameserver.network.SystemMessageId;
|
||||
import org.l2jmobius.gameserver.network.serverpackets.ActionFailed;
|
||||
import org.l2jmobius.gameserver.network.serverpackets.ConfirmDlg;
|
||||
|
||||
/**
|
||||
* @author Mobius
|
||||
*/
|
||||
public class Offline implements IVoicedCommandHandler
|
||||
{
|
||||
private static final String[] VOICED_COMMANDS =
|
||||
{
|
||||
"offline"
|
||||
};
|
||||
|
||||
@Override
|
||||
public boolean useVoicedCommand(String command, Player player, String target)
|
||||
{
|
||||
if (command.equals("offline") && Config.ENABLE_OFFLINE_COMMAND && (Config.OFFLINE_TRADE_ENABLE || Config.OFFLINE_CRAFT_ENABLE))
|
||||
{
|
||||
if (!player.isInStoreMode())
|
||||
{
|
||||
player.sendPacket(SystemMessageId.PRIVATE_STORE_ALREADY_CLOSED);
|
||||
player.sendPacket(ActionFailed.STATIC_PACKET);
|
||||
return false;
|
||||
}
|
||||
|
||||
if (player.isInInstance() || player.isInVehicle() || !player.canLogout())
|
||||
{
|
||||
player.sendPacket(ActionFailed.STATIC_PACKET);
|
||||
return false;
|
||||
}
|
||||
|
||||
player.sendPacket(new ConfirmDlg(SystemMessageId.DO_YOU_WISH_TO_EXIT_THE_GAME));
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String[] getVoicedCommandList()
|
||||
{
|
||||
return VOICED_COMMANDS;
|
||||
}
|
||||
}
|
@ -1102,6 +1102,7 @@ public class Config
|
||||
public static int OFFLINE_NAME_COLOR;
|
||||
public static boolean OFFLINE_FAME;
|
||||
public static boolean STORE_OFFLINE_TRADE_IN_REALTIME;
|
||||
public static boolean ENABLE_OFFLINE_COMMAND;
|
||||
public static boolean DISPLAY_SERVER_TIME;
|
||||
public static boolean WELCOME_MESSAGE_ENABLED;
|
||||
public static String WELCOME_MESSAGE_TEXT;
|
||||
@ -3289,6 +3290,7 @@ public class Config
|
||||
OFFLINE_DISCONNECT_FINISHED = offlineTradeConfig.getBoolean("OfflineDisconnectFinished", true);
|
||||
OFFLINE_DISCONNECT_SAME_ACCOUNT = offlineTradeConfig.getBoolean("OfflineDisconnectSameAccount", false);
|
||||
STORE_OFFLINE_TRADE_IN_REALTIME = offlineTradeConfig.getBoolean("StoreOfflineTradeInRealtime", true);
|
||||
ENABLE_OFFLINE_COMMAND = offlineTradeConfig.getBoolean("EnableOfflineCommand", true);
|
||||
|
||||
// Load PasswordChange config file (if exists)
|
||||
final PropertiesParser passwordChangeConfig = new PropertiesParser(CUSTOM_PASSWORD_CHANGE_CONFIG_FILE);
|
||||
|
@ -16,6 +16,7 @@
|
||||
*/
|
||||
package org.l2jmobius.gameserver.network.clientpackets;
|
||||
|
||||
import org.l2jmobius.Config;
|
||||
import org.l2jmobius.commons.network.PacketReader;
|
||||
import org.l2jmobius.gameserver.enums.PlayerAction;
|
||||
import org.l2jmobius.gameserver.handler.AdminCommandHandler;
|
||||
@ -26,8 +27,13 @@ import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerDlgAns
|
||||
import org.l2jmobius.gameserver.model.events.returns.TerminateReturn;
|
||||
import org.l2jmobius.gameserver.model.holders.DoorRequestHolder;
|
||||
import org.l2jmobius.gameserver.model.holders.SummonRequestHolder;
|
||||
import org.l2jmobius.gameserver.model.olympiad.OlympiadManager;
|
||||
import org.l2jmobius.gameserver.network.Disconnection;
|
||||
import org.l2jmobius.gameserver.network.GameClient;
|
||||
import org.l2jmobius.gameserver.network.SystemMessageId;
|
||||
import org.l2jmobius.gameserver.network.serverpackets.ActionFailed;
|
||||
import org.l2jmobius.gameserver.network.serverpackets.LeaveWorld;
|
||||
import org.l2jmobius.gameserver.util.OfflineTradeUtil;
|
||||
|
||||
/**
|
||||
* @author Dezmond_snz
|
||||
@ -80,6 +86,37 @@ public class DlgAnswer implements IClientIncomingPacket
|
||||
AdminCommandHandler.getInstance().useAdminCommand(player, cmd, false);
|
||||
}
|
||||
}
|
||||
else if (_messageId == SystemMessageId.DO_YOU_WISH_TO_EXIT_THE_GAME.getId())
|
||||
{
|
||||
if ((_answer == 0) || !Config.ENABLE_OFFLINE_COMMAND || (!Config.OFFLINE_TRADE_ENABLE && !Config.OFFLINE_CRAFT_ENABLE))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (!player.isInStoreMode())
|
||||
{
|
||||
player.sendPacket(SystemMessageId.PRIVATE_STORE_ALREADY_CLOSED);
|
||||
player.sendPacket(ActionFailed.STATIC_PACKET);
|
||||
return;
|
||||
}
|
||||
|
||||
if (player.isInInstance() || player.isInVehicle() || !player.canLogout())
|
||||
{
|
||||
player.sendPacket(ActionFailed.STATIC_PACKET);
|
||||
return;
|
||||
}
|
||||
|
||||
// Unregister from olympiad.
|
||||
if (OlympiadManager.getInstance().isRegistered(player))
|
||||
{
|
||||
OlympiadManager.getInstance().unRegisterNoble(player);
|
||||
}
|
||||
|
||||
if (!OfflineTradeUtil.enteredOfflineMode(player))
|
||||
{
|
||||
Disconnection.of(client, player).defaultSequence(LeaveWorld.STATIC_PACKET);
|
||||
}
|
||||
}
|
||||
else if ((_messageId == SystemMessageId.C1_IS_ATTEMPTING_TO_DO_A_RESURRECTION_THAT_RESTORES_S2_S3_XP_ACCEPT.getId()) || (_messageId == SystemMessageId.YOUR_CHARM_OF_COURAGE_IS_TRYING_TO_RESURRECT_YOU_WOULD_YOU_LIKE_TO_RESURRECT_NOW.getId()))
|
||||
{
|
||||
player.reviveAnswer(_answer);
|
||||
|
@ -41,3 +41,6 @@ OfflineDisconnectSameAccount = False
|
||||
# Uses more datatabase resources, but helps if server shuts down unexpectedly.
|
||||
StoreOfflineTradeInRealtime = True
|
||||
|
||||
# Enable .offline command for logging out.
|
||||
EnableOfflineCommand = True
|
||||
|
||||
|
@ -335,6 +335,7 @@ import handlers.voicedcommandhandlers.Banking;
|
||||
import handlers.voicedcommandhandlers.ChangePassword;
|
||||
import handlers.voicedcommandhandlers.ChatAdmin;
|
||||
import handlers.voicedcommandhandlers.Lang;
|
||||
import handlers.voicedcommandhandlers.Offline;
|
||||
import handlers.voicedcommandhandlers.Premium;
|
||||
|
||||
/**
|
||||
@ -590,6 +591,7 @@ public class MasterHandler
|
||||
Config.CHAT_ADMIN ? ChatAdmin.class : null,
|
||||
Config.MULTILANG_ENABLE && Config.MULTILANG_VOICED_ALLOW ? Lang.class : null,
|
||||
Config.ALLOW_CHANGE_PASSWORD ? ChangePassword.class : null,
|
||||
Config.ENABLE_OFFLINE_COMMAND && (Config.OFFLINE_TRADE_ENABLE || Config.OFFLINE_CRAFT_ENABLE) ? Offline.class : null,
|
||||
Config.PREMIUM_SYSTEM_ENABLED ? Premium.class : null,
|
||||
Config.AUTO_POTIONS_ENABLED ? AutoPotion.class : null,
|
||||
},
|
||||
|
65
L2J_Mobius_02.5_Underground/dist/game/data/scripts/handlers/voicedcommandhandlers/Offline.java
vendored
Normal file
65
L2J_Mobius_02.5_Underground/dist/game/data/scripts/handlers/voicedcommandhandlers/Offline.java
vendored
Normal file
@ -0,0 +1,65 @@
|
||||
/*
|
||||
* This file is part of the L2J Mobius project.
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package handlers.voicedcommandhandlers;
|
||||
|
||||
import org.l2jmobius.Config;
|
||||
import org.l2jmobius.gameserver.handler.IVoicedCommandHandler;
|
||||
import org.l2jmobius.gameserver.model.actor.Player;
|
||||
import org.l2jmobius.gameserver.network.SystemMessageId;
|
||||
import org.l2jmobius.gameserver.network.serverpackets.ActionFailed;
|
||||
import org.l2jmobius.gameserver.network.serverpackets.ConfirmDlg;
|
||||
|
||||
/**
|
||||
* @author Mobius
|
||||
*/
|
||||
public class Offline implements IVoicedCommandHandler
|
||||
{
|
||||
private static final String[] VOICED_COMMANDS =
|
||||
{
|
||||
"offline"
|
||||
};
|
||||
|
||||
@Override
|
||||
public boolean useVoicedCommand(String command, Player player, String target)
|
||||
{
|
||||
if (command.equals("offline") && Config.ENABLE_OFFLINE_COMMAND && (Config.OFFLINE_TRADE_ENABLE || Config.OFFLINE_CRAFT_ENABLE))
|
||||
{
|
||||
if (!player.isInStoreMode())
|
||||
{
|
||||
player.sendPacket(SystemMessageId.PRIVATE_STORE_ALREADY_CLOSED);
|
||||
player.sendPacket(ActionFailed.STATIC_PACKET);
|
||||
return false;
|
||||
}
|
||||
|
||||
if (player.isInInstance() || player.isInVehicle() || !player.canLogout())
|
||||
{
|
||||
player.sendPacket(ActionFailed.STATIC_PACKET);
|
||||
return false;
|
||||
}
|
||||
|
||||
player.sendPacket(new ConfirmDlg(SystemMessageId.DO_YOU_WISH_TO_EXIT_THE_GAME));
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String[] getVoicedCommandList()
|
||||
{
|
||||
return VOICED_COMMANDS;
|
||||
}
|
||||
}
|
@ -1113,6 +1113,7 @@ public class Config
|
||||
public static int OFFLINE_NAME_COLOR;
|
||||
public static boolean OFFLINE_FAME;
|
||||
public static boolean STORE_OFFLINE_TRADE_IN_REALTIME;
|
||||
public static boolean ENABLE_OFFLINE_COMMAND;
|
||||
public static boolean DISPLAY_SERVER_TIME;
|
||||
public static boolean WELCOME_MESSAGE_ENABLED;
|
||||
public static String WELCOME_MESSAGE_TEXT;
|
||||
@ -3315,6 +3316,7 @@ public class Config
|
||||
OFFLINE_DISCONNECT_FINISHED = offlineTradeConfig.getBoolean("OfflineDisconnectFinished", true);
|
||||
OFFLINE_DISCONNECT_SAME_ACCOUNT = offlineTradeConfig.getBoolean("OfflineDisconnectSameAccount", false);
|
||||
STORE_OFFLINE_TRADE_IN_REALTIME = offlineTradeConfig.getBoolean("StoreOfflineTradeInRealtime", true);
|
||||
ENABLE_OFFLINE_COMMAND = offlineTradeConfig.getBoolean("EnableOfflineCommand", true);
|
||||
|
||||
// Load PasswordChange config file (if exists)
|
||||
final PropertiesParser passwordChangeConfig = new PropertiesParser(CUSTOM_PASSWORD_CHANGE_CONFIG_FILE);
|
||||
|
@ -16,6 +16,7 @@
|
||||
*/
|
||||
package org.l2jmobius.gameserver.network.clientpackets;
|
||||
|
||||
import org.l2jmobius.Config;
|
||||
import org.l2jmobius.commons.network.PacketReader;
|
||||
import org.l2jmobius.gameserver.enums.PlayerAction;
|
||||
import org.l2jmobius.gameserver.handler.AdminCommandHandler;
|
||||
@ -26,8 +27,13 @@ import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerDlgAns
|
||||
import org.l2jmobius.gameserver.model.events.returns.TerminateReturn;
|
||||
import org.l2jmobius.gameserver.model.holders.DoorRequestHolder;
|
||||
import org.l2jmobius.gameserver.model.holders.SummonRequestHolder;
|
||||
import org.l2jmobius.gameserver.model.olympiad.OlympiadManager;
|
||||
import org.l2jmobius.gameserver.network.Disconnection;
|
||||
import org.l2jmobius.gameserver.network.GameClient;
|
||||
import org.l2jmobius.gameserver.network.SystemMessageId;
|
||||
import org.l2jmobius.gameserver.network.serverpackets.ActionFailed;
|
||||
import org.l2jmobius.gameserver.network.serverpackets.LeaveWorld;
|
||||
import org.l2jmobius.gameserver.util.OfflineTradeUtil;
|
||||
|
||||
/**
|
||||
* @author Dezmond_snz
|
||||
@ -80,6 +86,37 @@ public class DlgAnswer implements IClientIncomingPacket
|
||||
AdminCommandHandler.getInstance().useAdminCommand(player, cmd, false);
|
||||
}
|
||||
}
|
||||
else if (_messageId == SystemMessageId.DO_YOU_WISH_TO_EXIT_THE_GAME.getId())
|
||||
{
|
||||
if ((_answer == 0) || !Config.ENABLE_OFFLINE_COMMAND || (!Config.OFFLINE_TRADE_ENABLE && !Config.OFFLINE_CRAFT_ENABLE))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (!player.isInStoreMode())
|
||||
{
|
||||
player.sendPacket(SystemMessageId.PRIVATE_STORE_ALREADY_CLOSED);
|
||||
player.sendPacket(ActionFailed.STATIC_PACKET);
|
||||
return;
|
||||
}
|
||||
|
||||
if (player.isInInstance() || player.isInVehicle() || !player.canLogout())
|
||||
{
|
||||
player.sendPacket(ActionFailed.STATIC_PACKET);
|
||||
return;
|
||||
}
|
||||
|
||||
// Unregister from olympiad.
|
||||
if (OlympiadManager.getInstance().isRegistered(player))
|
||||
{
|
||||
OlympiadManager.getInstance().unRegisterNoble(player);
|
||||
}
|
||||
|
||||
if (!OfflineTradeUtil.enteredOfflineMode(player))
|
||||
{
|
||||
Disconnection.of(client, player).defaultSequence(LeaveWorld.STATIC_PACKET);
|
||||
}
|
||||
}
|
||||
else if ((_messageId == SystemMessageId.C1_IS_ATTEMPTING_TO_DO_A_RESURRECTION_THAT_RESTORES_S2_S3_XP_ACCEPT.getId()) || (_messageId == SystemMessageId.YOUR_CHARM_OF_COURAGE_IS_TRYING_TO_RESURRECT_YOU_WOULD_YOU_LIKE_TO_RESURRECT_NOW.getId()))
|
||||
{
|
||||
player.reviveAnswer(_answer);
|
||||
|
@ -41,3 +41,6 @@ OfflineDisconnectSameAccount = False
|
||||
# Uses more datatabase resources, but helps if server shuts down unexpectedly.
|
||||
StoreOfflineTradeInRealtime = True
|
||||
|
||||
# Enable .offline command for logging out.
|
||||
EnableOfflineCommand = True
|
||||
|
||||
|
@ -336,6 +336,7 @@ import handlers.voicedcommandhandlers.Banking;
|
||||
import handlers.voicedcommandhandlers.ChangePassword;
|
||||
import handlers.voicedcommandhandlers.ChatAdmin;
|
||||
import handlers.voicedcommandhandlers.Lang;
|
||||
import handlers.voicedcommandhandlers.Offline;
|
||||
import handlers.voicedcommandhandlers.Premium;
|
||||
|
||||
/**
|
||||
@ -592,6 +593,7 @@ public class MasterHandler
|
||||
Config.CHAT_ADMIN ? ChatAdmin.class : null,
|
||||
Config.MULTILANG_ENABLE && Config.MULTILANG_VOICED_ALLOW ? Lang.class : null,
|
||||
Config.ALLOW_CHANGE_PASSWORD ? ChangePassword.class : null,
|
||||
Config.ENABLE_OFFLINE_COMMAND && (Config.OFFLINE_TRADE_ENABLE || Config.OFFLINE_CRAFT_ENABLE) ? Offline.class : null,
|
||||
Config.PREMIUM_SYSTEM_ENABLED ? Premium.class : null,
|
||||
Config.AUTO_POTIONS_ENABLED ? AutoPotion.class : null,
|
||||
},
|
||||
|
65
L2J_Mobius_03.0_Helios/dist/game/data/scripts/handlers/voicedcommandhandlers/Offline.java
vendored
Normal file
65
L2J_Mobius_03.0_Helios/dist/game/data/scripts/handlers/voicedcommandhandlers/Offline.java
vendored
Normal file
@ -0,0 +1,65 @@
|
||||
/*
|
||||
* This file is part of the L2J Mobius project.
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package handlers.voicedcommandhandlers;
|
||||
|
||||
import org.l2jmobius.Config;
|
||||
import org.l2jmobius.gameserver.handler.IVoicedCommandHandler;
|
||||
import org.l2jmobius.gameserver.model.actor.Player;
|
||||
import org.l2jmobius.gameserver.network.SystemMessageId;
|
||||
import org.l2jmobius.gameserver.network.serverpackets.ActionFailed;
|
||||
import org.l2jmobius.gameserver.network.serverpackets.ConfirmDlg;
|
||||
|
||||
/**
|
||||
* @author Mobius
|
||||
*/
|
||||
public class Offline implements IVoicedCommandHandler
|
||||
{
|
||||
private static final String[] VOICED_COMMANDS =
|
||||
{
|
||||
"offline"
|
||||
};
|
||||
|
||||
@Override
|
||||
public boolean useVoicedCommand(String command, Player player, String target)
|
||||
{
|
||||
if (command.equals("offline") && Config.ENABLE_OFFLINE_COMMAND && (Config.OFFLINE_TRADE_ENABLE || Config.OFFLINE_CRAFT_ENABLE))
|
||||
{
|
||||
if (!player.isInStoreMode())
|
||||
{
|
||||
player.sendPacket(SystemMessageId.PRIVATE_STORE_ALREADY_CLOSED);
|
||||
player.sendPacket(ActionFailed.STATIC_PACKET);
|
||||
return false;
|
||||
}
|
||||
|
||||
if (player.isInInstance() || player.isInVehicle() || !player.canLogout())
|
||||
{
|
||||
player.sendPacket(ActionFailed.STATIC_PACKET);
|
||||
return false;
|
||||
}
|
||||
|
||||
player.sendPacket(new ConfirmDlg(SystemMessageId.DO_YOU_WISH_TO_EXIT_THE_GAME));
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String[] getVoicedCommandList()
|
||||
{
|
||||
return VOICED_COMMANDS;
|
||||
}
|
||||
}
|
@ -1126,6 +1126,7 @@ public class Config
|
||||
public static int OFFLINE_NAME_COLOR;
|
||||
public static boolean OFFLINE_FAME;
|
||||
public static boolean STORE_OFFLINE_TRADE_IN_REALTIME;
|
||||
public static boolean ENABLE_OFFLINE_COMMAND;
|
||||
public static boolean DISPLAY_SERVER_TIME;
|
||||
public static boolean WELCOME_MESSAGE_ENABLED;
|
||||
public static String WELCOME_MESSAGE_TEXT;
|
||||
@ -3337,6 +3338,7 @@ public class Config
|
||||
OFFLINE_DISCONNECT_FINISHED = offlineTradeConfig.getBoolean("OfflineDisconnectFinished", true);
|
||||
OFFLINE_DISCONNECT_SAME_ACCOUNT = offlineTradeConfig.getBoolean("OfflineDisconnectSameAccount", false);
|
||||
STORE_OFFLINE_TRADE_IN_REALTIME = offlineTradeConfig.getBoolean("StoreOfflineTradeInRealtime", true);
|
||||
ENABLE_OFFLINE_COMMAND = offlineTradeConfig.getBoolean("EnableOfflineCommand", true);
|
||||
|
||||
// Load PasswordChange config file (if exists)
|
||||
final PropertiesParser passwordChangeConfig = new PropertiesParser(CUSTOM_PASSWORD_CHANGE_CONFIG_FILE);
|
||||
|
@ -16,6 +16,7 @@
|
||||
*/
|
||||
package org.l2jmobius.gameserver.network.clientpackets;
|
||||
|
||||
import org.l2jmobius.Config;
|
||||
import org.l2jmobius.commons.network.PacketReader;
|
||||
import org.l2jmobius.gameserver.enums.PlayerAction;
|
||||
import org.l2jmobius.gameserver.handler.AdminCommandHandler;
|
||||
@ -26,8 +27,13 @@ import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerDlgAns
|
||||
import org.l2jmobius.gameserver.model.events.returns.TerminateReturn;
|
||||
import org.l2jmobius.gameserver.model.holders.DoorRequestHolder;
|
||||
import org.l2jmobius.gameserver.model.holders.SummonRequestHolder;
|
||||
import org.l2jmobius.gameserver.model.olympiad.OlympiadManager;
|
||||
import org.l2jmobius.gameserver.network.Disconnection;
|
||||
import org.l2jmobius.gameserver.network.GameClient;
|
||||
import org.l2jmobius.gameserver.network.SystemMessageId;
|
||||
import org.l2jmobius.gameserver.network.serverpackets.ActionFailed;
|
||||
import org.l2jmobius.gameserver.network.serverpackets.LeaveWorld;
|
||||
import org.l2jmobius.gameserver.util.OfflineTradeUtil;
|
||||
|
||||
/**
|
||||
* @author Dezmond_snz
|
||||
@ -80,6 +86,37 @@ public class DlgAnswer implements IClientIncomingPacket
|
||||
AdminCommandHandler.getInstance().useAdminCommand(player, cmd, false);
|
||||
}
|
||||
}
|
||||
else if (_messageId == SystemMessageId.DO_YOU_WISH_TO_EXIT_THE_GAME.getId())
|
||||
{
|
||||
if ((_answer == 0) || !Config.ENABLE_OFFLINE_COMMAND || (!Config.OFFLINE_TRADE_ENABLE && !Config.OFFLINE_CRAFT_ENABLE))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (!player.isInStoreMode())
|
||||
{
|
||||
player.sendPacket(SystemMessageId.PRIVATE_STORE_ALREADY_CLOSED);
|
||||
player.sendPacket(ActionFailed.STATIC_PACKET);
|
||||
return;
|
||||
}
|
||||
|
||||
if (player.isInInstance() || player.isInVehicle() || !player.canLogout())
|
||||
{
|
||||
player.sendPacket(ActionFailed.STATIC_PACKET);
|
||||
return;
|
||||
}
|
||||
|
||||
// Unregister from olympiad.
|
||||
if (OlympiadManager.getInstance().isRegistered(player))
|
||||
{
|
||||
OlympiadManager.getInstance().unRegisterNoble(player);
|
||||
}
|
||||
|
||||
if (!OfflineTradeUtil.enteredOfflineMode(player))
|
||||
{
|
||||
Disconnection.of(client, player).defaultSequence(LeaveWorld.STATIC_PACKET);
|
||||
}
|
||||
}
|
||||
else if ((_messageId == SystemMessageId.C1_IS_ATTEMPTING_TO_DO_A_RESURRECTION_THAT_RESTORES_S2_S3_XP_ACCEPT.getId()) || (_messageId == SystemMessageId.YOUR_CHARM_OF_COURAGE_IS_TRYING_TO_RESURRECT_YOU_WOULD_YOU_LIKE_TO_RESURRECT_NOW.getId()))
|
||||
{
|
||||
player.reviveAnswer(_answer);
|
||||
|
@ -41,3 +41,6 @@ OfflineDisconnectSameAccount = False
|
||||
# Uses more datatabase resources, but helps if server shuts down unexpectedly.
|
||||
StoreOfflineTradeInRealtime = True
|
||||
|
||||
# Enable .offline command for logging out.
|
||||
EnableOfflineCommand = True
|
||||
|
||||
|
@ -336,6 +336,7 @@ import handlers.voicedcommandhandlers.Banking;
|
||||
import handlers.voicedcommandhandlers.ChangePassword;
|
||||
import handlers.voicedcommandhandlers.ChatAdmin;
|
||||
import handlers.voicedcommandhandlers.Lang;
|
||||
import handlers.voicedcommandhandlers.Offline;
|
||||
import handlers.voicedcommandhandlers.Premium;
|
||||
|
||||
/**
|
||||
@ -592,6 +593,7 @@ public class MasterHandler
|
||||
Config.CHAT_ADMIN ? ChatAdmin.class : null,
|
||||
Config.MULTILANG_ENABLE && Config.MULTILANG_VOICED_ALLOW ? Lang.class : null,
|
||||
Config.ALLOW_CHANGE_PASSWORD ? ChangePassword.class : null,
|
||||
Config.ENABLE_OFFLINE_COMMAND && (Config.OFFLINE_TRADE_ENABLE || Config.OFFLINE_CRAFT_ENABLE) ? Offline.class : null,
|
||||
Config.PREMIUM_SYSTEM_ENABLED ? Premium.class : null,
|
||||
Config.AUTO_POTIONS_ENABLED ? AutoPotion.class : null,
|
||||
},
|
||||
|
65
L2J_Mobius_04.0_GrandCrusade/dist/game/data/scripts/handlers/voicedcommandhandlers/Offline.java
vendored
Normal file
65
L2J_Mobius_04.0_GrandCrusade/dist/game/data/scripts/handlers/voicedcommandhandlers/Offline.java
vendored
Normal file
@ -0,0 +1,65 @@
|
||||
/*
|
||||
* This file is part of the L2J Mobius project.
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package handlers.voicedcommandhandlers;
|
||||
|
||||
import org.l2jmobius.Config;
|
||||
import org.l2jmobius.gameserver.handler.IVoicedCommandHandler;
|
||||
import org.l2jmobius.gameserver.model.actor.Player;
|
||||
import org.l2jmobius.gameserver.network.SystemMessageId;
|
||||
import org.l2jmobius.gameserver.network.serverpackets.ActionFailed;
|
||||
import org.l2jmobius.gameserver.network.serverpackets.ConfirmDlg;
|
||||
|
||||
/**
|
||||
* @author Mobius
|
||||
*/
|
||||
public class Offline implements IVoicedCommandHandler
|
||||
{
|
||||
private static final String[] VOICED_COMMANDS =
|
||||
{
|
||||
"offline"
|
||||
};
|
||||
|
||||
@Override
|
||||
public boolean useVoicedCommand(String command, Player player, String target)
|
||||
{
|
||||
if (command.equals("offline") && Config.ENABLE_OFFLINE_COMMAND && (Config.OFFLINE_TRADE_ENABLE || Config.OFFLINE_CRAFT_ENABLE))
|
||||
{
|
||||
if (!player.isInStoreMode())
|
||||
{
|
||||
player.sendPacket(SystemMessageId.PRIVATE_STORE_ALREADY_CLOSED);
|
||||
player.sendPacket(ActionFailed.STATIC_PACKET);
|
||||
return false;
|
||||
}
|
||||
|
||||
if (player.isInInstance() || player.isInVehicle() || !player.canLogout())
|
||||
{
|
||||
player.sendPacket(ActionFailed.STATIC_PACKET);
|
||||
return false;
|
||||
}
|
||||
|
||||
player.sendPacket(new ConfirmDlg(SystemMessageId.DO_YOU_WISH_TO_EXIT_THE_GAME));
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String[] getVoicedCommandList()
|
||||
{
|
||||
return VOICED_COMMANDS;
|
||||
}
|
||||
}
|
@ -1113,6 +1113,7 @@ public class Config
|
||||
public static int OFFLINE_NAME_COLOR;
|
||||
public static boolean OFFLINE_FAME;
|
||||
public static boolean STORE_OFFLINE_TRADE_IN_REALTIME;
|
||||
public static boolean ENABLE_OFFLINE_COMMAND;
|
||||
public static boolean DISPLAY_SERVER_TIME;
|
||||
public static boolean WELCOME_MESSAGE_ENABLED;
|
||||
public static String WELCOME_MESSAGE_TEXT;
|
||||
@ -3311,6 +3312,7 @@ public class Config
|
||||
OFFLINE_DISCONNECT_FINISHED = offlineTradeConfig.getBoolean("OfflineDisconnectFinished", true);
|
||||
OFFLINE_DISCONNECT_SAME_ACCOUNT = offlineTradeConfig.getBoolean("OfflineDisconnectSameAccount", false);
|
||||
STORE_OFFLINE_TRADE_IN_REALTIME = offlineTradeConfig.getBoolean("StoreOfflineTradeInRealtime", true);
|
||||
ENABLE_OFFLINE_COMMAND = offlineTradeConfig.getBoolean("EnableOfflineCommand", true);
|
||||
|
||||
// Load PasswordChange config file (if exists)
|
||||
final PropertiesParser passwordChangeConfig = new PropertiesParser(CUSTOM_PASSWORD_CHANGE_CONFIG_FILE);
|
||||
|
@ -16,6 +16,7 @@
|
||||
*/
|
||||
package org.l2jmobius.gameserver.network.clientpackets;
|
||||
|
||||
import org.l2jmobius.Config;
|
||||
import org.l2jmobius.commons.network.PacketReader;
|
||||
import org.l2jmobius.gameserver.enums.PlayerAction;
|
||||
import org.l2jmobius.gameserver.handler.AdminCommandHandler;
|
||||
@ -26,8 +27,13 @@ import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerDlgAns
|
||||
import org.l2jmobius.gameserver.model.events.returns.TerminateReturn;
|
||||
import org.l2jmobius.gameserver.model.holders.DoorRequestHolder;
|
||||
import org.l2jmobius.gameserver.model.holders.SummonRequestHolder;
|
||||
import org.l2jmobius.gameserver.model.olympiad.OlympiadManager;
|
||||
import org.l2jmobius.gameserver.network.Disconnection;
|
||||
import org.l2jmobius.gameserver.network.GameClient;
|
||||
import org.l2jmobius.gameserver.network.SystemMessageId;
|
||||
import org.l2jmobius.gameserver.network.serverpackets.ActionFailed;
|
||||
import org.l2jmobius.gameserver.network.serverpackets.LeaveWorld;
|
||||
import org.l2jmobius.gameserver.util.OfflineTradeUtil;
|
||||
|
||||
/**
|
||||
* @author Dezmond_snz
|
||||
@ -80,6 +86,37 @@ public class DlgAnswer implements IClientIncomingPacket
|
||||
AdminCommandHandler.getInstance().useAdminCommand(player, cmd, false);
|
||||
}
|
||||
}
|
||||
else if (_messageId == SystemMessageId.DO_YOU_WISH_TO_EXIT_THE_GAME.getId())
|
||||
{
|
||||
if ((_answer == 0) || !Config.ENABLE_OFFLINE_COMMAND || (!Config.OFFLINE_TRADE_ENABLE && !Config.OFFLINE_CRAFT_ENABLE))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (!player.isInStoreMode())
|
||||
{
|
||||
player.sendPacket(SystemMessageId.PRIVATE_STORE_ALREADY_CLOSED);
|
||||
player.sendPacket(ActionFailed.STATIC_PACKET);
|
||||
return;
|
||||
}
|
||||
|
||||
if (player.isInInstance() || player.isInVehicle() || !player.canLogout())
|
||||
{
|
||||
player.sendPacket(ActionFailed.STATIC_PACKET);
|
||||
return;
|
||||
}
|
||||
|
||||
// Unregister from olympiad.
|
||||
if (OlympiadManager.getInstance().isRegistered(player))
|
||||
{
|
||||
OlympiadManager.getInstance().unRegisterNoble(player);
|
||||
}
|
||||
|
||||
if (!OfflineTradeUtil.enteredOfflineMode(player))
|
||||
{
|
||||
Disconnection.of(client, player).defaultSequence(LeaveWorld.STATIC_PACKET);
|
||||
}
|
||||
}
|
||||
else if ((_messageId == SystemMessageId.C1_IS_ATTEMPTING_TO_DO_A_RESURRECTION_THAT_RESTORES_S2_S3_XP_ACCEPT.getId()) || (_messageId == SystemMessageId.YOUR_CHARM_OF_COURAGE_IS_TRYING_TO_RESURRECT_YOU_WOULD_YOU_LIKE_TO_RESURRECT_NOW.getId()))
|
||||
{
|
||||
player.reviveAnswer(_answer);
|
||||
|
@ -41,3 +41,6 @@ OfflineDisconnectSameAccount = False
|
||||
# Uses more datatabase resources, but helps if server shuts down unexpectedly.
|
||||
StoreOfflineTradeInRealtime = True
|
||||
|
||||
# Enable .offline command for logging out.
|
||||
EnableOfflineCommand = True
|
||||
|
||||
|
@ -336,6 +336,7 @@ import handlers.voicedcommandhandlers.Banking;
|
||||
import handlers.voicedcommandhandlers.ChangePassword;
|
||||
import handlers.voicedcommandhandlers.ChatAdmin;
|
||||
import handlers.voicedcommandhandlers.Lang;
|
||||
import handlers.voicedcommandhandlers.Offline;
|
||||
import handlers.voicedcommandhandlers.Premium;
|
||||
|
||||
/**
|
||||
@ -592,6 +593,7 @@ public class MasterHandler
|
||||
Config.CHAT_ADMIN ? ChatAdmin.class : null,
|
||||
Config.MULTILANG_ENABLE && Config.MULTILANG_VOICED_ALLOW ? Lang.class : null,
|
||||
Config.ALLOW_CHANGE_PASSWORD ? ChangePassword.class : null,
|
||||
Config.ENABLE_OFFLINE_COMMAND && (Config.OFFLINE_TRADE_ENABLE || Config.OFFLINE_CRAFT_ENABLE) ? Offline.class : null,
|
||||
Config.PREMIUM_SYSTEM_ENABLED ? Premium.class : null,
|
||||
Config.AUTO_POTIONS_ENABLED ? AutoPotion.class : null,
|
||||
},
|
||||
|
65
L2J_Mobius_05.0_Salvation/dist/game/data/scripts/handlers/voicedcommandhandlers/Offline.java
vendored
Normal file
65
L2J_Mobius_05.0_Salvation/dist/game/data/scripts/handlers/voicedcommandhandlers/Offline.java
vendored
Normal file
@ -0,0 +1,65 @@
|
||||
/*
|
||||
* This file is part of the L2J Mobius project.
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package handlers.voicedcommandhandlers;
|
||||
|
||||
import org.l2jmobius.Config;
|
||||
import org.l2jmobius.gameserver.handler.IVoicedCommandHandler;
|
||||
import org.l2jmobius.gameserver.model.actor.Player;
|
||||
import org.l2jmobius.gameserver.network.SystemMessageId;
|
||||
import org.l2jmobius.gameserver.network.serverpackets.ActionFailed;
|
||||
import org.l2jmobius.gameserver.network.serverpackets.ConfirmDlg;
|
||||
|
||||
/**
|
||||
* @author Mobius
|
||||
*/
|
||||
public class Offline implements IVoicedCommandHandler
|
||||
{
|
||||
private static final String[] VOICED_COMMANDS =
|
||||
{
|
||||
"offline"
|
||||
};
|
||||
|
||||
@Override
|
||||
public boolean useVoicedCommand(String command, Player player, String target)
|
||||
{
|
||||
if (command.equals("offline") && Config.ENABLE_OFFLINE_COMMAND && (Config.OFFLINE_TRADE_ENABLE || Config.OFFLINE_CRAFT_ENABLE))
|
||||
{
|
||||
if (!player.isInStoreMode())
|
||||
{
|
||||
player.sendPacket(SystemMessageId.PRIVATE_STORE_ALREADY_CLOSED);
|
||||
player.sendPacket(ActionFailed.STATIC_PACKET);
|
||||
return false;
|
||||
}
|
||||
|
||||
if (player.isInInstance() || player.isInVehicle() || !player.canLogout())
|
||||
{
|
||||
player.sendPacket(ActionFailed.STATIC_PACKET);
|
||||
return false;
|
||||
}
|
||||
|
||||
player.sendPacket(new ConfirmDlg(SystemMessageId.DO_YOU_WISH_TO_EXIT_THE_GAME));
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String[] getVoicedCommandList()
|
||||
{
|
||||
return VOICED_COMMANDS;
|
||||
}
|
||||
}
|
@ -1112,6 +1112,7 @@ public class Config
|
||||
public static int OFFLINE_NAME_COLOR;
|
||||
public static boolean OFFLINE_FAME;
|
||||
public static boolean STORE_OFFLINE_TRADE_IN_REALTIME;
|
||||
public static boolean ENABLE_OFFLINE_COMMAND;
|
||||
public static boolean DISPLAY_SERVER_TIME;
|
||||
public static boolean WELCOME_MESSAGE_ENABLED;
|
||||
public static String WELCOME_MESSAGE_TEXT;
|
||||
@ -3320,6 +3321,7 @@ public class Config
|
||||
OFFLINE_DISCONNECT_FINISHED = offlineTradeConfig.getBoolean("OfflineDisconnectFinished", true);
|
||||
OFFLINE_DISCONNECT_SAME_ACCOUNT = offlineTradeConfig.getBoolean("OfflineDisconnectSameAccount", false);
|
||||
STORE_OFFLINE_TRADE_IN_REALTIME = offlineTradeConfig.getBoolean("StoreOfflineTradeInRealtime", true);
|
||||
ENABLE_OFFLINE_COMMAND = offlineTradeConfig.getBoolean("EnableOfflineCommand", true);
|
||||
|
||||
// Load PasswordChange config file (if exists)
|
||||
final PropertiesParser passwordChangeConfig = new PropertiesParser(CUSTOM_PASSWORD_CHANGE_CONFIG_FILE);
|
||||
|
@ -16,6 +16,7 @@
|
||||
*/
|
||||
package org.l2jmobius.gameserver.network.clientpackets;
|
||||
|
||||
import org.l2jmobius.Config;
|
||||
import org.l2jmobius.commons.network.PacketReader;
|
||||
import org.l2jmobius.gameserver.enums.PlayerAction;
|
||||
import org.l2jmobius.gameserver.handler.AdminCommandHandler;
|
||||
@ -26,8 +27,13 @@ import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerDlgAns
|
||||
import org.l2jmobius.gameserver.model.events.returns.TerminateReturn;
|
||||
import org.l2jmobius.gameserver.model.holders.DoorRequestHolder;
|
||||
import org.l2jmobius.gameserver.model.holders.SummonRequestHolder;
|
||||
import org.l2jmobius.gameserver.model.olympiad.OlympiadManager;
|
||||
import org.l2jmobius.gameserver.network.Disconnection;
|
||||
import org.l2jmobius.gameserver.network.GameClient;
|
||||
import org.l2jmobius.gameserver.network.SystemMessageId;
|
||||
import org.l2jmobius.gameserver.network.serverpackets.ActionFailed;
|
||||
import org.l2jmobius.gameserver.network.serverpackets.LeaveWorld;
|
||||
import org.l2jmobius.gameserver.util.OfflineTradeUtil;
|
||||
|
||||
/**
|
||||
* @author Dezmond_snz
|
||||
@ -80,6 +86,37 @@ public class DlgAnswer implements IClientIncomingPacket
|
||||
AdminCommandHandler.getInstance().useAdminCommand(player, cmd, false);
|
||||
}
|
||||
}
|
||||
else if (_messageId == SystemMessageId.DO_YOU_WISH_TO_EXIT_THE_GAME.getId())
|
||||
{
|
||||
if ((_answer == 0) || !Config.ENABLE_OFFLINE_COMMAND || (!Config.OFFLINE_TRADE_ENABLE && !Config.OFFLINE_CRAFT_ENABLE))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (!player.isInStoreMode())
|
||||
{
|
||||
player.sendPacket(SystemMessageId.PRIVATE_STORE_ALREADY_CLOSED);
|
||||
player.sendPacket(ActionFailed.STATIC_PACKET);
|
||||
return;
|
||||
}
|
||||
|
||||
if (player.isInInstance() || player.isInVehicle() || !player.canLogout())
|
||||
{
|
||||
player.sendPacket(ActionFailed.STATIC_PACKET);
|
||||
return;
|
||||
}
|
||||
|
||||
// Unregister from olympiad.
|
||||
if (OlympiadManager.getInstance().isRegistered(player))
|
||||
{
|
||||
OlympiadManager.getInstance().unRegisterNoble(player);
|
||||
}
|
||||
|
||||
if (!OfflineTradeUtil.enteredOfflineMode(player))
|
||||
{
|
||||
Disconnection.of(client, player).defaultSequence(LeaveWorld.STATIC_PACKET);
|
||||
}
|
||||
}
|
||||
else if ((_messageId == SystemMessageId.C1_IS_ATTEMPTING_TO_RESURRECT_YOU_AND_RESTORE_YOUR_XP_S2_S3_ACCEPT.getId()) || (_messageId == SystemMessageId.YOUR_CHARM_OF_COURAGE_IS_TRYING_TO_RESURRECT_YOU_WOULD_YOU_LIKE_TO_RESURRECT_NOW.getId()))
|
||||
{
|
||||
player.reviveAnswer(_answer);
|
||||
|
@ -41,3 +41,6 @@ OfflineDisconnectSameAccount = False
|
||||
# Uses more datatabase resources, but helps if server shuts down unexpectedly.
|
||||
StoreOfflineTradeInRealtime = True
|
||||
|
||||
# Enable .offline command for logging out.
|
||||
EnableOfflineCommand = True
|
||||
|
||||
|
@ -336,6 +336,7 @@ import handlers.voicedcommandhandlers.Banking;
|
||||
import handlers.voicedcommandhandlers.ChangePassword;
|
||||
import handlers.voicedcommandhandlers.ChatAdmin;
|
||||
import handlers.voicedcommandhandlers.Lang;
|
||||
import handlers.voicedcommandhandlers.Offline;
|
||||
import handlers.voicedcommandhandlers.Premium;
|
||||
|
||||
/**
|
||||
@ -592,6 +593,7 @@ public class MasterHandler
|
||||
Config.CHAT_ADMIN ? ChatAdmin.class : null,
|
||||
Config.MULTILANG_ENABLE && Config.MULTILANG_VOICED_ALLOW ? Lang.class : null,
|
||||
Config.ALLOW_CHANGE_PASSWORD ? ChangePassword.class : null,
|
||||
Config.ENABLE_OFFLINE_COMMAND && (Config.OFFLINE_TRADE_ENABLE || Config.OFFLINE_CRAFT_ENABLE) ? Offline.class : null,
|
||||
Config.PREMIUM_SYSTEM_ENABLED ? Premium.class : null,
|
||||
Config.AUTO_POTIONS_ENABLED ? AutoPotion.class : null,
|
||||
},
|
||||
|
65
L2J_Mobius_05.5_EtinasFate/dist/game/data/scripts/handlers/voicedcommandhandlers/Offline.java
vendored
Normal file
65
L2J_Mobius_05.5_EtinasFate/dist/game/data/scripts/handlers/voicedcommandhandlers/Offline.java
vendored
Normal file
@ -0,0 +1,65 @@
|
||||
/*
|
||||
* This file is part of the L2J Mobius project.
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package handlers.voicedcommandhandlers;
|
||||
|
||||
import org.l2jmobius.Config;
|
||||
import org.l2jmobius.gameserver.handler.IVoicedCommandHandler;
|
||||
import org.l2jmobius.gameserver.model.actor.Player;
|
||||
import org.l2jmobius.gameserver.network.SystemMessageId;
|
||||
import org.l2jmobius.gameserver.network.serverpackets.ActionFailed;
|
||||
import org.l2jmobius.gameserver.network.serverpackets.ConfirmDlg;
|
||||
|
||||
/**
|
||||
* @author Mobius
|
||||
*/
|
||||
public class Offline implements IVoicedCommandHandler
|
||||
{
|
||||
private static final String[] VOICED_COMMANDS =
|
||||
{
|
||||
"offline"
|
||||
};
|
||||
|
||||
@Override
|
||||
public boolean useVoicedCommand(String command, Player player, String target)
|
||||
{
|
||||
if (command.equals("offline") && Config.ENABLE_OFFLINE_COMMAND && (Config.OFFLINE_TRADE_ENABLE || Config.OFFLINE_CRAFT_ENABLE))
|
||||
{
|
||||
if (!player.isInStoreMode())
|
||||
{
|
||||
player.sendPacket(SystemMessageId.PRIVATE_STORE_ALREADY_CLOSED);
|
||||
player.sendPacket(ActionFailed.STATIC_PACKET);
|
||||
return false;
|
||||
}
|
||||
|
||||
if (player.isInInstance() || player.isInVehicle() || !player.canLogout())
|
||||
{
|
||||
player.sendPacket(ActionFailed.STATIC_PACKET);
|
||||
return false;
|
||||
}
|
||||
|
||||
player.sendPacket(new ConfirmDlg(SystemMessageId.DO_YOU_WISH_TO_EXIT_THE_GAME));
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String[] getVoicedCommandList()
|
||||
{
|
||||
return VOICED_COMMANDS;
|
||||
}
|
||||
}
|
@ -1119,6 +1119,7 @@ public class Config
|
||||
public static int OFFLINE_NAME_COLOR;
|
||||
public static boolean OFFLINE_FAME;
|
||||
public static boolean STORE_OFFLINE_TRADE_IN_REALTIME;
|
||||
public static boolean ENABLE_OFFLINE_COMMAND;
|
||||
public static boolean DISPLAY_SERVER_TIME;
|
||||
public static boolean WELCOME_MESSAGE_ENABLED;
|
||||
public static String WELCOME_MESSAGE_TEXT;
|
||||
@ -3332,6 +3333,7 @@ public class Config
|
||||
OFFLINE_DISCONNECT_FINISHED = offlineTradeConfig.getBoolean("OfflineDisconnectFinished", true);
|
||||
OFFLINE_DISCONNECT_SAME_ACCOUNT = offlineTradeConfig.getBoolean("OfflineDisconnectSameAccount", false);
|
||||
STORE_OFFLINE_TRADE_IN_REALTIME = offlineTradeConfig.getBoolean("StoreOfflineTradeInRealtime", true);
|
||||
ENABLE_OFFLINE_COMMAND = offlineTradeConfig.getBoolean("EnableOfflineCommand", true);
|
||||
|
||||
// Load PasswordChange config file (if exists)
|
||||
final PropertiesParser passwordChangeConfig = new PropertiesParser(CUSTOM_PASSWORD_CHANGE_CONFIG_FILE);
|
||||
|
@ -16,6 +16,7 @@
|
||||
*/
|
||||
package org.l2jmobius.gameserver.network.clientpackets;
|
||||
|
||||
import org.l2jmobius.Config;
|
||||
import org.l2jmobius.commons.network.PacketReader;
|
||||
import org.l2jmobius.gameserver.enums.PlayerAction;
|
||||
import org.l2jmobius.gameserver.handler.AdminCommandHandler;
|
||||
@ -26,8 +27,13 @@ import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerDlgAns
|
||||
import org.l2jmobius.gameserver.model.events.returns.TerminateReturn;
|
||||
import org.l2jmobius.gameserver.model.holders.DoorRequestHolder;
|
||||
import org.l2jmobius.gameserver.model.holders.SummonRequestHolder;
|
||||
import org.l2jmobius.gameserver.model.olympiad.OlympiadManager;
|
||||
import org.l2jmobius.gameserver.network.Disconnection;
|
||||
import org.l2jmobius.gameserver.network.GameClient;
|
||||
import org.l2jmobius.gameserver.network.SystemMessageId;
|
||||
import org.l2jmobius.gameserver.network.serverpackets.ActionFailed;
|
||||
import org.l2jmobius.gameserver.network.serverpackets.LeaveWorld;
|
||||
import org.l2jmobius.gameserver.util.OfflineTradeUtil;
|
||||
|
||||
/**
|
||||
* @author Dezmond_snz
|
||||
@ -80,6 +86,37 @@ public class DlgAnswer implements IClientIncomingPacket
|
||||
AdminCommandHandler.getInstance().useAdminCommand(player, cmd, false);
|
||||
}
|
||||
}
|
||||
else if (_messageId == SystemMessageId.DO_YOU_WISH_TO_EXIT_THE_GAME.getId())
|
||||
{
|
||||
if ((_answer == 0) || !Config.ENABLE_OFFLINE_COMMAND || (!Config.OFFLINE_TRADE_ENABLE && !Config.OFFLINE_CRAFT_ENABLE))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (!player.isInStoreMode())
|
||||
{
|
||||
player.sendPacket(SystemMessageId.PRIVATE_STORE_ALREADY_CLOSED);
|
||||
player.sendPacket(ActionFailed.STATIC_PACKET);
|
||||
return;
|
||||
}
|
||||
|
||||
if (player.isInInstance() || player.isInVehicle() || !player.canLogout())
|
||||
{
|
||||
player.sendPacket(ActionFailed.STATIC_PACKET);
|
||||
return;
|
||||
}
|
||||
|
||||
// Unregister from olympiad.
|
||||
if (OlympiadManager.getInstance().isRegistered(player))
|
||||
{
|
||||
OlympiadManager.getInstance().unRegisterNoble(player);
|
||||
}
|
||||
|
||||
if (!OfflineTradeUtil.enteredOfflineMode(player))
|
||||
{
|
||||
Disconnection.of(client, player).defaultSequence(LeaveWorld.STATIC_PACKET);
|
||||
}
|
||||
}
|
||||
else if ((_messageId == SystemMessageId.C1_IS_ATTEMPTING_TO_RESURRECT_YOU_AND_RESTORE_XP_S2_S3_ACCEPT.getId()) || (_messageId == SystemMessageId.YOUR_CHARM_OF_COURAGE_IS_TRYING_TO_RESURRECT_YOU_WOULD_YOU_LIKE_TO_RESURRECT_NOW.getId()))
|
||||
{
|
||||
player.reviveAnswer(_answer);
|
||||
|
@ -41,3 +41,6 @@ OfflineDisconnectSameAccount = False
|
||||
# Uses more datatabase resources, but helps if server shuts down unexpectedly.
|
||||
StoreOfflineTradeInRealtime = True
|
||||
|
||||
# Enable .offline command for logging out.
|
||||
EnableOfflineCommand = True
|
||||
|
||||
|
@ -337,6 +337,7 @@ import handlers.voicedcommandhandlers.Banking;
|
||||
import handlers.voicedcommandhandlers.ChangePassword;
|
||||
import handlers.voicedcommandhandlers.ChatAdmin;
|
||||
import handlers.voicedcommandhandlers.Lang;
|
||||
import handlers.voicedcommandhandlers.Offline;
|
||||
import handlers.voicedcommandhandlers.Premium;
|
||||
|
||||
/**
|
||||
@ -594,6 +595,7 @@ public class MasterHandler
|
||||
Config.CHAT_ADMIN ? ChatAdmin.class : null,
|
||||
Config.MULTILANG_ENABLE && Config.MULTILANG_VOICED_ALLOW ? Lang.class : null,
|
||||
Config.ALLOW_CHANGE_PASSWORD ? ChangePassword.class : null,
|
||||
Config.ENABLE_OFFLINE_COMMAND && (Config.OFFLINE_TRADE_ENABLE || Config.OFFLINE_CRAFT_ENABLE) ? Offline.class : null,
|
||||
Config.PREMIUM_SYSTEM_ENABLED ? Premium.class : null,
|
||||
Config.AUTO_POTIONS_ENABLED ? AutoPotion.class : null,
|
||||
},
|
||||
|
65
L2J_Mobius_06.0_Fafurion/dist/game/data/scripts/handlers/voicedcommandhandlers/Offline.java
vendored
Normal file
65
L2J_Mobius_06.0_Fafurion/dist/game/data/scripts/handlers/voicedcommandhandlers/Offline.java
vendored
Normal file
@ -0,0 +1,65 @@
|
||||
/*
|
||||
* This file is part of the L2J Mobius project.
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package handlers.voicedcommandhandlers;
|
||||
|
||||
import org.l2jmobius.Config;
|
||||
import org.l2jmobius.gameserver.handler.IVoicedCommandHandler;
|
||||
import org.l2jmobius.gameserver.model.actor.Player;
|
||||
import org.l2jmobius.gameserver.network.SystemMessageId;
|
||||
import org.l2jmobius.gameserver.network.serverpackets.ActionFailed;
|
||||
import org.l2jmobius.gameserver.network.serverpackets.ConfirmDlg;
|
||||
|
||||
/**
|
||||
* @author Mobius
|
||||
*/
|
||||
public class Offline implements IVoicedCommandHandler
|
||||
{
|
||||
private static final String[] VOICED_COMMANDS =
|
||||
{
|
||||
"offline"
|
||||
};
|
||||
|
||||
@Override
|
||||
public boolean useVoicedCommand(String command, Player player, String target)
|
||||
{
|
||||
if (command.equals("offline") && Config.ENABLE_OFFLINE_COMMAND && (Config.OFFLINE_TRADE_ENABLE || Config.OFFLINE_CRAFT_ENABLE))
|
||||
{
|
||||
if (!player.isInStoreMode())
|
||||
{
|
||||
player.sendPacket(SystemMessageId.PRIVATE_STORE_ALREADY_CLOSED);
|
||||
player.sendPacket(ActionFailed.STATIC_PACKET);
|
||||
return false;
|
||||
}
|
||||
|
||||
if (player.isInInstance() || player.isInVehicle() || !player.canLogout())
|
||||
{
|
||||
player.sendPacket(ActionFailed.STATIC_PACKET);
|
||||
return false;
|
||||
}
|
||||
|
||||
player.sendPacket(new ConfirmDlg(SystemMessageId.DO_YOU_WISH_TO_EXIT_THE_GAME));
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String[] getVoicedCommandList()
|
||||
{
|
||||
return VOICED_COMMANDS;
|
||||
}
|
||||
}
|
@ -1141,6 +1141,7 @@ public class Config
|
||||
public static int OFFLINE_NAME_COLOR;
|
||||
public static boolean OFFLINE_FAME;
|
||||
public static boolean STORE_OFFLINE_TRADE_IN_REALTIME;
|
||||
public static boolean ENABLE_OFFLINE_COMMAND;
|
||||
public static boolean DISPLAY_SERVER_TIME;
|
||||
public static boolean WELCOME_MESSAGE_ENABLED;
|
||||
public static String WELCOME_MESSAGE_TEXT;
|
||||
@ -3375,6 +3376,7 @@ public class Config
|
||||
OFFLINE_DISCONNECT_FINISHED = offlineTradeConfig.getBoolean("OfflineDisconnectFinished", true);
|
||||
OFFLINE_DISCONNECT_SAME_ACCOUNT = offlineTradeConfig.getBoolean("OfflineDisconnectSameAccount", false);
|
||||
STORE_OFFLINE_TRADE_IN_REALTIME = offlineTradeConfig.getBoolean("StoreOfflineTradeInRealtime", true);
|
||||
ENABLE_OFFLINE_COMMAND = offlineTradeConfig.getBoolean("EnableOfflineCommand", true);
|
||||
|
||||
// Load PasswordChange config file (if exists)
|
||||
final PropertiesParser passwordChangeConfig = new PropertiesParser(CUSTOM_PASSWORD_CHANGE_CONFIG_FILE);
|
||||
|
@ -16,6 +16,7 @@
|
||||
*/
|
||||
package org.l2jmobius.gameserver.network.clientpackets;
|
||||
|
||||
import org.l2jmobius.Config;
|
||||
import org.l2jmobius.commons.network.PacketReader;
|
||||
import org.l2jmobius.gameserver.enums.PlayerAction;
|
||||
import org.l2jmobius.gameserver.handler.AdminCommandHandler;
|
||||
@ -26,8 +27,13 @@ import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerDlgAns
|
||||
import org.l2jmobius.gameserver.model.events.returns.TerminateReturn;
|
||||
import org.l2jmobius.gameserver.model.holders.DoorRequestHolder;
|
||||
import org.l2jmobius.gameserver.model.holders.SummonRequestHolder;
|
||||
import org.l2jmobius.gameserver.model.olympiad.OlympiadManager;
|
||||
import org.l2jmobius.gameserver.network.Disconnection;
|
||||
import org.l2jmobius.gameserver.network.GameClient;
|
||||
import org.l2jmobius.gameserver.network.SystemMessageId;
|
||||
import org.l2jmobius.gameserver.network.serverpackets.ActionFailed;
|
||||
import org.l2jmobius.gameserver.network.serverpackets.LeaveWorld;
|
||||
import org.l2jmobius.gameserver.util.OfflineTradeUtil;
|
||||
|
||||
/**
|
||||
* @author Dezmond_snz
|
||||
@ -80,6 +86,37 @@ public class DlgAnswer implements IClientIncomingPacket
|
||||
AdminCommandHandler.getInstance().useAdminCommand(player, cmd, false);
|
||||
}
|
||||
}
|
||||
else if (_messageId == SystemMessageId.DO_YOU_WISH_TO_EXIT_THE_GAME.getId())
|
||||
{
|
||||
if ((_answer == 0) || !Config.ENABLE_OFFLINE_COMMAND || (!Config.OFFLINE_TRADE_ENABLE && !Config.OFFLINE_CRAFT_ENABLE))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (!player.isInStoreMode())
|
||||
{
|
||||
player.sendPacket(SystemMessageId.PRIVATE_STORE_ALREADY_CLOSED);
|
||||
player.sendPacket(ActionFailed.STATIC_PACKET);
|
||||
return;
|
||||
}
|
||||
|
||||
if (player.isInInstance() || player.isInVehicle() || !player.canLogout())
|
||||
{
|
||||
player.sendPacket(ActionFailed.STATIC_PACKET);
|
||||
return;
|
||||
}
|
||||
|
||||
// Unregister from olympiad.
|
||||
if (OlympiadManager.getInstance().isRegistered(player))
|
||||
{
|
||||
OlympiadManager.getInstance().unRegisterNoble(player);
|
||||
}
|
||||
|
||||
if (!OfflineTradeUtil.enteredOfflineMode(player))
|
||||
{
|
||||
Disconnection.of(client, player).defaultSequence(LeaveWorld.STATIC_PACKET);
|
||||
}
|
||||
}
|
||||
else if ((_messageId == SystemMessageId.C1_IS_ATTEMPTING_TO_RESURRECT_YOU_AND_RESTORE_XP_S2_S3_ACCEPT.getId()) || (_messageId == SystemMessageId.YOUR_CHARM_OF_COURAGE_IS_TRYING_TO_RESURRECT_YOU_WOULD_YOU_LIKE_TO_RESURRECT_NOW.getId()))
|
||||
{
|
||||
player.reviveAnswer(_answer);
|
||||
|
@ -41,3 +41,6 @@ OfflineDisconnectSameAccount = False
|
||||
# Uses more datatabase resources, but helps if server shuts down unexpectedly.
|
||||
StoreOfflineTradeInRealtime = True
|
||||
|
||||
# Enable .offline command for logging out.
|
||||
EnableOfflineCommand = True
|
||||
|
||||
|
@ -337,6 +337,7 @@ import handlers.voicedcommandhandlers.Banking;
|
||||
import handlers.voicedcommandhandlers.ChangePassword;
|
||||
import handlers.voicedcommandhandlers.ChatAdmin;
|
||||
import handlers.voicedcommandhandlers.Lang;
|
||||
import handlers.voicedcommandhandlers.Offline;
|
||||
import handlers.voicedcommandhandlers.Premium;
|
||||
|
||||
/**
|
||||
@ -594,6 +595,7 @@ public class MasterHandler
|
||||
Config.CHAT_ADMIN ? ChatAdmin.class : null,
|
||||
Config.MULTILANG_ENABLE && Config.MULTILANG_VOICED_ALLOW ? Lang.class : null,
|
||||
Config.ALLOW_CHANGE_PASSWORD ? ChangePassword.class : null,
|
||||
Config.ENABLE_OFFLINE_COMMAND && (Config.OFFLINE_TRADE_ENABLE || Config.OFFLINE_CRAFT_ENABLE) ? Offline.class : null,
|
||||
Config.PREMIUM_SYSTEM_ENABLED ? Premium.class : null,
|
||||
Config.AUTO_POTIONS_ENABLED ? AutoPotion.class : null,
|
||||
},
|
||||
|
65
L2J_Mobius_07.0_PreludeOfWar/dist/game/data/scripts/handlers/voicedcommandhandlers/Offline.java
vendored
Normal file
65
L2J_Mobius_07.0_PreludeOfWar/dist/game/data/scripts/handlers/voicedcommandhandlers/Offline.java
vendored
Normal file
@ -0,0 +1,65 @@
|
||||
/*
|
||||
* This file is part of the L2J Mobius project.
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package handlers.voicedcommandhandlers;
|
||||
|
||||
import org.l2jmobius.Config;
|
||||
import org.l2jmobius.gameserver.handler.IVoicedCommandHandler;
|
||||
import org.l2jmobius.gameserver.model.actor.Player;
|
||||
import org.l2jmobius.gameserver.network.SystemMessageId;
|
||||
import org.l2jmobius.gameserver.network.serverpackets.ActionFailed;
|
||||
import org.l2jmobius.gameserver.network.serverpackets.ConfirmDlg;
|
||||
|
||||
/**
|
||||
* @author Mobius
|
||||
*/
|
||||
public class Offline implements IVoicedCommandHandler
|
||||
{
|
||||
private static final String[] VOICED_COMMANDS =
|
||||
{
|
||||
"offline"
|
||||
};
|
||||
|
||||
@Override
|
||||
public boolean useVoicedCommand(String command, Player player, String target)
|
||||
{
|
||||
if (command.equals("offline") && Config.ENABLE_OFFLINE_COMMAND && (Config.OFFLINE_TRADE_ENABLE || Config.OFFLINE_CRAFT_ENABLE))
|
||||
{
|
||||
if (!player.isInStoreMode())
|
||||
{
|
||||
player.sendPacket(SystemMessageId.PRIVATE_STORE_ALREADY_CLOSED);
|
||||
player.sendPacket(ActionFailed.STATIC_PACKET);
|
||||
return false;
|
||||
}
|
||||
|
||||
if (player.isInInstance() || player.isInVehicle() || !player.canLogout())
|
||||
{
|
||||
player.sendPacket(ActionFailed.STATIC_PACKET);
|
||||
return false;
|
||||
}
|
||||
|
||||
player.sendPacket(new ConfirmDlg(SystemMessageId.DO_YOU_WISH_TO_EXIT_THE_GAME));
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String[] getVoicedCommandList()
|
||||
{
|
||||
return VOICED_COMMANDS;
|
||||
}
|
||||
}
|
@ -1149,6 +1149,7 @@ public class Config
|
||||
public static int OFFLINE_NAME_COLOR;
|
||||
public static boolean OFFLINE_FAME;
|
||||
public static boolean STORE_OFFLINE_TRADE_IN_REALTIME;
|
||||
public static boolean ENABLE_OFFLINE_COMMAND;
|
||||
public static boolean DISPLAY_SERVER_TIME;
|
||||
public static boolean WELCOME_MESSAGE_ENABLED;
|
||||
public static String WELCOME_MESSAGE_TEXT;
|
||||
@ -3391,6 +3392,7 @@ public class Config
|
||||
OFFLINE_DISCONNECT_FINISHED = offlineTradeConfig.getBoolean("OfflineDisconnectFinished", true);
|
||||
OFFLINE_DISCONNECT_SAME_ACCOUNT = offlineTradeConfig.getBoolean("OfflineDisconnectSameAccount", false);
|
||||
STORE_OFFLINE_TRADE_IN_REALTIME = offlineTradeConfig.getBoolean("StoreOfflineTradeInRealtime", true);
|
||||
ENABLE_OFFLINE_COMMAND = offlineTradeConfig.getBoolean("EnableOfflineCommand", true);
|
||||
|
||||
// Load PasswordChange config file (if exists)
|
||||
final PropertiesParser passwordChangeConfig = new PropertiesParser(CUSTOM_PASSWORD_CHANGE_CONFIG_FILE);
|
||||
|
@ -16,6 +16,7 @@
|
||||
*/
|
||||
package org.l2jmobius.gameserver.network.clientpackets;
|
||||
|
||||
import org.l2jmobius.Config;
|
||||
import org.l2jmobius.commons.network.PacketReader;
|
||||
import org.l2jmobius.gameserver.enums.PlayerAction;
|
||||
import org.l2jmobius.gameserver.handler.AdminCommandHandler;
|
||||
@ -26,8 +27,13 @@ import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerDlgAns
|
||||
import org.l2jmobius.gameserver.model.events.returns.TerminateReturn;
|
||||
import org.l2jmobius.gameserver.model.holders.DoorRequestHolder;
|
||||
import org.l2jmobius.gameserver.model.holders.SummonRequestHolder;
|
||||
import org.l2jmobius.gameserver.model.olympiad.OlympiadManager;
|
||||
import org.l2jmobius.gameserver.network.Disconnection;
|
||||
import org.l2jmobius.gameserver.network.GameClient;
|
||||
import org.l2jmobius.gameserver.network.SystemMessageId;
|
||||
import org.l2jmobius.gameserver.network.serverpackets.ActionFailed;
|
||||
import org.l2jmobius.gameserver.network.serverpackets.LeaveWorld;
|
||||
import org.l2jmobius.gameserver.util.OfflineTradeUtil;
|
||||
|
||||
/**
|
||||
* @author Dezmond_snz
|
||||
@ -80,6 +86,37 @@ public class DlgAnswer implements IClientIncomingPacket
|
||||
AdminCommandHandler.getInstance().useAdminCommand(player, cmd, false);
|
||||
}
|
||||
}
|
||||
else if (_messageId == SystemMessageId.DO_YOU_WISH_TO_EXIT_THE_GAME.getId())
|
||||
{
|
||||
if ((_answer == 0) || !Config.ENABLE_OFFLINE_COMMAND || (!Config.OFFLINE_TRADE_ENABLE && !Config.OFFLINE_CRAFT_ENABLE))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (!player.isInStoreMode())
|
||||
{
|
||||
player.sendPacket(SystemMessageId.PRIVATE_STORE_ALREADY_CLOSED);
|
||||
player.sendPacket(ActionFailed.STATIC_PACKET);
|
||||
return;
|
||||
}
|
||||
|
||||
if (player.isInInstance() || player.isInVehicle() || !player.canLogout())
|
||||
{
|
||||
player.sendPacket(ActionFailed.STATIC_PACKET);
|
||||
return;
|
||||
}
|
||||
|
||||
// Unregister from olympiad.
|
||||
if (OlympiadManager.getInstance().isRegistered(player))
|
||||
{
|
||||
OlympiadManager.getInstance().unRegisterNoble(player);
|
||||
}
|
||||
|
||||
if (!OfflineTradeUtil.enteredOfflineMode(player))
|
||||
{
|
||||
Disconnection.of(client, player).defaultSequence(LeaveWorld.STATIC_PACKET);
|
||||
}
|
||||
}
|
||||
else if ((_messageId == SystemMessageId.C1_IS_ATTEMPTING_TO_DO_A_RESURRECTION_THAT_RESTORES_S2_S3_XP_ACCEPT.getId()) || (_messageId == SystemMessageId.YOUR_CHARM_OF_COURAGE_IS_TRYING_TO_RESURRECT_YOU_WOULD_YOU_LIKE_TO_RESURRECT_NOW.getId()))
|
||||
{
|
||||
player.reviveAnswer(_answer);
|
||||
|
@ -41,3 +41,6 @@ OfflineDisconnectSameAccount = False
|
||||
# Uses more datatabase resources, but helps if server shuts down unexpectedly.
|
||||
StoreOfflineTradeInRealtime = True
|
||||
|
||||
# Enable .offline command for logging out.
|
||||
EnableOfflineCommand = True
|
||||
|
||||
|
@ -337,6 +337,7 @@ import handlers.voicedcommandhandlers.Banking;
|
||||
import handlers.voicedcommandhandlers.ChangePassword;
|
||||
import handlers.voicedcommandhandlers.ChatAdmin;
|
||||
import handlers.voicedcommandhandlers.Lang;
|
||||
import handlers.voicedcommandhandlers.Offline;
|
||||
import handlers.voicedcommandhandlers.Premium;
|
||||
|
||||
/**
|
||||
@ -594,6 +595,7 @@ public class MasterHandler
|
||||
Config.CHAT_ADMIN ? ChatAdmin.class : null,
|
||||
Config.MULTILANG_ENABLE && Config.MULTILANG_VOICED_ALLOW ? Lang.class : null,
|
||||
Config.ALLOW_CHANGE_PASSWORD ? ChangePassword.class : null,
|
||||
Config.ENABLE_OFFLINE_COMMAND && (Config.OFFLINE_TRADE_ENABLE || Config.OFFLINE_CRAFT_ENABLE) ? Offline.class : null,
|
||||
Config.PREMIUM_SYSTEM_ENABLED ? Premium.class : null,
|
||||
Config.AUTO_POTIONS_ENABLED ? AutoPotion.class : null,
|
||||
},
|
||||
|
65
L2J_Mobius_08.2_Homunculus/dist/game/data/scripts/handlers/voicedcommandhandlers/Offline.java
vendored
Normal file
65
L2J_Mobius_08.2_Homunculus/dist/game/data/scripts/handlers/voicedcommandhandlers/Offline.java
vendored
Normal file
@ -0,0 +1,65 @@
|
||||
/*
|
||||
* This file is part of the L2J Mobius project.
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package handlers.voicedcommandhandlers;
|
||||
|
||||
import org.l2jmobius.Config;
|
||||
import org.l2jmobius.gameserver.handler.IVoicedCommandHandler;
|
||||
import org.l2jmobius.gameserver.model.actor.Player;
|
||||
import org.l2jmobius.gameserver.network.SystemMessageId;
|
||||
import org.l2jmobius.gameserver.network.serverpackets.ActionFailed;
|
||||
import org.l2jmobius.gameserver.network.serverpackets.ConfirmDlg;
|
||||
|
||||
/**
|
||||
* @author Mobius
|
||||
*/
|
||||
public class Offline implements IVoicedCommandHandler
|
||||
{
|
||||
private static final String[] VOICED_COMMANDS =
|
||||
{
|
||||
"offline"
|
||||
};
|
||||
|
||||
@Override
|
||||
public boolean useVoicedCommand(String command, Player player, String target)
|
||||
{
|
||||
if (command.equals("offline") && Config.ENABLE_OFFLINE_COMMAND && (Config.OFFLINE_TRADE_ENABLE || Config.OFFLINE_CRAFT_ENABLE))
|
||||
{
|
||||
if (!player.isInStoreMode())
|
||||
{
|
||||
player.sendPacket(SystemMessageId.PRIVATE_STORE_ALREADY_CLOSED);
|
||||
player.sendPacket(ActionFailed.STATIC_PACKET);
|
||||
return false;
|
||||
}
|
||||
|
||||
if (player.isInInstance() || player.isInVehicle() || !player.canLogout())
|
||||
{
|
||||
player.sendPacket(ActionFailed.STATIC_PACKET);
|
||||
return false;
|
||||
}
|
||||
|
||||
player.sendPacket(new ConfirmDlg(SystemMessageId.DO_YOU_WISH_TO_EXIT_THE_GAME));
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String[] getVoicedCommandList()
|
||||
{
|
||||
return VOICED_COMMANDS;
|
||||
}
|
||||
}
|
@ -1141,6 +1141,7 @@ public class Config
|
||||
public static int OFFLINE_NAME_COLOR;
|
||||
public static boolean OFFLINE_FAME;
|
||||
public static boolean STORE_OFFLINE_TRADE_IN_REALTIME;
|
||||
public static boolean ENABLE_OFFLINE_COMMAND;
|
||||
public static boolean DISPLAY_SERVER_TIME;
|
||||
public static boolean WELCOME_MESSAGE_ENABLED;
|
||||
public static String WELCOME_MESSAGE_TEXT;
|
||||
@ -3367,6 +3368,7 @@ public class Config
|
||||
OFFLINE_DISCONNECT_FINISHED = offlineTradeConfig.getBoolean("OfflineDisconnectFinished", true);
|
||||
OFFLINE_DISCONNECT_SAME_ACCOUNT = offlineTradeConfig.getBoolean("OfflineDisconnectSameAccount", false);
|
||||
STORE_OFFLINE_TRADE_IN_REALTIME = offlineTradeConfig.getBoolean("StoreOfflineTradeInRealtime", true);
|
||||
ENABLE_OFFLINE_COMMAND = offlineTradeConfig.getBoolean("EnableOfflineCommand", true);
|
||||
|
||||
// Load PasswordChange config file (if exists)
|
||||
final PropertiesParser passwordChangeConfig = new PropertiesParser(CUSTOM_PASSWORD_CHANGE_CONFIG_FILE);
|
||||
|
@ -16,6 +16,7 @@
|
||||
*/
|
||||
package org.l2jmobius.gameserver.network.clientpackets;
|
||||
|
||||
import org.l2jmobius.Config;
|
||||
import org.l2jmobius.commons.network.PacketReader;
|
||||
import org.l2jmobius.gameserver.enums.PlayerAction;
|
||||
import org.l2jmobius.gameserver.handler.AdminCommandHandler;
|
||||
@ -26,8 +27,13 @@ import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerDlgAns
|
||||
import org.l2jmobius.gameserver.model.events.returns.TerminateReturn;
|
||||
import org.l2jmobius.gameserver.model.holders.DoorRequestHolder;
|
||||
import org.l2jmobius.gameserver.model.holders.SummonRequestHolder;
|
||||
import org.l2jmobius.gameserver.model.olympiad.OlympiadManager;
|
||||
import org.l2jmobius.gameserver.network.Disconnection;
|
||||
import org.l2jmobius.gameserver.network.GameClient;
|
||||
import org.l2jmobius.gameserver.network.SystemMessageId;
|
||||
import org.l2jmobius.gameserver.network.serverpackets.ActionFailed;
|
||||
import org.l2jmobius.gameserver.network.serverpackets.LeaveWorld;
|
||||
import org.l2jmobius.gameserver.util.OfflineTradeUtil;
|
||||
|
||||
/**
|
||||
* @author Dezmond_snz
|
||||
@ -80,6 +86,37 @@ public class DlgAnswer implements IClientIncomingPacket
|
||||
AdminCommandHandler.getInstance().useAdminCommand(player, cmd, false);
|
||||
}
|
||||
}
|
||||
else if (_messageId == SystemMessageId.DO_YOU_WISH_TO_EXIT_THE_GAME.getId())
|
||||
{
|
||||
if ((_answer == 0) || !Config.ENABLE_OFFLINE_COMMAND || (!Config.OFFLINE_TRADE_ENABLE && !Config.OFFLINE_CRAFT_ENABLE))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (!player.isInStoreMode())
|
||||
{
|
||||
player.sendPacket(SystemMessageId.PRIVATE_STORE_ALREADY_CLOSED);
|
||||
player.sendPacket(ActionFailed.STATIC_PACKET);
|
||||
return;
|
||||
}
|
||||
|
||||
if (player.isInInstance() || player.isInVehicle() || !player.canLogout())
|
||||
{
|
||||
player.sendPacket(ActionFailed.STATIC_PACKET);
|
||||
return;
|
||||
}
|
||||
|
||||
// Unregister from olympiad.
|
||||
if (OlympiadManager.getInstance().isRegistered(player))
|
||||
{
|
||||
OlympiadManager.getInstance().unRegisterNoble(player);
|
||||
}
|
||||
|
||||
if (!OfflineTradeUtil.enteredOfflineMode(player))
|
||||
{
|
||||
Disconnection.of(client, player).defaultSequence(LeaveWorld.STATIC_PACKET);
|
||||
}
|
||||
}
|
||||
else if ((_messageId == SystemMessageId.C1_IS_ATTEMPTING_TO_DO_A_RESURRECTION_THAT_RESTORES_S2_S3_XP_ACCEPT.getId()) || (_messageId == SystemMessageId.YOUR_CHARM_OF_COURAGE_IS_TRYING_TO_RESURRECT_YOU_WOULD_YOU_LIKE_TO_RESURRECT_NOW.getId()))
|
||||
{
|
||||
player.reviveAnswer(_answer);
|
||||
|
@ -41,3 +41,6 @@ OfflineDisconnectSameAccount = False
|
||||
# Uses more datatabase resources, but helps if server shuts down unexpectedly.
|
||||
StoreOfflineTradeInRealtime = True
|
||||
|
||||
# Enable .offline command for logging out.
|
||||
EnableOfflineCommand = True
|
||||
|
||||
|
@ -338,6 +338,7 @@ import handlers.voicedcommandhandlers.Banking;
|
||||
import handlers.voicedcommandhandlers.ChangePassword;
|
||||
import handlers.voicedcommandhandlers.ChatAdmin;
|
||||
import handlers.voicedcommandhandlers.Lang;
|
||||
import handlers.voicedcommandhandlers.Offline;
|
||||
import handlers.voicedcommandhandlers.Premium;
|
||||
|
||||
/**
|
||||
@ -596,6 +597,7 @@ public class MasterHandler
|
||||
Config.CHAT_ADMIN ? ChatAdmin.class : null,
|
||||
Config.MULTILANG_ENABLE && Config.MULTILANG_VOICED_ALLOW ? Lang.class : null,
|
||||
Config.ALLOW_CHANGE_PASSWORD ? ChangePassword.class : null,
|
||||
Config.ENABLE_OFFLINE_COMMAND && (Config.OFFLINE_TRADE_ENABLE || Config.OFFLINE_CRAFT_ENABLE) ? Offline.class : null,
|
||||
Config.PREMIUM_SYSTEM_ENABLED ? Premium.class : null,
|
||||
Config.AUTO_POTIONS_ENABLED ? AutoPotion.class : null,
|
||||
},
|
||||
|
@ -0,0 +1,65 @@
|
||||
/*
|
||||
* This file is part of the L2J Mobius project.
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package handlers.voicedcommandhandlers;
|
||||
|
||||
import org.l2jmobius.Config;
|
||||
import org.l2jmobius.gameserver.handler.IVoicedCommandHandler;
|
||||
import org.l2jmobius.gameserver.model.actor.Player;
|
||||
import org.l2jmobius.gameserver.network.SystemMessageId;
|
||||
import org.l2jmobius.gameserver.network.serverpackets.ActionFailed;
|
||||
import org.l2jmobius.gameserver.network.serverpackets.ConfirmDlg;
|
||||
|
||||
/**
|
||||
* @author Mobius
|
||||
*/
|
||||
public class Offline implements IVoicedCommandHandler
|
||||
{
|
||||
private static final String[] VOICED_COMMANDS =
|
||||
{
|
||||
"offline"
|
||||
};
|
||||
|
||||
@Override
|
||||
public boolean useVoicedCommand(String command, Player player, String target)
|
||||
{
|
||||
if (command.equals("offline") && Config.ENABLE_OFFLINE_COMMAND && (Config.OFFLINE_TRADE_ENABLE || Config.OFFLINE_CRAFT_ENABLE))
|
||||
{
|
||||
if (!player.isInStoreMode())
|
||||
{
|
||||
player.sendPacket(SystemMessageId.PRIVATE_STORE_ALREADY_CLOSED);
|
||||
player.sendPacket(ActionFailed.STATIC_PACKET);
|
||||
return false;
|
||||
}
|
||||
|
||||
if (player.isInInstance() || player.isInVehicle() || !player.canLogout())
|
||||
{
|
||||
player.sendPacket(ActionFailed.STATIC_PACKET);
|
||||
return false;
|
||||
}
|
||||
|
||||
player.sendPacket(new ConfirmDlg(SystemMessageId.DO_YOU_WISH_TO_EXIT_THE_GAME));
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String[] getVoicedCommandList()
|
||||
{
|
||||
return VOICED_COMMANDS;
|
||||
}
|
||||
}
|
@ -1152,6 +1152,7 @@ public class Config
|
||||
public static int OFFLINE_NAME_COLOR;
|
||||
public static boolean OFFLINE_FAME;
|
||||
public static boolean STORE_OFFLINE_TRADE_IN_REALTIME;
|
||||
public static boolean ENABLE_OFFLINE_COMMAND;
|
||||
public static boolean DISPLAY_SERVER_TIME;
|
||||
public static boolean WELCOME_MESSAGE_ENABLED;
|
||||
public static String WELCOME_MESSAGE_TEXT;
|
||||
@ -3403,6 +3404,7 @@ public class Config
|
||||
OFFLINE_DISCONNECT_FINISHED = offlineTradeConfig.getBoolean("OfflineDisconnectFinished", true);
|
||||
OFFLINE_DISCONNECT_SAME_ACCOUNT = offlineTradeConfig.getBoolean("OfflineDisconnectSameAccount", false);
|
||||
STORE_OFFLINE_TRADE_IN_REALTIME = offlineTradeConfig.getBoolean("StoreOfflineTradeInRealtime", true);
|
||||
ENABLE_OFFLINE_COMMAND = offlineTradeConfig.getBoolean("EnableOfflineCommand", true);
|
||||
|
||||
// Load PasswordChange config file (if exists)
|
||||
final PropertiesParser passwordChangeConfig = new PropertiesParser(CUSTOM_PASSWORD_CHANGE_CONFIG_FILE);
|
||||
|
@ -16,6 +16,7 @@
|
||||
*/
|
||||
package org.l2jmobius.gameserver.network.clientpackets;
|
||||
|
||||
import org.l2jmobius.Config;
|
||||
import org.l2jmobius.commons.network.PacketReader;
|
||||
import org.l2jmobius.gameserver.enums.PlayerAction;
|
||||
import org.l2jmobius.gameserver.handler.AdminCommandHandler;
|
||||
@ -26,8 +27,13 @@ import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerDlgAns
|
||||
import org.l2jmobius.gameserver.model.events.returns.TerminateReturn;
|
||||
import org.l2jmobius.gameserver.model.holders.DoorRequestHolder;
|
||||
import org.l2jmobius.gameserver.model.holders.SummonRequestHolder;
|
||||
import org.l2jmobius.gameserver.model.olympiad.OlympiadManager;
|
||||
import org.l2jmobius.gameserver.network.Disconnection;
|
||||
import org.l2jmobius.gameserver.network.GameClient;
|
||||
import org.l2jmobius.gameserver.network.SystemMessageId;
|
||||
import org.l2jmobius.gameserver.network.serverpackets.ActionFailed;
|
||||
import org.l2jmobius.gameserver.network.serverpackets.LeaveWorld;
|
||||
import org.l2jmobius.gameserver.util.OfflineTradeUtil;
|
||||
|
||||
/**
|
||||
* @author Dezmond_snz
|
||||
@ -80,6 +86,37 @@ public class DlgAnswer implements IClientIncomingPacket
|
||||
AdminCommandHandler.getInstance().useAdminCommand(player, cmd, false);
|
||||
}
|
||||
}
|
||||
else if (_messageId == SystemMessageId.DO_YOU_WISH_TO_EXIT_THE_GAME.getId())
|
||||
{
|
||||
if ((_answer == 0) || !Config.ENABLE_OFFLINE_COMMAND || (!Config.OFFLINE_TRADE_ENABLE && !Config.OFFLINE_CRAFT_ENABLE))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (!player.isInStoreMode())
|
||||
{
|
||||
player.sendPacket(SystemMessageId.PRIVATE_STORE_ALREADY_CLOSED);
|
||||
player.sendPacket(ActionFailed.STATIC_PACKET);
|
||||
return;
|
||||
}
|
||||
|
||||
if (player.isInInstance() || player.isInVehicle() || !player.canLogout())
|
||||
{
|
||||
player.sendPacket(ActionFailed.STATIC_PACKET);
|
||||
return;
|
||||
}
|
||||
|
||||
// Unregister from olympiad.
|
||||
if (OlympiadManager.getInstance().isRegistered(player))
|
||||
{
|
||||
OlympiadManager.getInstance().unRegisterNoble(player);
|
||||
}
|
||||
|
||||
if (!OfflineTradeUtil.enteredOfflineMode(player))
|
||||
{
|
||||
Disconnection.of(client, player).defaultSequence(LeaveWorld.STATIC_PACKET);
|
||||
}
|
||||
}
|
||||
else if ((_messageId == SystemMessageId.C1_IS_ATTEMPTING_TO_DO_A_RESURRECTION_THAT_RESTORES_S2_S3_XP_ACCEPT.getId()) || (_messageId == SystemMessageId.YOUR_CHARM_OF_COURAGE_IS_TRYING_TO_RESURRECT_YOU_WOULD_YOU_LIKE_TO_RESURRECT_NOW.getId()))
|
||||
{
|
||||
player.reviveAnswer(_answer);
|
||||
|
@ -41,3 +41,6 @@ OfflineDisconnectSameAccount = False
|
||||
# Uses more datatabase resources, but helps if server shuts down unexpectedly.
|
||||
StoreOfflineTradeInRealtime = True
|
||||
|
||||
# Enable .offline command for logging out.
|
||||
EnableOfflineCommand = True
|
||||
|
||||
|
@ -338,6 +338,7 @@ import handlers.voicedcommandhandlers.Banking;
|
||||
import handlers.voicedcommandhandlers.ChangePassword;
|
||||
import handlers.voicedcommandhandlers.ChatAdmin;
|
||||
import handlers.voicedcommandhandlers.Lang;
|
||||
import handlers.voicedcommandhandlers.Offline;
|
||||
import handlers.voicedcommandhandlers.Premium;
|
||||
|
||||
/**
|
||||
@ -596,6 +597,7 @@ public class MasterHandler
|
||||
Config.CHAT_ADMIN ? ChatAdmin.class : null,
|
||||
Config.MULTILANG_ENABLE && Config.MULTILANG_VOICED_ALLOW ? Lang.class : null,
|
||||
Config.ALLOW_CHANGE_PASSWORD ? ChangePassword.class : null,
|
||||
Config.ENABLE_OFFLINE_COMMAND && (Config.OFFLINE_TRADE_ENABLE || Config.OFFLINE_CRAFT_ENABLE) ? Offline.class : null,
|
||||
Config.PREMIUM_SYSTEM_ENABLED ? Premium.class : null,
|
||||
Config.AUTO_POTIONS_ENABLED ? AutoPotion.class : null,
|
||||
},
|
||||
|
65
L2J_Mobius_10.1_MasterClass/dist/game/data/scripts/handlers/voicedcommandhandlers/Offline.java
vendored
Normal file
65
L2J_Mobius_10.1_MasterClass/dist/game/data/scripts/handlers/voicedcommandhandlers/Offline.java
vendored
Normal file
@ -0,0 +1,65 @@
|
||||
/*
|
||||
* This file is part of the L2J Mobius project.
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package handlers.voicedcommandhandlers;
|
||||
|
||||
import org.l2jmobius.Config;
|
||||
import org.l2jmobius.gameserver.handler.IVoicedCommandHandler;
|
||||
import org.l2jmobius.gameserver.model.actor.Player;
|
||||
import org.l2jmobius.gameserver.network.SystemMessageId;
|
||||
import org.l2jmobius.gameserver.network.serverpackets.ActionFailed;
|
||||
import org.l2jmobius.gameserver.network.serverpackets.ConfirmDlg;
|
||||
|
||||
/**
|
||||
* @author Mobius
|
||||
*/
|
||||
public class Offline implements IVoicedCommandHandler
|
||||
{
|
||||
private static final String[] VOICED_COMMANDS =
|
||||
{
|
||||
"offline"
|
||||
};
|
||||
|
||||
@Override
|
||||
public boolean useVoicedCommand(String command, Player player, String target)
|
||||
{
|
||||
if (command.equals("offline") && Config.ENABLE_OFFLINE_COMMAND && (Config.OFFLINE_TRADE_ENABLE || Config.OFFLINE_CRAFT_ENABLE))
|
||||
{
|
||||
if (!player.isInStoreMode())
|
||||
{
|
||||
player.sendPacket(SystemMessageId.PRIVATE_STORE_ALREADY_CLOSED);
|
||||
player.sendPacket(ActionFailed.STATIC_PACKET);
|
||||
return false;
|
||||
}
|
||||
|
||||
if (player.isInInstance() || player.isInVehicle() || !player.canLogout())
|
||||
{
|
||||
player.sendPacket(ActionFailed.STATIC_PACKET);
|
||||
return false;
|
||||
}
|
||||
|
||||
player.sendPacket(new ConfirmDlg(SystemMessageId.DO_YOU_WISH_TO_EXIT_THE_GAME));
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String[] getVoicedCommandList()
|
||||
{
|
||||
return VOICED_COMMANDS;
|
||||
}
|
||||
}
|
@ -1152,6 +1152,7 @@ public class Config
|
||||
public static int OFFLINE_NAME_COLOR;
|
||||
public static boolean OFFLINE_FAME;
|
||||
public static boolean STORE_OFFLINE_TRADE_IN_REALTIME;
|
||||
public static boolean ENABLE_OFFLINE_COMMAND;
|
||||
public static boolean DISPLAY_SERVER_TIME;
|
||||
public static boolean WELCOME_MESSAGE_ENABLED;
|
||||
public static String WELCOME_MESSAGE_TEXT;
|
||||
@ -3403,6 +3404,7 @@ public class Config
|
||||
OFFLINE_DISCONNECT_FINISHED = offlineTradeConfig.getBoolean("OfflineDisconnectFinished", true);
|
||||
OFFLINE_DISCONNECT_SAME_ACCOUNT = offlineTradeConfig.getBoolean("OfflineDisconnectSameAccount", false);
|
||||
STORE_OFFLINE_TRADE_IN_REALTIME = offlineTradeConfig.getBoolean("StoreOfflineTradeInRealtime", true);
|
||||
ENABLE_OFFLINE_COMMAND = offlineTradeConfig.getBoolean("EnableOfflineCommand", true);
|
||||
|
||||
// Load PasswordChange config file (if exists)
|
||||
final PropertiesParser passwordChangeConfig = new PropertiesParser(CUSTOM_PASSWORD_CHANGE_CONFIG_FILE);
|
||||
|
@ -16,6 +16,7 @@
|
||||
*/
|
||||
package org.l2jmobius.gameserver.network.clientpackets;
|
||||
|
||||
import org.l2jmobius.Config;
|
||||
import org.l2jmobius.commons.network.PacketReader;
|
||||
import org.l2jmobius.gameserver.enums.PlayerAction;
|
||||
import org.l2jmobius.gameserver.handler.AdminCommandHandler;
|
||||
@ -26,8 +27,13 @@ import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerDlgAns
|
||||
import org.l2jmobius.gameserver.model.events.returns.TerminateReturn;
|
||||
import org.l2jmobius.gameserver.model.holders.DoorRequestHolder;
|
||||
import org.l2jmobius.gameserver.model.holders.SummonRequestHolder;
|
||||
import org.l2jmobius.gameserver.model.olympiad.OlympiadManager;
|
||||
import org.l2jmobius.gameserver.network.Disconnection;
|
||||
import org.l2jmobius.gameserver.network.GameClient;
|
||||
import org.l2jmobius.gameserver.network.SystemMessageId;
|
||||
import org.l2jmobius.gameserver.network.serverpackets.ActionFailed;
|
||||
import org.l2jmobius.gameserver.network.serverpackets.LeaveWorld;
|
||||
import org.l2jmobius.gameserver.util.OfflineTradeUtil;
|
||||
|
||||
/**
|
||||
* @author Dezmond_snz
|
||||
@ -80,6 +86,37 @@ public class DlgAnswer implements IClientIncomingPacket
|
||||
AdminCommandHandler.getInstance().useAdminCommand(player, cmd, false);
|
||||
}
|
||||
}
|
||||
else if (_messageId == SystemMessageId.DO_YOU_WISH_TO_EXIT_THE_GAME.getId())
|
||||
{
|
||||
if ((_answer == 0) || !Config.ENABLE_OFFLINE_COMMAND || (!Config.OFFLINE_TRADE_ENABLE && !Config.OFFLINE_CRAFT_ENABLE))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (!player.isInStoreMode())
|
||||
{
|
||||
player.sendPacket(SystemMessageId.PRIVATE_STORE_ALREADY_CLOSED);
|
||||
player.sendPacket(ActionFailed.STATIC_PACKET);
|
||||
return;
|
||||
}
|
||||
|
||||
if (player.isInInstance() || player.isInVehicle() || !player.canLogout())
|
||||
{
|
||||
player.sendPacket(ActionFailed.STATIC_PACKET);
|
||||
return;
|
||||
}
|
||||
|
||||
// Unregister from olympiad.
|
||||
if (OlympiadManager.getInstance().isRegistered(player))
|
||||
{
|
||||
OlympiadManager.getInstance().unRegisterNoble(player);
|
||||
}
|
||||
|
||||
if (!OfflineTradeUtil.enteredOfflineMode(player))
|
||||
{
|
||||
Disconnection.of(client, player).defaultSequence(LeaveWorld.STATIC_PACKET);
|
||||
}
|
||||
}
|
||||
else if ((_messageId == SystemMessageId.C1_IS_ATTEMPTING_TO_DO_A_RESURRECTION_THAT_RESTORES_S2_S3_XP_ACCEPT.getId()) || (_messageId == SystemMessageId.YOUR_CHARM_OF_COURAGE_IS_TRYING_TO_RESURRECT_YOU_WOULD_YOU_LIKE_TO_RESURRECT_NOW.getId()))
|
||||
{
|
||||
player.reviveAnswer(_answer);
|
||||
|
@ -41,3 +41,6 @@ OfflineDisconnectSameAccount = False
|
||||
# Uses more datatabase resources, but helps if server shuts down unexpectedly.
|
||||
StoreOfflineTradeInRealtime = True
|
||||
|
||||
# Enable .offline command for logging out.
|
||||
EnableOfflineCommand = True
|
||||
|
||||
|
@ -338,6 +338,7 @@ import handlers.voicedcommandhandlers.Banking;
|
||||
import handlers.voicedcommandhandlers.ChangePassword;
|
||||
import handlers.voicedcommandhandlers.ChatAdmin;
|
||||
import handlers.voicedcommandhandlers.Lang;
|
||||
import handlers.voicedcommandhandlers.Offline;
|
||||
import handlers.voicedcommandhandlers.Premium;
|
||||
|
||||
/**
|
||||
@ -596,6 +597,7 @@ public class MasterHandler
|
||||
Config.CHAT_ADMIN ? ChatAdmin.class : null,
|
||||
Config.MULTILANG_ENABLE && Config.MULTILANG_VOICED_ALLOW ? Lang.class : null,
|
||||
Config.ALLOW_CHANGE_PASSWORD ? ChangePassword.class : null,
|
||||
Config.ENABLE_OFFLINE_COMMAND && (Config.OFFLINE_TRADE_ENABLE || Config.OFFLINE_CRAFT_ENABLE) ? Offline.class : null,
|
||||
Config.PREMIUM_SYSTEM_ENABLED ? Premium.class : null,
|
||||
Config.AUTO_POTIONS_ENABLED ? AutoPotion.class : null,
|
||||
},
|
||||
|
65
L2J_Mobius_10.2_MasterClass/dist/game/data/scripts/handlers/voicedcommandhandlers/Offline.java
vendored
Normal file
65
L2J_Mobius_10.2_MasterClass/dist/game/data/scripts/handlers/voicedcommandhandlers/Offline.java
vendored
Normal file
@ -0,0 +1,65 @@
|
||||
/*
|
||||
* This file is part of the L2J Mobius project.
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package handlers.voicedcommandhandlers;
|
||||
|
||||
import org.l2jmobius.Config;
|
||||
import org.l2jmobius.gameserver.handler.IVoicedCommandHandler;
|
||||
import org.l2jmobius.gameserver.model.actor.Player;
|
||||
import org.l2jmobius.gameserver.network.SystemMessageId;
|
||||
import org.l2jmobius.gameserver.network.serverpackets.ActionFailed;
|
||||
import org.l2jmobius.gameserver.network.serverpackets.ConfirmDlg;
|
||||
|
||||
/**
|
||||
* @author Mobius
|
||||
*/
|
||||
public class Offline implements IVoicedCommandHandler
|
||||
{
|
||||
private static final String[] VOICED_COMMANDS =
|
||||
{
|
||||
"offline"
|
||||
};
|
||||
|
||||
@Override
|
||||
public boolean useVoicedCommand(String command, Player player, String target)
|
||||
{
|
||||
if (command.equals("offline") && Config.ENABLE_OFFLINE_COMMAND && (Config.OFFLINE_TRADE_ENABLE || Config.OFFLINE_CRAFT_ENABLE))
|
||||
{
|
||||
if (!player.isInStoreMode())
|
||||
{
|
||||
player.sendPacket(SystemMessageId.PRIVATE_STORE_ALREADY_CLOSED);
|
||||
player.sendPacket(ActionFailed.STATIC_PACKET);
|
||||
return false;
|
||||
}
|
||||
|
||||
if (player.isInInstance() || player.isInVehicle() || !player.canLogout())
|
||||
{
|
||||
player.sendPacket(ActionFailed.STATIC_PACKET);
|
||||
return false;
|
||||
}
|
||||
|
||||
player.sendPacket(new ConfirmDlg(SystemMessageId.DO_YOU_WISH_TO_EXIT_THE_GAME));
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String[] getVoicedCommandList()
|
||||
{
|
||||
return VOICED_COMMANDS;
|
||||
}
|
||||
}
|
@ -1152,6 +1152,7 @@ public class Config
|
||||
public static int OFFLINE_NAME_COLOR;
|
||||
public static boolean OFFLINE_FAME;
|
||||
public static boolean STORE_OFFLINE_TRADE_IN_REALTIME;
|
||||
public static boolean ENABLE_OFFLINE_COMMAND;
|
||||
public static boolean DISPLAY_SERVER_TIME;
|
||||
public static boolean WELCOME_MESSAGE_ENABLED;
|
||||
public static String WELCOME_MESSAGE_TEXT;
|
||||
@ -3403,6 +3404,7 @@ public class Config
|
||||
OFFLINE_DISCONNECT_FINISHED = offlineTradeConfig.getBoolean("OfflineDisconnectFinished", true);
|
||||
OFFLINE_DISCONNECT_SAME_ACCOUNT = offlineTradeConfig.getBoolean("OfflineDisconnectSameAccount", false);
|
||||
STORE_OFFLINE_TRADE_IN_REALTIME = offlineTradeConfig.getBoolean("StoreOfflineTradeInRealtime", true);
|
||||
ENABLE_OFFLINE_COMMAND = offlineTradeConfig.getBoolean("EnableOfflineCommand", true);
|
||||
|
||||
// Load PasswordChange config file (if exists)
|
||||
final PropertiesParser passwordChangeConfig = new PropertiesParser(CUSTOM_PASSWORD_CHANGE_CONFIG_FILE);
|
||||
|
@ -16,6 +16,7 @@
|
||||
*/
|
||||
package org.l2jmobius.gameserver.network.clientpackets;
|
||||
|
||||
import org.l2jmobius.Config;
|
||||
import org.l2jmobius.commons.network.PacketReader;
|
||||
import org.l2jmobius.gameserver.enums.PlayerAction;
|
||||
import org.l2jmobius.gameserver.handler.AdminCommandHandler;
|
||||
@ -26,8 +27,13 @@ import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerDlgAns
|
||||
import org.l2jmobius.gameserver.model.events.returns.TerminateReturn;
|
||||
import org.l2jmobius.gameserver.model.holders.DoorRequestHolder;
|
||||
import org.l2jmobius.gameserver.model.holders.SummonRequestHolder;
|
||||
import org.l2jmobius.gameserver.model.olympiad.OlympiadManager;
|
||||
import org.l2jmobius.gameserver.network.Disconnection;
|
||||
import org.l2jmobius.gameserver.network.GameClient;
|
||||
import org.l2jmobius.gameserver.network.SystemMessageId;
|
||||
import org.l2jmobius.gameserver.network.serverpackets.ActionFailed;
|
||||
import org.l2jmobius.gameserver.network.serverpackets.LeaveWorld;
|
||||
import org.l2jmobius.gameserver.util.OfflineTradeUtil;
|
||||
|
||||
/**
|
||||
* @author Dezmond_snz
|
||||
@ -80,6 +86,37 @@ public class DlgAnswer implements IClientIncomingPacket
|
||||
AdminCommandHandler.getInstance().useAdminCommand(player, cmd, false);
|
||||
}
|
||||
}
|
||||
else if (_messageId == SystemMessageId.DO_YOU_WISH_TO_EXIT_THE_GAME.getId())
|
||||
{
|
||||
if ((_answer == 0) || !Config.ENABLE_OFFLINE_COMMAND || (!Config.OFFLINE_TRADE_ENABLE && !Config.OFFLINE_CRAFT_ENABLE))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (!player.isInStoreMode())
|
||||
{
|
||||
player.sendPacket(SystemMessageId.PRIVATE_STORE_ALREADY_CLOSED);
|
||||
player.sendPacket(ActionFailed.STATIC_PACKET);
|
||||
return;
|
||||
}
|
||||
|
||||
if (player.isInInstance() || player.isInVehicle() || !player.canLogout())
|
||||
{
|
||||
player.sendPacket(ActionFailed.STATIC_PACKET);
|
||||
return;
|
||||
}
|
||||
|
||||
// Unregister from olympiad.
|
||||
if (OlympiadManager.getInstance().isRegistered(player))
|
||||
{
|
||||
OlympiadManager.getInstance().unRegisterNoble(player);
|
||||
}
|
||||
|
||||
if (!OfflineTradeUtil.enteredOfflineMode(player))
|
||||
{
|
||||
Disconnection.of(client, player).defaultSequence(LeaveWorld.STATIC_PACKET);
|
||||
}
|
||||
}
|
||||
else if ((_messageId == SystemMessageId.C1_IS_ATTEMPTING_TO_DO_A_RESURRECTION_THAT_RESTORES_S2_S3_XP_ACCEPT.getId()) || (_messageId == SystemMessageId.YOUR_CHARM_OF_COURAGE_IS_TRYING_TO_RESURRECT_YOU_WOULD_YOU_LIKE_TO_RESURRECT_NOW.getId()))
|
||||
{
|
||||
player.reviveAnswer(_answer);
|
||||
|
@ -41,3 +41,6 @@ OfflineDisconnectSameAccount = False
|
||||
# Uses more datatabase resources, but helps if server shuts down unexpectedly.
|
||||
StoreOfflineTradeInRealtime = True
|
||||
|
||||
# Enable .offline command for logging out.
|
||||
EnableOfflineCommand = True
|
||||
|
||||
|
@ -281,6 +281,7 @@ import handlers.voicedcommandhandlers.Banking;
|
||||
import handlers.voicedcommandhandlers.ChangePassword;
|
||||
import handlers.voicedcommandhandlers.ChatAdmin;
|
||||
import handlers.voicedcommandhandlers.Lang;
|
||||
import handlers.voicedcommandhandlers.Offline;
|
||||
import handlers.voicedcommandhandlers.Premium;
|
||||
import handlers.voicedcommandhandlers.Wedding;
|
||||
|
||||
@ -526,6 +527,7 @@ public class MasterHandler
|
||||
Config.CHAT_ADMIN ? ChatAdmin.class : null,
|
||||
Config.MULTILANG_ENABLE && Config.MULTILANG_VOICED_ALLOW ? Lang.class : null,
|
||||
Config.ALLOW_CHANGE_PASSWORD ? ChangePassword.class : null,
|
||||
Config.ENABLE_OFFLINE_COMMAND && (Config.OFFLINE_TRADE_ENABLE || Config.OFFLINE_CRAFT_ENABLE) ? Offline.class : null,
|
||||
Config.PREMIUM_SYSTEM_ENABLED ? Premium.class : null,
|
||||
Config.AUTO_POTIONS_ENABLED ? AutoPotion.class : null,
|
||||
},
|
||||
|
65
L2J_Mobius_CT_0_Interlude/dist/game/data/scripts/handlers/voicedcommandhandlers/Offline.java
vendored
Normal file
65
L2J_Mobius_CT_0_Interlude/dist/game/data/scripts/handlers/voicedcommandhandlers/Offline.java
vendored
Normal file
@ -0,0 +1,65 @@
|
||||
/*
|
||||
* This file is part of the L2J Mobius project.
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package handlers.voicedcommandhandlers;
|
||||
|
||||
import org.l2jmobius.Config;
|
||||
import org.l2jmobius.gameserver.handler.IVoicedCommandHandler;
|
||||
import org.l2jmobius.gameserver.model.actor.Player;
|
||||
import org.l2jmobius.gameserver.network.SystemMessageId;
|
||||
import org.l2jmobius.gameserver.network.serverpackets.ActionFailed;
|
||||
import org.l2jmobius.gameserver.network.serverpackets.ConfirmDlg;
|
||||
|
||||
/**
|
||||
* @author Mobius
|
||||
*/
|
||||
public class Offline implements IVoicedCommandHandler
|
||||
{
|
||||
private static final String[] VOICED_COMMANDS =
|
||||
{
|
||||
"offline"
|
||||
};
|
||||
|
||||
@Override
|
||||
public boolean useVoicedCommand(String command, Player player, String target)
|
||||
{
|
||||
if (command.equals("offline") && Config.ENABLE_OFFLINE_COMMAND && (Config.OFFLINE_TRADE_ENABLE || Config.OFFLINE_CRAFT_ENABLE))
|
||||
{
|
||||
if (!player.isInStoreMode())
|
||||
{
|
||||
player.sendPacket(SystemMessageId.PRIVATE_STORE_ALREADY_CLOSED);
|
||||
player.sendPacket(ActionFailed.STATIC_PACKET);
|
||||
return false;
|
||||
}
|
||||
|
||||
if ((player.getInstanceId() > 0) || player.isInVehicle() || !player.canLogout())
|
||||
{
|
||||
player.sendPacket(ActionFailed.STATIC_PACKET);
|
||||
return false;
|
||||
}
|
||||
|
||||
player.sendPacket(new ConfirmDlg(SystemMessageId.DO_YOU_WISH_TO_EXIT_THE_GAME));
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String[] getVoicedCommandList()
|
||||
{
|
||||
return VOICED_COMMANDS;
|
||||
}
|
||||
}
|
@ -1117,6 +1117,7 @@ public class Config
|
||||
public static int OFFLINE_NAME_COLOR;
|
||||
public static boolean OFFLINE_FAME;
|
||||
public static boolean STORE_OFFLINE_TRADE_IN_REALTIME;
|
||||
public static boolean ENABLE_OFFLINE_COMMAND;
|
||||
public static boolean DISPLAY_SERVER_TIME;
|
||||
public static int BUFFER_MAX_SCHEMES;
|
||||
public static int BUFFER_STATIC_BUFF_COST;
|
||||
@ -2760,6 +2761,7 @@ public class Config
|
||||
OFFLINE_DISCONNECT_FINISHED = offlineTradeConfig.getBoolean("OfflineDisconnectFinished", true);
|
||||
OFFLINE_DISCONNECT_SAME_ACCOUNT = offlineTradeConfig.getBoolean("OfflineDisconnectSameAccount", false);
|
||||
STORE_OFFLINE_TRADE_IN_REALTIME = offlineTradeConfig.getBoolean("StoreOfflineTradeInRealtime", true);
|
||||
ENABLE_OFFLINE_COMMAND = offlineTradeConfig.getBoolean("EnableOfflineCommand", true);
|
||||
|
||||
// Load PasswordChange config file (if exists)
|
||||
final PropertiesParser passwordChangeConfig = new PropertiesParser(CUSTOM_PASSWORD_CHANGE_CONFIG_FILE);
|
||||
|
@ -27,8 +27,13 @@ import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerDlgAns
|
||||
import org.l2jmobius.gameserver.model.events.returns.TerminateReturn;
|
||||
import org.l2jmobius.gameserver.model.holders.DoorRequestHolder;
|
||||
import org.l2jmobius.gameserver.model.holders.SummonRequestHolder;
|
||||
import org.l2jmobius.gameserver.model.olympiad.Olympiad;
|
||||
import org.l2jmobius.gameserver.network.Disconnection;
|
||||
import org.l2jmobius.gameserver.network.GameClient;
|
||||
import org.l2jmobius.gameserver.network.SystemMessageId;
|
||||
import org.l2jmobius.gameserver.network.serverpackets.ActionFailed;
|
||||
import org.l2jmobius.gameserver.network.serverpackets.LeaveWorld;
|
||||
import org.l2jmobius.gameserver.util.OfflineTradeUtil;
|
||||
|
||||
/**
|
||||
* @author Dezmond_snz
|
||||
@ -88,6 +93,40 @@ public class DlgAnswer implements IClientIncomingPacket
|
||||
AdminCommandHandler.getInstance().useAdminCommand(player, cmd, false);
|
||||
}
|
||||
}
|
||||
else if (_messageId == SystemMessageId.DO_YOU_WISH_TO_EXIT_THE_GAME.getId())
|
||||
{
|
||||
if ((_answer == 0) || !Config.ENABLE_OFFLINE_COMMAND || (!Config.OFFLINE_TRADE_ENABLE && !Config.OFFLINE_CRAFT_ENABLE))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (!player.isInStoreMode())
|
||||
{
|
||||
player.sendPacket(SystemMessageId.PRIVATE_STORE_ALREADY_CLOSED);
|
||||
player.sendPacket(ActionFailed.STATIC_PACKET);
|
||||
return;
|
||||
}
|
||||
|
||||
if ((player.getInstanceId() > 0) || player.isInVehicle() || !player.canLogout())
|
||||
{
|
||||
player.sendPacket(ActionFailed.STATIC_PACKET);
|
||||
return;
|
||||
}
|
||||
|
||||
// Remove player from boss zone.
|
||||
player.removeFromBossZone();
|
||||
|
||||
// Unregister from olympiad.
|
||||
if (Olympiad.getInstance().isRegistered(player))
|
||||
{
|
||||
Olympiad.getInstance().unRegisterNoble(player);
|
||||
}
|
||||
|
||||
if (!OfflineTradeUtil.enteredOfflineMode(player))
|
||||
{
|
||||
Disconnection.of(client, player).defaultSequence(LeaveWorld.STATIC_PACKET);
|
||||
}
|
||||
}
|
||||
else if ((_messageId == SystemMessageId.C1_IS_MAKING_AN_ATTEMPT_TO_RESURRECT_YOU_IF_YOU_CHOOSE_THIS_PATH_S2_EXPERIENCE_POINTS_WILL_BE_RETURNED_TO_YOU_DO_YOU_WANT_TO_BE_RESURRECTED.getId()) || (_messageId == SystemMessageId.YOUR_CHARM_OF_COURAGE_IS_TRYING_TO_RESURRECT_YOU_WOULD_YOU_LIKE_TO_RESURRECT_NOW.getId()))
|
||||
{
|
||||
player.reviveAnswer(_answer);
|
||||
|
@ -41,3 +41,6 @@ OfflineDisconnectSameAccount = False
|
||||
# Uses more datatabase resources, but helps if server shuts down unexpectedly.
|
||||
StoreOfflineTradeInRealtime = True
|
||||
|
||||
# Enable .offline command for logging out.
|
||||
EnableOfflineCommand = True
|
||||
|
||||
|
@ -297,6 +297,7 @@ import handlers.voicedcommandhandlers.Banking;
|
||||
import handlers.voicedcommandhandlers.ChangePassword;
|
||||
import handlers.voicedcommandhandlers.ChatAdmin;
|
||||
import handlers.voicedcommandhandlers.Lang;
|
||||
import handlers.voicedcommandhandlers.Offline;
|
||||
import handlers.voicedcommandhandlers.Premium;
|
||||
import handlers.voicedcommandhandlers.Wedding;
|
||||
|
||||
@ -557,6 +558,7 @@ public class MasterHandler
|
||||
Config.CHAT_ADMIN ? ChatAdmin.class : null,
|
||||
Config.MULTILANG_ENABLE && Config.MULTILANG_VOICED_ALLOW ? Lang.class : null,
|
||||
Config.ALLOW_CHANGE_PASSWORD ? ChangePassword.class : null,
|
||||
Config.ENABLE_OFFLINE_COMMAND && (Config.OFFLINE_TRADE_ENABLE || Config.OFFLINE_CRAFT_ENABLE) ? Offline.class : null,
|
||||
Config.PREMIUM_SYSTEM_ENABLED ? Premium.class : null,
|
||||
Config.AUTO_POTIONS_ENABLED ? AutoPotion.class : null,
|
||||
},
|
||||
|
65
L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/handlers/voicedcommandhandlers/Offline.java
vendored
Normal file
65
L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/handlers/voicedcommandhandlers/Offline.java
vendored
Normal file
@ -0,0 +1,65 @@
|
||||
/*
|
||||
* This file is part of the L2J Mobius project.
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package handlers.voicedcommandhandlers;
|
||||
|
||||
import org.l2jmobius.Config;
|
||||
import org.l2jmobius.gameserver.handler.IVoicedCommandHandler;
|
||||
import org.l2jmobius.gameserver.model.actor.Player;
|
||||
import org.l2jmobius.gameserver.network.SystemMessageId;
|
||||
import org.l2jmobius.gameserver.network.serverpackets.ActionFailed;
|
||||
import org.l2jmobius.gameserver.network.serverpackets.ConfirmDlg;
|
||||
|
||||
/**
|
||||
* @author Mobius
|
||||
*/
|
||||
public class Offline implements IVoicedCommandHandler
|
||||
{
|
||||
private static final String[] VOICED_COMMANDS =
|
||||
{
|
||||
"offline"
|
||||
};
|
||||
|
||||
@Override
|
||||
public boolean useVoicedCommand(String command, Player player, String target)
|
||||
{
|
||||
if (command.equals("offline") && Config.ENABLE_OFFLINE_COMMAND && (Config.OFFLINE_TRADE_ENABLE || Config.OFFLINE_CRAFT_ENABLE))
|
||||
{
|
||||
if (!player.isInStoreMode())
|
||||
{
|
||||
player.sendPacket(SystemMessageId.PRIVATE_STORE_ALREADY_CLOSED);
|
||||
player.sendPacket(ActionFailed.STATIC_PACKET);
|
||||
return false;
|
||||
}
|
||||
|
||||
if ((player.getInstanceId() > 0) || player.isInVehicle() || !player.canLogout())
|
||||
{
|
||||
player.sendPacket(ActionFailed.STATIC_PACKET);
|
||||
return false;
|
||||
}
|
||||
|
||||
player.sendPacket(new ConfirmDlg(SystemMessageId.DO_YOU_WISH_TO_EXIT_THE_GAME));
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String[] getVoicedCommandList()
|
||||
{
|
||||
return VOICED_COMMANDS;
|
||||
}
|
||||
}
|
@ -1171,6 +1171,7 @@ public class Config
|
||||
public static int OFFLINE_NAME_COLOR;
|
||||
public static boolean OFFLINE_FAME;
|
||||
public static boolean STORE_OFFLINE_TRADE_IN_REALTIME;
|
||||
public static boolean ENABLE_OFFLINE_COMMAND;
|
||||
public static boolean DISPLAY_SERVER_TIME;
|
||||
public static int BUFFER_MAX_SCHEMES;
|
||||
public static int BUFFER_STATIC_BUFF_COST;
|
||||
@ -2878,6 +2879,7 @@ public class Config
|
||||
OFFLINE_DISCONNECT_FINISHED = offlineTradeConfig.getBoolean("OfflineDisconnectFinished", true);
|
||||
OFFLINE_DISCONNECT_SAME_ACCOUNT = offlineTradeConfig.getBoolean("OfflineDisconnectSameAccount", false);
|
||||
STORE_OFFLINE_TRADE_IN_REALTIME = offlineTradeConfig.getBoolean("StoreOfflineTradeInRealtime", true);
|
||||
ENABLE_OFFLINE_COMMAND = offlineTradeConfig.getBoolean("EnableOfflineCommand", true);
|
||||
|
||||
// Load PasswordChange config file (if exists)
|
||||
final PropertiesParser passwordChangeConfig = new PropertiesParser(CUSTOM_PASSWORD_CHANGE_CONFIG_FILE);
|
||||
|
@ -27,8 +27,13 @@ import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerDlgAns
|
||||
import org.l2jmobius.gameserver.model.events.returns.TerminateReturn;
|
||||
import org.l2jmobius.gameserver.model.holders.DoorRequestHolder;
|
||||
import org.l2jmobius.gameserver.model.holders.SummonRequestHolder;
|
||||
import org.l2jmobius.gameserver.model.olympiad.Olympiad;
|
||||
import org.l2jmobius.gameserver.network.Disconnection;
|
||||
import org.l2jmobius.gameserver.network.GameClient;
|
||||
import org.l2jmobius.gameserver.network.SystemMessageId;
|
||||
import org.l2jmobius.gameserver.network.serverpackets.ActionFailed;
|
||||
import org.l2jmobius.gameserver.network.serverpackets.LeaveWorld;
|
||||
import org.l2jmobius.gameserver.util.OfflineTradeUtil;
|
||||
|
||||
/**
|
||||
* @author Dezmond_snz
|
||||
@ -88,6 +93,40 @@ public class DlgAnswer implements IClientIncomingPacket
|
||||
AdminCommandHandler.getInstance().useAdminCommand(player, cmd, false);
|
||||
}
|
||||
}
|
||||
else if (_messageId == SystemMessageId.DO_YOU_WISH_TO_EXIT_THE_GAME.getId())
|
||||
{
|
||||
if ((_answer == 0) || !Config.ENABLE_OFFLINE_COMMAND || (!Config.OFFLINE_TRADE_ENABLE && !Config.OFFLINE_CRAFT_ENABLE))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (!player.isInStoreMode())
|
||||
{
|
||||
player.sendPacket(SystemMessageId.PRIVATE_STORE_ALREADY_CLOSED);
|
||||
player.sendPacket(ActionFailed.STATIC_PACKET);
|
||||
return;
|
||||
}
|
||||
|
||||
if ((player.getInstanceId() > 0) || player.isInVehicle() || !player.canLogout())
|
||||
{
|
||||
player.sendPacket(ActionFailed.STATIC_PACKET);
|
||||
return;
|
||||
}
|
||||
|
||||
// Remove player from boss zone.
|
||||
player.removeFromBossZone();
|
||||
|
||||
// Unregister from olympiad.
|
||||
if (Olympiad.getInstance().isRegistered(player))
|
||||
{
|
||||
Olympiad.getInstance().unRegisterNoble(player);
|
||||
}
|
||||
|
||||
if (!OfflineTradeUtil.enteredOfflineMode(player))
|
||||
{
|
||||
Disconnection.of(client, player).defaultSequence(LeaveWorld.STATIC_PACKET);
|
||||
}
|
||||
}
|
||||
else if ((_messageId == SystemMessageId.C1_IS_MAKING_AN_ATTEMPT_TO_RESURRECT_YOU_IF_YOU_CHOOSE_THIS_PATH_S2_EXPERIENCE_POINTS_WILL_BE_RETURNED_TO_YOU_DO_YOU_WANT_TO_BE_RESURRECTED.getId()) || (_messageId == SystemMessageId.YOUR_CHARM_OF_COURAGE_IS_TRYING_TO_RESURRECT_YOU_WOULD_YOU_LIKE_TO_RESURRECT_NOW.getId()))
|
||||
{
|
||||
player.reviveAnswer(_answer);
|
||||
|
@ -41,3 +41,6 @@ OfflineDisconnectSameAccount = False
|
||||
# Uses more datatabase resources, but helps if server shuts down unexpectedly.
|
||||
StoreOfflineTradeInRealtime = True
|
||||
|
||||
# Enable .offline command for logging out.
|
||||
EnableOfflineCommand = True
|
||||
|
||||
|
@ -298,6 +298,7 @@ import handlers.voicedcommandhandlers.Banking;
|
||||
import handlers.voicedcommandhandlers.ChangePassword;
|
||||
import handlers.voicedcommandhandlers.ChatAdmin;
|
||||
import handlers.voicedcommandhandlers.Lang;
|
||||
import handlers.voicedcommandhandlers.Offline;
|
||||
import handlers.voicedcommandhandlers.Premium;
|
||||
import handlers.voicedcommandhandlers.Wedding;
|
||||
|
||||
@ -559,6 +560,7 @@ public class MasterHandler
|
||||
Config.CHAT_ADMIN ? ChatAdmin.class : null,
|
||||
Config.MULTILANG_ENABLE && Config.MULTILANG_VOICED_ALLOW ? Lang.class : null,
|
||||
Config.ALLOW_CHANGE_PASSWORD ? ChangePassword.class : null,
|
||||
Config.ENABLE_OFFLINE_COMMAND && (Config.OFFLINE_TRADE_ENABLE || Config.OFFLINE_CRAFT_ENABLE) ? Offline.class : null,
|
||||
Config.PREMIUM_SYSTEM_ENABLED ? Premium.class : null,
|
||||
Config.AUTO_POTIONS_ENABLED ? AutoPotion.class : null,
|
||||
},
|
||||
|
65
L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/handlers/voicedcommandhandlers/Offline.java
vendored
Normal file
65
L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/handlers/voicedcommandhandlers/Offline.java
vendored
Normal file
@ -0,0 +1,65 @@
|
||||
/*
|
||||
* This file is part of the L2J Mobius project.
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package handlers.voicedcommandhandlers;
|
||||
|
||||
import org.l2jmobius.Config;
|
||||
import org.l2jmobius.gameserver.handler.IVoicedCommandHandler;
|
||||
import org.l2jmobius.gameserver.model.actor.Player;
|
||||
import org.l2jmobius.gameserver.network.SystemMessageId;
|
||||
import org.l2jmobius.gameserver.network.serverpackets.ActionFailed;
|
||||
import org.l2jmobius.gameserver.network.serverpackets.ConfirmDlg;
|
||||
|
||||
/**
|
||||
* @author Mobius
|
||||
*/
|
||||
public class Offline implements IVoicedCommandHandler
|
||||
{
|
||||
private static final String[] VOICED_COMMANDS =
|
||||
{
|
||||
"offline"
|
||||
};
|
||||
|
||||
@Override
|
||||
public boolean useVoicedCommand(String command, Player player, String target)
|
||||
{
|
||||
if (command.equals("offline") && Config.ENABLE_OFFLINE_COMMAND && (Config.OFFLINE_TRADE_ENABLE || Config.OFFLINE_CRAFT_ENABLE))
|
||||
{
|
||||
if (!player.isInStoreMode())
|
||||
{
|
||||
player.sendPacket(SystemMessageId.PRIVATE_STORE_ALREADY_CLOSED);
|
||||
player.sendPacket(ActionFailed.STATIC_PACKET);
|
||||
return false;
|
||||
}
|
||||
|
||||
if ((player.getInstanceId() > 0) || player.isInVehicle() || !player.canLogout())
|
||||
{
|
||||
player.sendPacket(ActionFailed.STATIC_PACKET);
|
||||
return false;
|
||||
}
|
||||
|
||||
player.sendPacket(new ConfirmDlg(SystemMessageId.DO_YOU_WISH_TO_EXIT_THE_GAME));
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String[] getVoicedCommandList()
|
||||
{
|
||||
return VOICED_COMMANDS;
|
||||
}
|
||||
}
|
@ -1171,6 +1171,7 @@ public class Config
|
||||
public static int OFFLINE_NAME_COLOR;
|
||||
public static boolean OFFLINE_FAME;
|
||||
public static boolean STORE_OFFLINE_TRADE_IN_REALTIME;
|
||||
public static boolean ENABLE_OFFLINE_COMMAND;
|
||||
public static boolean DISPLAY_SERVER_TIME;
|
||||
public static int BUFFER_MAX_SCHEMES;
|
||||
public static int BUFFER_STATIC_BUFF_COST;
|
||||
@ -2885,6 +2886,7 @@ public class Config
|
||||
OFFLINE_DISCONNECT_FINISHED = offlineTradeConfig.getBoolean("OfflineDisconnectFinished", true);
|
||||
OFFLINE_DISCONNECT_SAME_ACCOUNT = offlineTradeConfig.getBoolean("OfflineDisconnectSameAccount", false);
|
||||
STORE_OFFLINE_TRADE_IN_REALTIME = offlineTradeConfig.getBoolean("StoreOfflineTradeInRealtime", true);
|
||||
ENABLE_OFFLINE_COMMAND = offlineTradeConfig.getBoolean("EnableOfflineCommand", true);
|
||||
|
||||
// Load PasswordChange config file (if exists)
|
||||
final PropertiesParser passwordChangeConfig = new PropertiesParser(CUSTOM_PASSWORD_CHANGE_CONFIG_FILE);
|
||||
|
@ -27,8 +27,13 @@ import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerDlgAns
|
||||
import org.l2jmobius.gameserver.model.events.returns.TerminateReturn;
|
||||
import org.l2jmobius.gameserver.model.holders.DoorRequestHolder;
|
||||
import org.l2jmobius.gameserver.model.holders.SummonRequestHolder;
|
||||
import org.l2jmobius.gameserver.model.olympiad.OlympiadManager;
|
||||
import org.l2jmobius.gameserver.network.Disconnection;
|
||||
import org.l2jmobius.gameserver.network.GameClient;
|
||||
import org.l2jmobius.gameserver.network.SystemMessageId;
|
||||
import org.l2jmobius.gameserver.network.serverpackets.ActionFailed;
|
||||
import org.l2jmobius.gameserver.network.serverpackets.LeaveWorld;
|
||||
import org.l2jmobius.gameserver.util.OfflineTradeUtil;
|
||||
|
||||
/**
|
||||
* @author Dezmond_snz
|
||||
@ -88,6 +93,40 @@ public class DlgAnswer implements IClientIncomingPacket
|
||||
AdminCommandHandler.getInstance().useAdminCommand(player, cmd, false);
|
||||
}
|
||||
}
|
||||
else if (_messageId == SystemMessageId.DO_YOU_WISH_TO_EXIT_THE_GAME.getId())
|
||||
{
|
||||
if ((_answer == 0) || !Config.ENABLE_OFFLINE_COMMAND || (!Config.OFFLINE_TRADE_ENABLE && !Config.OFFLINE_CRAFT_ENABLE))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (!player.isInStoreMode())
|
||||
{
|
||||
player.sendPacket(SystemMessageId.PRIVATE_STORE_ALREADY_CLOSED);
|
||||
player.sendPacket(ActionFailed.STATIC_PACKET);
|
||||
return;
|
||||
}
|
||||
|
||||
if ((player.getInstanceId() > 0) || player.isInVehicle() || !player.canLogout())
|
||||
{
|
||||
player.sendPacket(ActionFailed.STATIC_PACKET);
|
||||
return;
|
||||
}
|
||||
|
||||
// Remove player from boss zone.
|
||||
player.removeFromBossZone();
|
||||
|
||||
// Unregister from olympiad.
|
||||
if (OlympiadManager.getInstance().isRegistered(player))
|
||||
{
|
||||
OlympiadManager.getInstance().unRegisterNoble(player);
|
||||
}
|
||||
|
||||
if (!OfflineTradeUtil.enteredOfflineMode(player))
|
||||
{
|
||||
Disconnection.of(client, player).defaultSequence(LeaveWorld.STATIC_PACKET);
|
||||
}
|
||||
}
|
||||
else if ((_messageId == SystemMessageId.C1_IS_MAKING_AN_ATTEMPT_TO_RESURRECT_YOU_IF_YOU_CHOOSE_THIS_PATH_S2_EXPERIENCE_POINTS_WILL_BE_RETURNED_TO_YOU_DO_YOU_WANT_TO_BE_RESURRECTED.getId()) || (_messageId == SystemMessageId.YOUR_CHARM_OF_COURAGE_IS_TRYING_TO_RESURRECT_YOU_WOULD_YOU_LIKE_TO_RESURRECT_NOW.getId()))
|
||||
{
|
||||
player.reviveAnswer(_answer);
|
||||
|
@ -41,3 +41,6 @@ OfflineDisconnectSameAccount = False
|
||||
# Uses more datatabase resources, but helps if server shuts down unexpectedly.
|
||||
StoreOfflineTradeInRealtime = True
|
||||
|
||||
# Enable .offline command for logging out.
|
||||
EnableOfflineCommand = True
|
||||
|
||||
|
@ -335,6 +335,7 @@ import handlers.voicedcommandhandlers.Banking;
|
||||
import handlers.voicedcommandhandlers.ChangePassword;
|
||||
import handlers.voicedcommandhandlers.ChatAdmin;
|
||||
import handlers.voicedcommandhandlers.Lang;
|
||||
import handlers.voicedcommandhandlers.Offline;
|
||||
import handlers.voicedcommandhandlers.Premium;
|
||||
|
||||
/**
|
||||
@ -590,6 +591,7 @@ public class MasterHandler
|
||||
Config.CHAT_ADMIN ? ChatAdmin.class : null,
|
||||
Config.MULTILANG_ENABLE && Config.MULTILANG_VOICED_ALLOW ? Lang.class : null,
|
||||
Config.ALLOW_CHANGE_PASSWORD ? ChangePassword.class : null,
|
||||
Config.ENABLE_OFFLINE_COMMAND && (Config.OFFLINE_TRADE_ENABLE || Config.OFFLINE_CRAFT_ENABLE) ? Offline.class : null,
|
||||
Config.PREMIUM_SYSTEM_ENABLED ? Premium.class : null,
|
||||
Config.AUTO_POTIONS_ENABLED ? AutoPotion.class : null,
|
||||
},
|
||||
|
65
L2J_Mobius_Classic_1.0/dist/game/data/scripts/handlers/voicedcommandhandlers/Offline.java
vendored
Normal file
65
L2J_Mobius_Classic_1.0/dist/game/data/scripts/handlers/voicedcommandhandlers/Offline.java
vendored
Normal file
@ -0,0 +1,65 @@
|
||||
/*
|
||||
* This file is part of the L2J Mobius project.
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package handlers.voicedcommandhandlers;
|
||||
|
||||
import org.l2jmobius.Config;
|
||||
import org.l2jmobius.gameserver.handler.IVoicedCommandHandler;
|
||||
import org.l2jmobius.gameserver.model.actor.Player;
|
||||
import org.l2jmobius.gameserver.network.SystemMessageId;
|
||||
import org.l2jmobius.gameserver.network.serverpackets.ActionFailed;
|
||||
import org.l2jmobius.gameserver.network.serverpackets.ConfirmDlg;
|
||||
|
||||
/**
|
||||
* @author Mobius
|
||||
*/
|
||||
public class Offline implements IVoicedCommandHandler
|
||||
{
|
||||
private static final String[] VOICED_COMMANDS =
|
||||
{
|
||||
"offline"
|
||||
};
|
||||
|
||||
@Override
|
||||
public boolean useVoicedCommand(String command, Player player, String target)
|
||||
{
|
||||
if (command.equals("offline") && Config.ENABLE_OFFLINE_COMMAND && (Config.OFFLINE_TRADE_ENABLE || Config.OFFLINE_CRAFT_ENABLE))
|
||||
{
|
||||
if (!player.isInStoreMode())
|
||||
{
|
||||
player.sendPacket(SystemMessageId.PRIVATE_STORE_ALREADY_CLOSED);
|
||||
player.sendPacket(ActionFailed.STATIC_PACKET);
|
||||
return false;
|
||||
}
|
||||
|
||||
if (player.isInInstance() || player.isInVehicle() || !player.canLogout())
|
||||
{
|
||||
player.sendPacket(ActionFailed.STATIC_PACKET);
|
||||
return false;
|
||||
}
|
||||
|
||||
player.sendPacket(new ConfirmDlg(SystemMessageId.DO_YOU_WISH_TO_EXIT_THE_GAME));
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String[] getVoicedCommandList()
|
||||
{
|
||||
return VOICED_COMMANDS;
|
||||
}
|
||||
}
|
@ -1052,6 +1052,7 @@ public class Config
|
||||
public static int OFFLINE_NAME_COLOR;
|
||||
public static boolean OFFLINE_FAME;
|
||||
public static boolean STORE_OFFLINE_TRADE_IN_REALTIME;
|
||||
public static boolean ENABLE_OFFLINE_COMMAND;
|
||||
public static boolean DISPLAY_SERVER_TIME;
|
||||
public static int BUFFER_MAX_SCHEMES;
|
||||
public static int BUFFER_STATIC_BUFF_COST;
|
||||
@ -3190,6 +3191,7 @@ public class Config
|
||||
OFFLINE_DISCONNECT_FINISHED = offlineTradeConfig.getBoolean("OfflineDisconnectFinished", true);
|
||||
OFFLINE_DISCONNECT_SAME_ACCOUNT = offlineTradeConfig.getBoolean("OfflineDisconnectSameAccount", false);
|
||||
STORE_OFFLINE_TRADE_IN_REALTIME = offlineTradeConfig.getBoolean("StoreOfflineTradeInRealtime", true);
|
||||
ENABLE_OFFLINE_COMMAND = offlineTradeConfig.getBoolean("EnableOfflineCommand", true);
|
||||
|
||||
// Load PasswordChange config file (if exists)
|
||||
final PropertiesParser passwordChangeConfig = new PropertiesParser(CUSTOM_PASSWORD_CHANGE_CONFIG_FILE);
|
||||
|
@ -16,6 +16,7 @@
|
||||
*/
|
||||
package org.l2jmobius.gameserver.network.clientpackets;
|
||||
|
||||
import org.l2jmobius.Config;
|
||||
import org.l2jmobius.commons.network.PacketReader;
|
||||
import org.l2jmobius.gameserver.enums.PlayerAction;
|
||||
import org.l2jmobius.gameserver.handler.AdminCommandHandler;
|
||||
@ -26,8 +27,13 @@ import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerDlgAns
|
||||
import org.l2jmobius.gameserver.model.events.returns.TerminateReturn;
|
||||
import org.l2jmobius.gameserver.model.holders.DoorRequestHolder;
|
||||
import org.l2jmobius.gameserver.model.holders.SummonRequestHolder;
|
||||
import org.l2jmobius.gameserver.model.olympiad.OlympiadManager;
|
||||
import org.l2jmobius.gameserver.network.Disconnection;
|
||||
import org.l2jmobius.gameserver.network.GameClient;
|
||||
import org.l2jmobius.gameserver.network.SystemMessageId;
|
||||
import org.l2jmobius.gameserver.network.serverpackets.ActionFailed;
|
||||
import org.l2jmobius.gameserver.network.serverpackets.LeaveWorld;
|
||||
import org.l2jmobius.gameserver.util.OfflineTradeUtil;
|
||||
|
||||
/**
|
||||
* @author Dezmond_snz
|
||||
@ -80,6 +86,37 @@ public class DlgAnswer implements IClientIncomingPacket
|
||||
AdminCommandHandler.getInstance().useAdminCommand(player, cmd, false);
|
||||
}
|
||||
}
|
||||
else if (_messageId == SystemMessageId.DO_YOU_WISH_TO_EXIT_THE_GAME.getId())
|
||||
{
|
||||
if ((_answer == 0) || !Config.ENABLE_OFFLINE_COMMAND || (!Config.OFFLINE_TRADE_ENABLE && !Config.OFFLINE_CRAFT_ENABLE))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (!player.isInStoreMode())
|
||||
{
|
||||
player.sendPacket(SystemMessageId.PRIVATE_STORE_ALREADY_CLOSED);
|
||||
player.sendPacket(ActionFailed.STATIC_PACKET);
|
||||
return;
|
||||
}
|
||||
|
||||
if (player.isInInstance() || player.isInVehicle() || !player.canLogout())
|
||||
{
|
||||
player.sendPacket(ActionFailed.STATIC_PACKET);
|
||||
return;
|
||||
}
|
||||
|
||||
// Unregister from olympiad.
|
||||
if (OlympiadManager.getInstance().isRegistered(player))
|
||||
{
|
||||
OlympiadManager.getInstance().unRegisterNoble(player);
|
||||
}
|
||||
|
||||
if (!OfflineTradeUtil.enteredOfflineMode(player))
|
||||
{
|
||||
Disconnection.of(client, player).defaultSequence(LeaveWorld.STATIC_PACKET);
|
||||
}
|
||||
}
|
||||
else if ((_messageId == SystemMessageId.C1_IS_ATTEMPTING_TO_DO_A_RESURRECTION_THAT_RESTORES_S2_S3_XP_ACCEPT.getId()) || (_messageId == SystemMessageId.YOUR_CHARM_OF_COURAGE_IS_TRYING_TO_RESURRECT_YOU_WOULD_YOU_LIKE_TO_RESURRECT_NOW.getId()))
|
||||
{
|
||||
player.reviveAnswer(_answer);
|
||||
|
@ -41,3 +41,6 @@ OfflineDisconnectSameAccount = False
|
||||
# Uses more datatabase resources, but helps if server shuts down unexpectedly.
|
||||
StoreOfflineTradeInRealtime = True
|
||||
|
||||
# Enable .offline command for logging out.
|
||||
EnableOfflineCommand = True
|
||||
|
||||
|
@ -335,6 +335,7 @@ import handlers.voicedcommandhandlers.Banking;
|
||||
import handlers.voicedcommandhandlers.ChangePassword;
|
||||
import handlers.voicedcommandhandlers.ChatAdmin;
|
||||
import handlers.voicedcommandhandlers.Lang;
|
||||
import handlers.voicedcommandhandlers.Offline;
|
||||
import handlers.voicedcommandhandlers.Premium;
|
||||
|
||||
/**
|
||||
@ -590,6 +591,7 @@ public class MasterHandler
|
||||
Config.CHAT_ADMIN ? ChatAdmin.class : null,
|
||||
Config.MULTILANG_ENABLE && Config.MULTILANG_VOICED_ALLOW ? Lang.class : null,
|
||||
Config.ALLOW_CHANGE_PASSWORD ? ChangePassword.class : null,
|
||||
Config.ENABLE_OFFLINE_COMMAND && (Config.OFFLINE_TRADE_ENABLE || Config.OFFLINE_CRAFT_ENABLE) ? Offline.class : null,
|
||||
Config.PREMIUM_SYSTEM_ENABLED ? Premium.class : null,
|
||||
Config.AUTO_POTIONS_ENABLED ? AutoPotion.class : null,
|
||||
},
|
||||
|
@ -0,0 +1,65 @@
|
||||
/*
|
||||
* This file is part of the L2J Mobius project.
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package handlers.voicedcommandhandlers;
|
||||
|
||||
import org.l2jmobius.Config;
|
||||
import org.l2jmobius.gameserver.handler.IVoicedCommandHandler;
|
||||
import org.l2jmobius.gameserver.model.actor.Player;
|
||||
import org.l2jmobius.gameserver.network.SystemMessageId;
|
||||
import org.l2jmobius.gameserver.network.serverpackets.ActionFailed;
|
||||
import org.l2jmobius.gameserver.network.serverpackets.ConfirmDlg;
|
||||
|
||||
/**
|
||||
* @author Mobius
|
||||
*/
|
||||
public class Offline implements IVoicedCommandHandler
|
||||
{
|
||||
private static final String[] VOICED_COMMANDS =
|
||||
{
|
||||
"offline"
|
||||
};
|
||||
|
||||
@Override
|
||||
public boolean useVoicedCommand(String command, Player player, String target)
|
||||
{
|
||||
if (command.equals("offline") && Config.ENABLE_OFFLINE_COMMAND && (Config.OFFLINE_TRADE_ENABLE || Config.OFFLINE_CRAFT_ENABLE))
|
||||
{
|
||||
if (!player.isInStoreMode())
|
||||
{
|
||||
player.sendPacket(SystemMessageId.PRIVATE_STORE_ALREADY_CLOSED);
|
||||
player.sendPacket(ActionFailed.STATIC_PACKET);
|
||||
return false;
|
||||
}
|
||||
|
||||
if (player.isInInstance() || player.isInVehicle() || !player.canLogout())
|
||||
{
|
||||
player.sendPacket(ActionFailed.STATIC_PACKET);
|
||||
return false;
|
||||
}
|
||||
|
||||
player.sendPacket(new ConfirmDlg(SystemMessageId.DO_YOU_WISH_TO_EXIT_THE_GAME));
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String[] getVoicedCommandList()
|
||||
{
|
||||
return VOICED_COMMANDS;
|
||||
}
|
||||
}
|
@ -1062,6 +1062,7 @@ public class Config
|
||||
public static int OFFLINE_NAME_COLOR;
|
||||
public static boolean OFFLINE_FAME;
|
||||
public static boolean STORE_OFFLINE_TRADE_IN_REALTIME;
|
||||
public static boolean ENABLE_OFFLINE_COMMAND;
|
||||
public static boolean DISPLAY_SERVER_TIME;
|
||||
public static int BUFFER_MAX_SCHEMES;
|
||||
public static int BUFFER_STATIC_BUFF_COST;
|
||||
@ -3219,6 +3220,7 @@ public class Config
|
||||
OFFLINE_DISCONNECT_FINISHED = offlineTradeConfig.getBoolean("OfflineDisconnectFinished", true);
|
||||
OFFLINE_DISCONNECT_SAME_ACCOUNT = offlineTradeConfig.getBoolean("OfflineDisconnectSameAccount", false);
|
||||
STORE_OFFLINE_TRADE_IN_REALTIME = offlineTradeConfig.getBoolean("StoreOfflineTradeInRealtime", true);
|
||||
ENABLE_OFFLINE_COMMAND = offlineTradeConfig.getBoolean("EnableOfflineCommand", true);
|
||||
|
||||
// Load PasswordChange config file (if exists)
|
||||
final PropertiesParser passwordChangeConfig = new PropertiesParser(CUSTOM_PASSWORD_CHANGE_CONFIG_FILE);
|
||||
|
@ -16,6 +16,7 @@
|
||||
*/
|
||||
package org.l2jmobius.gameserver.network.clientpackets;
|
||||
|
||||
import org.l2jmobius.Config;
|
||||
import org.l2jmobius.commons.network.PacketReader;
|
||||
import org.l2jmobius.gameserver.enums.PlayerAction;
|
||||
import org.l2jmobius.gameserver.handler.AdminCommandHandler;
|
||||
@ -26,8 +27,13 @@ import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerDlgAns
|
||||
import org.l2jmobius.gameserver.model.events.returns.TerminateReturn;
|
||||
import org.l2jmobius.gameserver.model.holders.DoorRequestHolder;
|
||||
import org.l2jmobius.gameserver.model.holders.SummonRequestHolder;
|
||||
import org.l2jmobius.gameserver.model.olympiad.OlympiadManager;
|
||||
import org.l2jmobius.gameserver.network.Disconnection;
|
||||
import org.l2jmobius.gameserver.network.GameClient;
|
||||
import org.l2jmobius.gameserver.network.SystemMessageId;
|
||||
import org.l2jmobius.gameserver.network.serverpackets.ActionFailed;
|
||||
import org.l2jmobius.gameserver.network.serverpackets.LeaveWorld;
|
||||
import org.l2jmobius.gameserver.util.OfflineTradeUtil;
|
||||
|
||||
/**
|
||||
* @author Dezmond_snz
|
||||
@ -80,6 +86,37 @@ public class DlgAnswer implements IClientIncomingPacket
|
||||
AdminCommandHandler.getInstance().useAdminCommand(player, cmd, false);
|
||||
}
|
||||
}
|
||||
else if (_messageId == SystemMessageId.DO_YOU_WISH_TO_EXIT_THE_GAME.getId())
|
||||
{
|
||||
if ((_answer == 0) || !Config.ENABLE_OFFLINE_COMMAND || (!Config.OFFLINE_TRADE_ENABLE && !Config.OFFLINE_CRAFT_ENABLE))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (!player.isInStoreMode())
|
||||
{
|
||||
player.sendPacket(SystemMessageId.PRIVATE_STORE_ALREADY_CLOSED);
|
||||
player.sendPacket(ActionFailed.STATIC_PACKET);
|
||||
return;
|
||||
}
|
||||
|
||||
if (player.isInInstance() || player.isInVehicle() || !player.canLogout())
|
||||
{
|
||||
player.sendPacket(ActionFailed.STATIC_PACKET);
|
||||
return;
|
||||
}
|
||||
|
||||
// Unregister from olympiad.
|
||||
if (OlympiadManager.getInstance().isRegistered(player))
|
||||
{
|
||||
OlympiadManager.getInstance().unRegisterNoble(player);
|
||||
}
|
||||
|
||||
if (!OfflineTradeUtil.enteredOfflineMode(player))
|
||||
{
|
||||
Disconnection.of(client, player).defaultSequence(LeaveWorld.STATIC_PACKET);
|
||||
}
|
||||
}
|
||||
else if ((_messageId == SystemMessageId.C1_IS_ATTEMPTING_TO_DO_A_RESURRECTION_THAT_RESTORES_S2_S3_XP_ACCEPT.getId()) || (_messageId == SystemMessageId.YOUR_CHARM_OF_COURAGE_IS_TRYING_TO_RESURRECT_YOU_WOULD_YOU_LIKE_TO_RESURRECT_NOW.getId()))
|
||||
{
|
||||
player.reviveAnswer(_answer);
|
||||
|
@ -41,3 +41,6 @@ OfflineDisconnectSameAccount = False
|
||||
# Uses more datatabase resources, but helps if server shuts down unexpectedly.
|
||||
StoreOfflineTradeInRealtime = True
|
||||
|
||||
# Enable .offline command for logging out.
|
||||
EnableOfflineCommand = True
|
||||
|
||||
|
@ -336,6 +336,7 @@ import handlers.voicedcommandhandlers.Banking;
|
||||
import handlers.voicedcommandhandlers.ChangePassword;
|
||||
import handlers.voicedcommandhandlers.ChatAdmin;
|
||||
import handlers.voicedcommandhandlers.Lang;
|
||||
import handlers.voicedcommandhandlers.Offline;
|
||||
import handlers.voicedcommandhandlers.Premium;
|
||||
|
||||
/**
|
||||
@ -592,6 +593,7 @@ public class MasterHandler
|
||||
Config.CHAT_ADMIN ? ChatAdmin.class : null,
|
||||
Config.MULTILANG_ENABLE && Config.MULTILANG_VOICED_ALLOW ? Lang.class : null,
|
||||
Config.ALLOW_CHANGE_PASSWORD ? ChangePassword.class : null,
|
||||
Config.ENABLE_OFFLINE_COMMAND && (Config.OFFLINE_TRADE_ENABLE || Config.OFFLINE_CRAFT_ENABLE) ? Offline.class : null,
|
||||
Config.PREMIUM_SYSTEM_ENABLED ? Premium.class : null,
|
||||
Config.AUTO_POTIONS_ENABLED ? AutoPotion.class : null,
|
||||
},
|
||||
|
@ -0,0 +1,65 @@
|
||||
/*
|
||||
* This file is part of the L2J Mobius project.
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package handlers.voicedcommandhandlers;
|
||||
|
||||
import org.l2jmobius.Config;
|
||||
import org.l2jmobius.gameserver.handler.IVoicedCommandHandler;
|
||||
import org.l2jmobius.gameserver.model.actor.Player;
|
||||
import org.l2jmobius.gameserver.network.SystemMessageId;
|
||||
import org.l2jmobius.gameserver.network.serverpackets.ActionFailed;
|
||||
import org.l2jmobius.gameserver.network.serverpackets.ConfirmDlg;
|
||||
|
||||
/**
|
||||
* @author Mobius
|
||||
*/
|
||||
public class Offline implements IVoicedCommandHandler
|
||||
{
|
||||
private static final String[] VOICED_COMMANDS =
|
||||
{
|
||||
"offline"
|
||||
};
|
||||
|
||||
@Override
|
||||
public boolean useVoicedCommand(String command, Player player, String target)
|
||||
{
|
||||
if (command.equals("offline") && Config.ENABLE_OFFLINE_COMMAND && (Config.OFFLINE_TRADE_ENABLE || Config.OFFLINE_CRAFT_ENABLE))
|
||||
{
|
||||
if (!player.isInStoreMode())
|
||||
{
|
||||
player.sendPacket(SystemMessageId.PRIVATE_STORE_ALREADY_CLOSED);
|
||||
player.sendPacket(ActionFailed.STATIC_PACKET);
|
||||
return false;
|
||||
}
|
||||
|
||||
if (player.isInInstance() || player.isInVehicle() || !player.canLogout())
|
||||
{
|
||||
player.sendPacket(ActionFailed.STATIC_PACKET);
|
||||
return false;
|
||||
}
|
||||
|
||||
player.sendPacket(new ConfirmDlg(SystemMessageId.DO_YOU_WISH_TO_EXIT_THE_GAME));
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String[] getVoicedCommandList()
|
||||
{
|
||||
return VOICED_COMMANDS;
|
||||
}
|
||||
}
|
@ -1061,6 +1061,7 @@ public class Config
|
||||
public static int OFFLINE_NAME_COLOR;
|
||||
public static boolean OFFLINE_FAME;
|
||||
public static boolean STORE_OFFLINE_TRADE_IN_REALTIME;
|
||||
public static boolean ENABLE_OFFLINE_COMMAND;
|
||||
public static boolean DISPLAY_SERVER_TIME;
|
||||
public static int BUFFER_MAX_SCHEMES;
|
||||
public static int BUFFER_STATIC_BUFF_COST;
|
||||
@ -3217,6 +3218,7 @@ public class Config
|
||||
OFFLINE_DISCONNECT_FINISHED = offlineTradeConfig.getBoolean("OfflineDisconnectFinished", true);
|
||||
OFFLINE_DISCONNECT_SAME_ACCOUNT = offlineTradeConfig.getBoolean("OfflineDisconnectSameAccount", false);
|
||||
STORE_OFFLINE_TRADE_IN_REALTIME = offlineTradeConfig.getBoolean("StoreOfflineTradeInRealtime", true);
|
||||
ENABLE_OFFLINE_COMMAND = offlineTradeConfig.getBoolean("EnableOfflineCommand", true);
|
||||
|
||||
// Load PasswordChange config file (if exists)
|
||||
final PropertiesParser passwordChangeConfig = new PropertiesParser(CUSTOM_PASSWORD_CHANGE_CONFIG_FILE);
|
||||
|
@ -16,6 +16,7 @@
|
||||
*/
|
||||
package org.l2jmobius.gameserver.network.clientpackets;
|
||||
|
||||
import org.l2jmobius.Config;
|
||||
import org.l2jmobius.commons.network.PacketReader;
|
||||
import org.l2jmobius.gameserver.enums.PlayerAction;
|
||||
import org.l2jmobius.gameserver.handler.AdminCommandHandler;
|
||||
@ -26,8 +27,13 @@ import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerDlgAns
|
||||
import org.l2jmobius.gameserver.model.events.returns.TerminateReturn;
|
||||
import org.l2jmobius.gameserver.model.holders.DoorRequestHolder;
|
||||
import org.l2jmobius.gameserver.model.holders.SummonRequestHolder;
|
||||
import org.l2jmobius.gameserver.model.olympiad.OlympiadManager;
|
||||
import org.l2jmobius.gameserver.network.Disconnection;
|
||||
import org.l2jmobius.gameserver.network.GameClient;
|
||||
import org.l2jmobius.gameserver.network.SystemMessageId;
|
||||
import org.l2jmobius.gameserver.network.serverpackets.ActionFailed;
|
||||
import org.l2jmobius.gameserver.network.serverpackets.LeaveWorld;
|
||||
import org.l2jmobius.gameserver.util.OfflineTradeUtil;
|
||||
|
||||
/**
|
||||
* @author Dezmond_snz
|
||||
@ -80,6 +86,37 @@ public class DlgAnswer implements IClientIncomingPacket
|
||||
AdminCommandHandler.getInstance().useAdminCommand(player, cmd, false);
|
||||
}
|
||||
}
|
||||
else if (_messageId == SystemMessageId.DO_YOU_WISH_TO_EXIT_THE_GAME.getId())
|
||||
{
|
||||
if ((_answer == 0) || !Config.ENABLE_OFFLINE_COMMAND || (!Config.OFFLINE_TRADE_ENABLE && !Config.OFFLINE_CRAFT_ENABLE))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (!player.isInStoreMode())
|
||||
{
|
||||
player.sendPacket(SystemMessageId.PRIVATE_STORE_ALREADY_CLOSED);
|
||||
player.sendPacket(ActionFailed.STATIC_PACKET);
|
||||
return;
|
||||
}
|
||||
|
||||
if (player.isInInstance() || player.isInVehicle() || !player.canLogout())
|
||||
{
|
||||
player.sendPacket(ActionFailed.STATIC_PACKET);
|
||||
return;
|
||||
}
|
||||
|
||||
// Unregister from olympiad.
|
||||
if (OlympiadManager.getInstance().isRegistered(player))
|
||||
{
|
||||
OlympiadManager.getInstance().unRegisterNoble(player);
|
||||
}
|
||||
|
||||
if (!OfflineTradeUtil.enteredOfflineMode(player))
|
||||
{
|
||||
Disconnection.of(client, player).defaultSequence(LeaveWorld.STATIC_PACKET);
|
||||
}
|
||||
}
|
||||
else if ((_messageId == SystemMessageId.C1_IS_ATTEMPTING_TO_DO_A_RESURRECTION_THAT_RESTORES_S2_S3_XP_ACCEPT.getId()) || (_messageId == SystemMessageId.YOUR_CHARM_OF_COURAGE_IS_TRYING_TO_RESURRECT_YOU_WOULD_YOU_LIKE_TO_RESURRECT_NOW.getId()))
|
||||
{
|
||||
player.reviveAnswer(_answer);
|
||||
|
@ -41,3 +41,6 @@ OfflineDisconnectSameAccount = False
|
||||
# Uses more datatabase resources, but helps if server shuts down unexpectedly.
|
||||
StoreOfflineTradeInRealtime = True
|
||||
|
||||
# Enable .offline command for logging out.
|
||||
EnableOfflineCommand = True
|
||||
|
||||
|
@ -336,6 +336,7 @@ import handlers.voicedcommandhandlers.Banking;
|
||||
import handlers.voicedcommandhandlers.ChangePassword;
|
||||
import handlers.voicedcommandhandlers.ChatAdmin;
|
||||
import handlers.voicedcommandhandlers.Lang;
|
||||
import handlers.voicedcommandhandlers.Offline;
|
||||
import handlers.voicedcommandhandlers.Premium;
|
||||
|
||||
/**
|
||||
@ -592,6 +593,7 @@ public class MasterHandler
|
||||
Config.CHAT_ADMIN ? ChatAdmin.class : null,
|
||||
Config.MULTILANG_ENABLE && Config.MULTILANG_VOICED_ALLOW ? Lang.class : null,
|
||||
Config.ALLOW_CHANGE_PASSWORD ? ChangePassword.class : null,
|
||||
Config.ENABLE_OFFLINE_COMMAND && (Config.OFFLINE_TRADE_ENABLE || Config.OFFLINE_CRAFT_ENABLE) ? Offline.class : null,
|
||||
Config.PREMIUM_SYSTEM_ENABLED ? Premium.class : null,
|
||||
Config.AUTO_POTIONS_ENABLED ? AutoPotion.class : null,
|
||||
},
|
||||
|
65
L2J_Mobius_Classic_2.5_Zaken/dist/game/data/scripts/handlers/voicedcommandhandlers/Offline.java
vendored
Normal file
65
L2J_Mobius_Classic_2.5_Zaken/dist/game/data/scripts/handlers/voicedcommandhandlers/Offline.java
vendored
Normal file
@ -0,0 +1,65 @@
|
||||
/*
|
||||
* This file is part of the L2J Mobius project.
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package handlers.voicedcommandhandlers;
|
||||
|
||||
import org.l2jmobius.Config;
|
||||
import org.l2jmobius.gameserver.handler.IVoicedCommandHandler;
|
||||
import org.l2jmobius.gameserver.model.actor.Player;
|
||||
import org.l2jmobius.gameserver.network.SystemMessageId;
|
||||
import org.l2jmobius.gameserver.network.serverpackets.ActionFailed;
|
||||
import org.l2jmobius.gameserver.network.serverpackets.ConfirmDlg;
|
||||
|
||||
/**
|
||||
* @author Mobius
|
||||
*/
|
||||
public class Offline implements IVoicedCommandHandler
|
||||
{
|
||||
private static final String[] VOICED_COMMANDS =
|
||||
{
|
||||
"offline"
|
||||
};
|
||||
|
||||
@Override
|
||||
public boolean useVoicedCommand(String command, Player player, String target)
|
||||
{
|
||||
if (command.equals("offline") && Config.ENABLE_OFFLINE_COMMAND && (Config.OFFLINE_TRADE_ENABLE || Config.OFFLINE_CRAFT_ENABLE))
|
||||
{
|
||||
if (!player.isInStoreMode())
|
||||
{
|
||||
player.sendPacket(SystemMessageId.PRIVATE_STORE_ALREADY_CLOSED);
|
||||
player.sendPacket(ActionFailed.STATIC_PACKET);
|
||||
return false;
|
||||
}
|
||||
|
||||
if (player.isInInstance() || player.isInVehicle() || !player.canLogout())
|
||||
{
|
||||
player.sendPacket(ActionFailed.STATIC_PACKET);
|
||||
return false;
|
||||
}
|
||||
|
||||
player.sendPacket(new ConfirmDlg(SystemMessageId.DO_YOU_WISH_TO_EXIT_THE_GAME));
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String[] getVoicedCommandList()
|
||||
{
|
||||
return VOICED_COMMANDS;
|
||||
}
|
||||
}
|
@ -1065,6 +1065,7 @@ public class Config
|
||||
public static int OFFLINE_NAME_COLOR;
|
||||
public static boolean OFFLINE_FAME;
|
||||
public static boolean STORE_OFFLINE_TRADE_IN_REALTIME;
|
||||
public static boolean ENABLE_OFFLINE_COMMAND;
|
||||
public static boolean DISPLAY_SERVER_TIME;
|
||||
public static int BUFFER_MAX_SCHEMES;
|
||||
public static int BUFFER_STATIC_BUFF_COST;
|
||||
@ -3223,6 +3224,7 @@ public class Config
|
||||
OFFLINE_DISCONNECT_FINISHED = offlineTradeConfig.getBoolean("OfflineDisconnectFinished", true);
|
||||
OFFLINE_DISCONNECT_SAME_ACCOUNT = offlineTradeConfig.getBoolean("OfflineDisconnectSameAccount", false);
|
||||
STORE_OFFLINE_TRADE_IN_REALTIME = offlineTradeConfig.getBoolean("StoreOfflineTradeInRealtime", true);
|
||||
ENABLE_OFFLINE_COMMAND = offlineTradeConfig.getBoolean("EnableOfflineCommand", true);
|
||||
|
||||
// Load PasswordChange config file (if exists)
|
||||
final PropertiesParser passwordChangeConfig = new PropertiesParser(CUSTOM_PASSWORD_CHANGE_CONFIG_FILE);
|
||||
|
@ -16,6 +16,7 @@
|
||||
*/
|
||||
package org.l2jmobius.gameserver.network.clientpackets;
|
||||
|
||||
import org.l2jmobius.Config;
|
||||
import org.l2jmobius.commons.network.PacketReader;
|
||||
import org.l2jmobius.gameserver.enums.PlayerAction;
|
||||
import org.l2jmobius.gameserver.handler.AdminCommandHandler;
|
||||
@ -26,8 +27,13 @@ import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerDlgAns
|
||||
import org.l2jmobius.gameserver.model.events.returns.TerminateReturn;
|
||||
import org.l2jmobius.gameserver.model.holders.DoorRequestHolder;
|
||||
import org.l2jmobius.gameserver.model.holders.SummonRequestHolder;
|
||||
import org.l2jmobius.gameserver.model.olympiad.OlympiadManager;
|
||||
import org.l2jmobius.gameserver.network.Disconnection;
|
||||
import org.l2jmobius.gameserver.network.GameClient;
|
||||
import org.l2jmobius.gameserver.network.SystemMessageId;
|
||||
import org.l2jmobius.gameserver.network.serverpackets.ActionFailed;
|
||||
import org.l2jmobius.gameserver.network.serverpackets.LeaveWorld;
|
||||
import org.l2jmobius.gameserver.util.OfflineTradeUtil;
|
||||
|
||||
/**
|
||||
* @author Dezmond_snz
|
||||
@ -80,6 +86,37 @@ public class DlgAnswer implements IClientIncomingPacket
|
||||
AdminCommandHandler.getInstance().useAdminCommand(player, cmd, false);
|
||||
}
|
||||
}
|
||||
else if (_messageId == SystemMessageId.DO_YOU_WISH_TO_EXIT_THE_GAME.getId())
|
||||
{
|
||||
if ((_answer == 0) || !Config.ENABLE_OFFLINE_COMMAND || (!Config.OFFLINE_TRADE_ENABLE && !Config.OFFLINE_CRAFT_ENABLE))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (!player.isInStoreMode())
|
||||
{
|
||||
player.sendPacket(SystemMessageId.PRIVATE_STORE_ALREADY_CLOSED);
|
||||
player.sendPacket(ActionFailed.STATIC_PACKET);
|
||||
return;
|
||||
}
|
||||
|
||||
if (player.isInInstance() || player.isInVehicle() || !player.canLogout())
|
||||
{
|
||||
player.sendPacket(ActionFailed.STATIC_PACKET);
|
||||
return;
|
||||
}
|
||||
|
||||
// Unregister from olympiad.
|
||||
if (OlympiadManager.getInstance().isRegistered(player))
|
||||
{
|
||||
OlympiadManager.getInstance().unRegisterNoble(player);
|
||||
}
|
||||
|
||||
if (!OfflineTradeUtil.enteredOfflineMode(player))
|
||||
{
|
||||
Disconnection.of(client, player).defaultSequence(LeaveWorld.STATIC_PACKET);
|
||||
}
|
||||
}
|
||||
else if ((_messageId == SystemMessageId.C1_IS_ATTEMPTING_TO_DO_A_RESURRECTION_THAT_RESTORES_S2_S3_XP_ACCEPT.getId()) || (_messageId == SystemMessageId.YOUR_CHARM_OF_COURAGE_IS_TRYING_TO_RESURRECT_YOU_WOULD_YOU_LIKE_TO_RESURRECT_NOW.getId()))
|
||||
{
|
||||
player.reviveAnswer(_answer);
|
||||
|
@ -41,3 +41,6 @@ OfflineDisconnectSameAccount = False
|
||||
# Uses more datatabase resources, but helps if server shuts down unexpectedly.
|
||||
StoreOfflineTradeInRealtime = True
|
||||
|
||||
# Enable .offline command for logging out.
|
||||
EnableOfflineCommand = True
|
||||
|
||||
|
@ -336,6 +336,7 @@ import handlers.voicedcommandhandlers.Banking;
|
||||
import handlers.voicedcommandhandlers.ChangePassword;
|
||||
import handlers.voicedcommandhandlers.ChatAdmin;
|
||||
import handlers.voicedcommandhandlers.Lang;
|
||||
import handlers.voicedcommandhandlers.Offline;
|
||||
import handlers.voicedcommandhandlers.Premium;
|
||||
|
||||
/**
|
||||
@ -592,6 +593,7 @@ public class MasterHandler
|
||||
Config.CHAT_ADMIN ? ChatAdmin.class : null,
|
||||
Config.MULTILANG_ENABLE && Config.MULTILANG_VOICED_ALLOW ? Lang.class : null,
|
||||
Config.ALLOW_CHANGE_PASSWORD ? ChangePassword.class : null,
|
||||
Config.ENABLE_OFFLINE_COMMAND && (Config.OFFLINE_TRADE_ENABLE || Config.OFFLINE_CRAFT_ENABLE) ? Offline.class : null,
|
||||
Config.PREMIUM_SYSTEM_ENABLED ? Premium.class : null,
|
||||
Config.AUTO_POTIONS_ENABLED ? AutoPotion.class : null,
|
||||
},
|
||||
|
@ -0,0 +1,65 @@
|
||||
/*
|
||||
* This file is part of the L2J Mobius project.
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package handlers.voicedcommandhandlers;
|
||||
|
||||
import org.l2jmobius.Config;
|
||||
import org.l2jmobius.gameserver.handler.IVoicedCommandHandler;
|
||||
import org.l2jmobius.gameserver.model.actor.Player;
|
||||
import org.l2jmobius.gameserver.network.SystemMessageId;
|
||||
import org.l2jmobius.gameserver.network.serverpackets.ActionFailed;
|
||||
import org.l2jmobius.gameserver.network.serverpackets.ConfirmDlg;
|
||||
|
||||
/**
|
||||
* @author Mobius
|
||||
*/
|
||||
public class Offline implements IVoicedCommandHandler
|
||||
{
|
||||
private static final String[] VOICED_COMMANDS =
|
||||
{
|
||||
"offline"
|
||||
};
|
||||
|
||||
@Override
|
||||
public boolean useVoicedCommand(String command, Player player, String target)
|
||||
{
|
||||
if (command.equals("offline") && Config.ENABLE_OFFLINE_COMMAND && (Config.OFFLINE_TRADE_ENABLE || Config.OFFLINE_CRAFT_ENABLE))
|
||||
{
|
||||
if (!player.isInStoreMode())
|
||||
{
|
||||
player.sendPacket(SystemMessageId.PRIVATE_STORE_ALREADY_CLOSED);
|
||||
player.sendPacket(ActionFailed.STATIC_PACKET);
|
||||
return false;
|
||||
}
|
||||
|
||||
if (player.isInInstance() || player.isInVehicle() || !player.canLogout())
|
||||
{
|
||||
player.sendPacket(ActionFailed.STATIC_PACKET);
|
||||
return false;
|
||||
}
|
||||
|
||||
player.sendPacket(new ConfirmDlg(SystemMessageId.DO_YOU_WISH_TO_EXIT_THE_GAME));
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String[] getVoicedCommandList()
|
||||
{
|
||||
return VOICED_COMMANDS;
|
||||
}
|
||||
}
|
@ -1065,6 +1065,7 @@ public class Config
|
||||
public static int OFFLINE_NAME_COLOR;
|
||||
public static boolean OFFLINE_FAME;
|
||||
public static boolean STORE_OFFLINE_TRADE_IN_REALTIME;
|
||||
public static boolean ENABLE_OFFLINE_COMMAND;
|
||||
public static boolean DISPLAY_SERVER_TIME;
|
||||
public static int BUFFER_MAX_SCHEMES;
|
||||
public static int BUFFER_STATIC_BUFF_COST;
|
||||
@ -3223,6 +3224,7 @@ public class Config
|
||||
OFFLINE_DISCONNECT_FINISHED = offlineTradeConfig.getBoolean("OfflineDisconnectFinished", true);
|
||||
OFFLINE_DISCONNECT_SAME_ACCOUNT = offlineTradeConfig.getBoolean("OfflineDisconnectSameAccount", false);
|
||||
STORE_OFFLINE_TRADE_IN_REALTIME = offlineTradeConfig.getBoolean("StoreOfflineTradeInRealtime", true);
|
||||
ENABLE_OFFLINE_COMMAND = offlineTradeConfig.getBoolean("EnableOfflineCommand", true);
|
||||
|
||||
// Load PasswordChange config file (if exists)
|
||||
final PropertiesParser passwordChangeConfig = new PropertiesParser(CUSTOM_PASSWORD_CHANGE_CONFIG_FILE);
|
||||
|
@ -16,6 +16,7 @@
|
||||
*/
|
||||
package org.l2jmobius.gameserver.network.clientpackets;
|
||||
|
||||
import org.l2jmobius.Config;
|
||||
import org.l2jmobius.commons.network.PacketReader;
|
||||
import org.l2jmobius.gameserver.enums.PlayerAction;
|
||||
import org.l2jmobius.gameserver.handler.AdminCommandHandler;
|
||||
@ -26,8 +27,13 @@ import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerDlgAns
|
||||
import org.l2jmobius.gameserver.model.events.returns.TerminateReturn;
|
||||
import org.l2jmobius.gameserver.model.holders.DoorRequestHolder;
|
||||
import org.l2jmobius.gameserver.model.holders.SummonRequestHolder;
|
||||
import org.l2jmobius.gameserver.model.olympiad.OlympiadManager;
|
||||
import org.l2jmobius.gameserver.network.Disconnection;
|
||||
import org.l2jmobius.gameserver.network.GameClient;
|
||||
import org.l2jmobius.gameserver.network.SystemMessageId;
|
||||
import org.l2jmobius.gameserver.network.serverpackets.ActionFailed;
|
||||
import org.l2jmobius.gameserver.network.serverpackets.LeaveWorld;
|
||||
import org.l2jmobius.gameserver.util.OfflineTradeUtil;
|
||||
|
||||
/**
|
||||
* @author Dezmond_snz
|
||||
@ -80,6 +86,37 @@ public class DlgAnswer implements IClientIncomingPacket
|
||||
AdminCommandHandler.getInstance().useAdminCommand(player, cmd, false);
|
||||
}
|
||||
}
|
||||
else if (_messageId == SystemMessageId.DO_YOU_WISH_TO_EXIT_THE_GAME.getId())
|
||||
{
|
||||
if ((_answer == 0) || !Config.ENABLE_OFFLINE_COMMAND || (!Config.OFFLINE_TRADE_ENABLE && !Config.OFFLINE_CRAFT_ENABLE))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (!player.isInStoreMode())
|
||||
{
|
||||
player.sendPacket(SystemMessageId.PRIVATE_STORE_ALREADY_CLOSED);
|
||||
player.sendPacket(ActionFailed.STATIC_PACKET);
|
||||
return;
|
||||
}
|
||||
|
||||
if (player.isInInstance() || player.isInVehicle() || !player.canLogout())
|
||||
{
|
||||
player.sendPacket(ActionFailed.STATIC_PACKET);
|
||||
return;
|
||||
}
|
||||
|
||||
// Unregister from olympiad.
|
||||
if (OlympiadManager.getInstance().isRegistered(player))
|
||||
{
|
||||
OlympiadManager.getInstance().unRegisterNoble(player);
|
||||
}
|
||||
|
||||
if (!OfflineTradeUtil.enteredOfflineMode(player))
|
||||
{
|
||||
Disconnection.of(client, player).defaultSequence(LeaveWorld.STATIC_PACKET);
|
||||
}
|
||||
}
|
||||
else if ((_messageId == SystemMessageId.C1_IS_ATTEMPTING_TO_DO_A_RESURRECTION_THAT_RESTORES_S2_S3_XP_ACCEPT.getId()) || (_messageId == SystemMessageId.YOUR_CHARM_OF_COURAGE_IS_TRYING_TO_RESURRECT_YOU_WOULD_YOU_LIKE_TO_RESURRECT_NOW.getId()))
|
||||
{
|
||||
player.reviveAnswer(_answer);
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user