From a3638948826b154d1472c6b43e86c40c90accdfa Mon Sep 17 00:00:00 2001 From: MedicOP Date: Fri, 18 Jan 2019 02:39:47 +0100 Subject: [PATCH] Add !warpmap and !warparea commands (#337) --- src/client/command/CommandsExecutor.java | 2 + .../command/commands/gm2/WarpAreaCommand.java | 65 +++++++++++++++++++ .../command/commands/gm2/WarpMapCommand.java | 59 +++++++++++++++++ 3 files changed, 126 insertions(+) create mode 100644 src/client/command/commands/gm2/WarpAreaCommand.java create mode 100644 src/client/command/commands/gm2/WarpMapCommand.java diff --git a/src/client/command/CommandsExecutor.java b/src/client/command/CommandsExecutor.java index 3d6570b21f..975f73fa7f 100644 --- a/src/client/command/CommandsExecutor.java +++ b/src/client/command/CommandsExecutor.java @@ -310,6 +310,8 @@ public class CommandsExecutor { addCommand("timer", 3, TimerCommand.class); addCommand("timermap", 3, TimerMapCommand.class); addCommand("timerall", 3, TimerAllCommand.class); + addCommand("warpmap", 3, WarpMapCommand.class); + addCommand("warparea", 3, WarpAreaCommand.class); commandsNameDesc.add(levelCommandsCursor); } diff --git a/src/client/command/commands/gm2/WarpAreaCommand.java b/src/client/command/commands/gm2/WarpAreaCommand.java new file mode 100644 index 0000000000..d9d97e9f48 --- /dev/null +++ b/src/client/command/commands/gm2/WarpAreaCommand.java @@ -0,0 +1,65 @@ +/* + This file is part of the HeavenMS MapleStory Server, commands OdinMS-based + Copyleft (L) 2016 - 2018 RonanLana + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as + published by the Free Software Foundation version 3 as published by + the Free Software Foundation. You may not use, modify or distribute + this program under any other version of the GNU Affero General Public + License. + + 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 Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . +*/ + +/* + @Author: MedicOP - Add warparea command +*/ +package client.command.commands.gm2; + +import client.MapleCharacter; +import client.MapleClient; +import client.command.Command; +import server.maps.MapleMap; + +import java.awt.*; + +public class WarpAreaCommand extends Command { + { + setDescription(""); + } + + @Override + public void execute(MapleClient c, String[] params) { + MapleCharacter player = c.getPlayer(); + if (params.length < 1) { + player.yellowMessage("Syntax: !warparea "); + return; + } + + try { + MapleMap target = c.getChannelServer().getMapFactory().getMap(Integer.parseInt(params[0])); + if (target == null) { + player.yellowMessage("Map ID " + params[0] + " is invalid."); + return; + } + + Point pos = player.getPosition(); + + for (MapleCharacter victim : player.getMap().getCharacters()) { + if (victim.getPosition().distanceSq(pos) <= 50000) { + victim.saveLocationOnWarp(); + victim.changeMap(target, target.getRandomPlayerSpawnpoint()); + } + } + } catch (Exception ex) { + player.yellowMessage("Map ID " + params[0] + " is invalid."); + } + } +} diff --git a/src/client/command/commands/gm2/WarpMapCommand.java b/src/client/command/commands/gm2/WarpMapCommand.java new file mode 100644 index 0000000000..be8e60c295 --- /dev/null +++ b/src/client/command/commands/gm2/WarpMapCommand.java @@ -0,0 +1,59 @@ +/* + This file is part of the HeavenMS MapleStory Server, commands OdinMS-based + Copyleft (L) 2016 - 2018 RonanLana + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as + published by the Free Software Foundation version 3 as published by + the Free Software Foundation. You may not use, modify or distribute + this program under any other version of the GNU Affero General Public + License. + + 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 Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . +*/ + +/* + @Author: MedicOP - Add warpmap command +*/ +package client.command.commands.gm2; + +import client.MapleCharacter; +import client.MapleClient; +import client.command.Command; +import server.maps.MapleMap; + +public class WarpMapCommand extends Command { + { + setDescription(""); + } + + @Override + public void execute(MapleClient c, String[] params) { + MapleCharacter player = c.getPlayer(); + if (params.length < 1) { + player.yellowMessage("Syntax: !warpmap "); + return; + } + + try { + MapleMap target = c.getChannelServer().getMapFactory().getMap(Integer.parseInt(params[0])); + if (target == null) { + player.yellowMessage("Map ID " + params[0] + " is invalid."); + return; + } + + for (MapleCharacter victim : player.getMap().getCharacters()) { + victim.saveLocationOnWarp(); + victim.changeMap(target, target.getRandomPlayerSpawnpoint()); + } + } catch (Exception ex) { + player.yellowMessage("Map ID " + params[0] + " is invalid."); + } + } +}