Advanced !event and @event command

Newbie Spellweaver
Joined
Jun 9, 2008
Messages
72
Reaction score
7
Bleh, I'm getting bored, so I'm deciding to release some things >_<

The following go into your Command.java if you're using shootsource, Whichever command file in OdinTeh / KryptoDEV that you wanna use, or a command file of your choice.

!event command:
(Note: This was made for the last ShootSource Moogra released. If you want to use it with other sources, add a ! before event, and replace all the sub[0] with splitted[0]
PHP:
else if (sub[0].equals("event")) {
            if (sub[1].equalsIgnoreCase("on")) {
                if (c.getPlayer().getClient().getChannelServer().eventOn == true) {
                    player.dropMessage("The event is already running at " +c.getPlayer().getClient().getChannelServer().eventMap);
                } else {

                if (c.getPlayer().getClient().getChannelServer().eventOn == false) {
                int mapid = getOptionalIntArg(sub, 1, c.getPlayer().getMapId());
                c.getPlayer().getClient().getChannelServer().eventOn = true;
                c.getPlayer().getClient().getChannelServer().eventMap = mapid;
                c.getPlayer().getClient().getChannelServer().eventHoster = c.getPlayer().getName();
                try {
                    c.getChannelServer().getWorldInterface().broadcastMessage(null, MaplePacketCreator.sendYellowTip("[Event] An event has started in Channel " + c.getChannel() + " in " + player.getMapId() + "! Use @event to join in!").getBytes());
                } catch (RemoteException e) {
                    c.getChannelServer().reconnectWorld();
                }
                }
            }
         } else if (sub[1].equalsIgnoreCase("off")) {
             if (c.getPlayer().getClient().getChannelServer().eventOn == false) {
                 player.dropMessage("There is no event running at the moment.");
             } else {
                c.getPlayer().getClient().getChannelServer().eventOn = false;
                try {
                    c.getChannelServer().getWorldInterface().broadcastMessage(null, MaplePacketCreator.sendYellowTip("[Event] The event has ended. Please use @event to leave. Thanks to all those who participated.").getBytes());
                } catch (RemoteException e) {
                    c.getChannelServer().reconnectWorld();
                }
             }
        } else if (sub[1].equalsIgnoreCase("status")) {
            if (c.getPlayer().getClient().getChannelServer().eventOn = false) {
                player.dropMessage("The event is not running.");
        } else if (c.getPlayer().getClient().getChannelServer().eventOn = true) {
            player.dropMessage("The event is currently running at map "+c.getPlayer().getClient().getChannelServer().eventMap);
            player.dropMessage("And is hosted by "+c.getPlayer().getClient().getChannelServer().eventHoster);
        }
            } else {
            player.dropMessage("Syntax Helper: /event on/off/status");
            }
        }


@event Command:
(Same as above, this was also made for the ShootSource that Moogra released. Replace the sub[0] with splitted[0] and add a @ before event to use with other sources)
PHP:
else if (sub[0].equals("event")) {
                if (c.getPlayer().getClient().getChannelServer().eventOn == false) {
                    MapleMap target = cserv.getMapFactory().getMap(910000000);
                    MaplePortal targetPortal = target.getPortal(0);
                    player.changeMap(target, targetPortal);
                    player.dropMessage("You have been warped out of the event.");
                } else {
                    MapleMap newMap = cserv.getMapFactory().getMap(c.getPlayer().getClient().getChannelServer().eventMap);
                    MaplePortal newPortal = newMap.getPortal(0);
                    player.changeMap(newMap, newPortal);
                    player.dropMessage("You have been warped to the event!");
                }
        }


Add the following in ChannelServer.java
(net>sf>odinms>net>channel>ChannelServer.java) (Other Odin-Based Sources)
(net>channel>ChannelServer.java) (ShootSource)
(org>communication>ChannelServer.java) (KryptoDEV)

Okay, so look for something like this:
PHP:
    private int port = 7575;
    private static WorldRegistry worldRegistry;
    private PlayerStorage players = new PlayerStorage();
    private int channel;
    private String key;
    private ChannelWorldInterface cwi;
    private WorldChannelInterface wci = null;
    private IoAcceptor acceptor;
    private String ip;
    private boolean shutdown = false;
    private boolean finishedShutdown = false;
    private MapleMapFactory mapFactory;
    private EventScriptManager eventSM;
    private static Map<Integer, ChannelServer> instances = new HashMap<Integer, ChannelServer>();
    private static Map<String, ChannelServer> pendingInstances = new HashMap<String, ChannelServer>();
    private Map<Integer, MapleGuildSummary> gsStore = new HashMap<Integer, MapleGuildSummary>();
    private Boolean worldReady = true;
    private int instanceId = 0;
    private Map<MapleSquadType, MapleSquad> mapleSquads = new HashMap<MapleSquadType, MapleSquad>();

And add these three lines below it
PHP:
    public boolean eventOn = false;
    public int eventMap = 0;
    public String eventHoster = null;

Compile, Run, and Knock yourselves out.
 
Last edited:
Um...
Code:
} else if (sub[1].equalsIgnoreCase("off")) {
             if (c.getPlayer().getClient().getChannelServer().eventOn [COLOR="Red"]=[/COLOR] false) {
                 player.dropMessage("There is no event running at the moment.");
             } else {
                c.getPlayer().getClient().getChannelServer().eventOn [COLOR="Red"]=[/COLOR] false;
                try {
                    c.getChannelServer().getWorldInterface().broadcastMessage(null, MaplePacketCreator.sendYellowTip("[Event] The event has ended. Please use @event to leave. Thanks to all those who participated.").getBytes());
                } catch (RemoteException e) {
                    c.getChannelServer().reconnectWorld();
                }
             }
        }

I'm pretty sure you want the double "==" not the assignment "=" ...
 
Oops, Thanks for pointing it out.

But the second one IS needed, to assign the ending of the event.
 
Well here, I made one in my spare time. Havn't tested but should work fine.

GM Command
PHP:
else if (splitted[0].equals("!event")){
            if (splitted[1].equals("create")){
                int mapId = Integer.parseInt(splitted[3]);
                MapleMap map = cserv.getMapFactory().getMap(mapId);
                if (map != null){
                    String eventName = splitted[2];
                    String front = "[Event] : ";
                    if (splitted[2].contains("_"))
                        eventName = StringUtil.joinStringFrom(splitted[2].split("_"), 0);
                    if (!eventName.equals("none"))
                        front = "[Event] " + eventName + " : ";
                    if (!cserv.hasEvent()){
                        if (splitted.length == 4){
                            cserv.startEvent(mapId, player.getName(), eventName);
                            try {
                                cserv.getWorldInterface().broadcastMessage(player.getName(), MaplePacketCreator.serverNotice(6, front + "Channel " + cserv.getChannel() + ", hosted by " + player.getName() + ".").getBytes());
                                cserv.getWorldInterface().broadcastMessage(player.getName(), MaplePacketCreator.serverNotice(6, "To join type @event.").getBytes());
                            } catch(Exception e){}
                        } else if (splitted.length == 5){
                            MapleCharacter host = cserv.getPlayerStorage().getCharacterByName(splitted[4]);
                            if (host != null){
                                cserv.startEvent(mapId, host.getName(), eventName);
                                try {
                                    cserv.getWorldInterface().broadcastMessage(player.getName(), MaplePacketCreator.serverNotice(6, front + "Channel " + cserv.getChannel() + ", hosted by " + host.getName() + ".").getBytes());
                                    cserv.getWorldInterface().broadcastMessage(player.getName(), MaplePacketCreator.serverNotice(6, "To join come to channel " + cserv.getChannel() + " and type @event.").getBytes());
                                } catch(Exception e){}
                            } else {
                                player.message( splitted[4] + " is offline or doesnt exist.");
                            }
                        } else {
                            player.message("!event [create/c] [eventName/'none'] [mapId] - You host an event.");
                            player.message("!event [create/c] [eventName/'none'] [mapId] [hostName] - You host an event under [hostNames]'s name.");
                            player.message("EX: !event create Hide_and_Seek 910000000");
                            player.message("- 'Hide_and_Seek' will appear as '[Event] Hide and Seek : '.(You must use '_' instead of space)");
                            player.message("!event start - Starts the created event and disables @event.");
                            player.message("!event join [on/off] - Enables/Disables the @event command.");
                            player.message("!event status - Shows the status of the event.");
                            player.message("!event remind - Send a reminder about the event.");
                            player.message("!event end - Ends the event on your channel.");
                            player.message("!event end [1st] [2nd] [3rd] - Ends the event on your channel and shows the winners.");
                        }
                    } else {
                        player.message("There is already an event started on this channel.");
                        player.message("Hosted by: " + cserv.getEventHost());
                        player.message("Map: " + cserv.getEventMap());
                        if(!cserv.getEventName().equals("none"))
                            player.message("Kind: " + cserv.getEventName());
                    }
                } else {
                    player.message("Invalid map id.");
                }
            } else if (splitted[1].equals("start")){
                if(cserv.hasEvent()){
                    cserv.setEventWarp(false);
                    String front = "[Event] : ";
                    if(!cserv.getEventName().equals("none"))
                        front = "[Event] " + cserv.getEventName() + " : ";
                    try {
                        cserv.getWorldInterface().broadcastMessage(player.getName(), MaplePacketCreator.serverNotice(6, front + "Channel " + cserv.getChannel() + ", hosted by " + cserv.getEventHost() + " has started!").getBytes());
                        cserv.getWorldInterface().broadcastMessage(player.getName(), MaplePacketCreator.serverNotice(6, "You will no longer be able to join the event on channel " + cserv.getChannel() + " unless the GM re-enables @event.").getBytes());
                    } catch(Exception e){}
                } else {
                    player.message("There is not event on this channel.");
                }
            } else if (splitted[1].equals("join")){
                if(cserv.hasEvent()){
                    String front = "[Event] : ";
                    if(!cserv.getEventName().equals("none"))
                        front = "[Event] " + cserv.getEventName() + " : ";
                    if(splitted[2].equals("on")){
                        if(!cserv.canEventWarp()){
                            cserv.setEventWarp(true);
                            try {
                                cserv.getWorldInterface().broadcastMessage(player.getName(), MaplePacketCreator.serverNotice(6, front + "Channel " + cserv.getChannel() + ", hosted by " + cserv.getEventHost() + " has re-enabled @event!").getBytes());
                                cserv.getWorldInterface().broadcastMessage(player.getName(), MaplePacketCreator.serverNotice(6, "To join the event go to channel " + cserv.getChannel() + " and type @event.").getBytes());
                            } catch(Exception e){}
                        } else {
                            player.message("@event command is already enabled.");
                        }
                    } else if(splitted[2].equals("off")){
                        if(cserv.canEventWarp()){
                            cserv.setEventWarp(false);
                            try {
                                cserv.getWorldInterface().broadcastMessage(player.getName(), MaplePacketCreator.serverNotice(6, front + "Channel " + cserv.getChannel() + ", hosted by " + cserv.getEventHost() + " has disabled @event.").getBytes());
                                cserv.getWorldInterface().broadcastMessage(player.getName(), MaplePacketCreator.serverNotice(6, "You will no longer be able to join the event on channel " + cserv.getChannel() + " unless the GM re-enables @event.").getBytes());
                            } catch(Exception e){}
                        } else {
                            player.message("@event command is already disabled.");
                        }
                    } else {
                        player.message("!event [create/c] [eventName/'none'] [mapId] - You host an event.");
                        player.message("!event [create/c] [eventName/'none'] [mapId] [hostName] - You host an event under [hostNames]'s name.");
                        player.message("EX: !event create Hide_and_Seek 910000000");
                        player.message("- 'Hide_and_Seek' will appear as '[Event] Hide and Seek : '.(You must use '_' instead of space)");
                        player.message("!event start - Starts the created event and disables @event.");
                        player.message("!event join [on/off] - Enables/Disables the @event command.");
                        player.message("!event status - Shows the status of the event.");
                        player.message("!event remind - Send a reminder about the event.");
                        player.message("!event end - Ends the event on your channel.");
                        player.message("!event end [1st] [2nd] [3rd] - Ends the event on your channel and shows the winners.");
                    }
                } else {
                    player.message("There is no event on this channel.");
                }
            } else if (splitted[1].equals("status")){
                if(cserv.hasEvent()){
                    if(cserv.canEventWarp())
                        player.message("Status: Waiting for players...");
                    else
                        player.message("Status: Started");
                    player.message("Host: " + cserv.getEventHost());
                    player.message("Map: " + cserv.getEventMap());
                    if(!cserv.getEventName().equals("none"))
                        player.message("Kind: " + cserv.getEventName());
                    if(cserv.canEventWarp())
                        player.message("New players are currently allowed to join the event.");
                    else
                        player.message("New players are not allowed to join the event.");
                }
            } else if (splitted[1].equals("remind")){
                if(cserv.hasEvent()){
                    if(cserv.canEventWarp()){
                        String front = "[Event] : ";
                        if(!cserv.getEventName().equals("none"))
                            front = "[Event] " + cserv.getEventName() + " : ";
                        try {
                            cserv.getWorldInterface().broadcastMessage(player.getName(), MaplePacketCreator.serverNotice(6, front + "Channel " + cserv.getChannel() + ", hosted by " + cserv.getEventHost() + " is waiting!").getBytes());
                            cserv.getWorldInterface().broadcastMessage(player.getName(), MaplePacketCreator.serverNotice(6, "To join the event go to channel " + cserv.getChannel() + " and type @event.").getBytes());
                        } catch(Exception e){}
                    } else {
                        player.message("@event command is disabled. Type !event join on to re-enable it.");
                    }
                } else {
                    player.message("There is no event on this channel.");
                }
            } else if (splitted[1].equals("end")){
                if(cserv.hasEvent()){
                    String front = "[Event] : ";
                    String winners = "";
                    if(!cserv.getEventName().equals("none"))
                        front = "[Event] " + cserv.getEventName() + " : ";
                    if(splitted.length >= 3)
                        winners += splitted[2] + "(1st)";
                    if(splitted.length == 4)
                        winners += " and " + splitted[3] + "(2nd)";
                    if(splitted.length > 4)
                        winners += ", " + splitted[3] + "(2nd)";
                    if(splitted.length == 5)
                        winners += ", and " + splitted[4] + "(3rd)";
                    try {
                        if(winners.equals("")){
                            cserv.getWorldInterface().broadcastMessage(player.getName(), MaplePacketCreator.serverNotice(6, front + "Channel " + cserv.getChannel() + ", hosted by " + cserv.getEventHost() + " is now over.").getBytes());
                            cserv.getWorldInterface().broadcastMessage(player.getName(), MaplePacketCreator.serverNotice(6, "Thank you to those who participated and congratulations to the winner(s)!").getBytes());
                        } else {
                            cserv.getWorldInterface().broadcastMessage(player.getName(), MaplePacketCreator.serverNotice(6, front + "Channel " + cserv.getChannel() + ", hosted by " + cserv.getEventHost() + " is now over.").getBytes());
                            cserv.getWorldInterface().broadcastMessage(player.getName(), MaplePacketCreator.serverNotice(6, "Thank you to those who participated and congratulations to " + winners + " for winning!").getBytes());
                        }
                    } catch(Exception e){}
                    cserv.endEvent();
                } else {
                    player.message("There is no event on this channel.");
                }
            } else {
                player.message("!event [create/c] [eventName/'none'] [mapId] - You host an event.");
                player.message("!event [create/c] [eventName/'none'] [mapId] [hostName] - You host an event under [hostNames]'s name.");
                player.message("EX: !event create Hide_and_Seek 910000000");
                player.message("- 'Hide_and_Seek' will appear as '[Event] Hide and Seek : '.(You must use '_' instead of space)");
                player.message("!event start - Starts the created event and disables @event.");
                player.message("!event join [on/off] - Enables/Disables the @event command.");
                player.message("!event status - Shows the status of the event.");
                player.message("!event remind - Send a reminder about the event.");
                player.message("!event end - Ends the event on your channel.");
                player.message("!event end [1st] [2nd] [3rd] - Ends the event on your channel and shows the winners.");
            }
        }

Player command
PHP:
 else if (splitted[0].equals("@event")){
            if (cserv.hasEvent()){
                MapleMap map = cserv.getMapFactory().getMap(cserv.getEventMap());
                if (cserv.canEventWarp()){
                    if(player.getMapId() != cserv.getEventMap()){
                        player.changeMap(map, map.getPortal(0));
                        player.message("Joined event!");
                    } else
                        player.message("Your already in the event.");
                } else {
                    if(!player.isGM())
                        player.message("The event on this channel has already started.");
                    else {
                        player.changeMap(map, map.getPortal(0));
                        player.message("GM joined event!");
                    }
                }
            } else {
                player.message("There is no event on this channel.");
            }
        }

ChannelServer.Java Variables (Add to top)
PHP:
    private int eventMap;
    private boolean eventWarp;
    private String eventHost;
    private String eventName;

ChannelServer.Java Functions (Add to bottom)
PHP:
    public boolean hasEvent(){
        return eventMap != 0;
    }

    public void startEvent(int mapId, String host, String name){
        if(eventMap == 0){
            eventMap = mapId;
            eventHost = host;
            eventName = name;
            eventWarp = true;
        }

    }

    public boolean canEventWarp(){
        return eventWarp;
    }

    public void setEventWarp(boolean allow){
        eventWarp = allow;
    }

    public int getEventMap(){
        return eventMap;
    }

    public void setEventMap(int mapId){
        if(eventMap != 0)
            eventMap = mapId;
    }

    public String getEventHost(){
        return eventHost;
    }

    public void setEventHost(String host){
        if(eventMap != 0)
            eventHost = host;
    }

    public String getEventName(){
        return eventName;
    }

    public void setEventName(String name){
        eventName = name;
    }

    public void endEvent(){
        if(eventMap != 0){
            eventMap = 0;
            eventHost = "";
            eventName = "";
            eventWarp = false;
        }
    }


---------- Post added at 06:29 AM ---------- Previous post was at 06:08 AM ----------

Tested and it works! Take what u want from it.
Probably will have to change splitted, player.message() etc... according to your server.

Warning: This is not a plug and play release. I probably have some custom functions and code in it that suits only my server. You will have to know how to configure it to your server.
 
Last edited:
Well here, I made one in my spare time. Havn't tested but should work fine.

GM Command
PHP:
 else if (splitted[0].equals("!event")){
            if (splitted[1].equals("create") || splitted[1].equals("c")){
                int mapId = Integer.parseInt(splitted[3]);
                MapleMap map = cserv.getMapFactory().getMap(mapId);
                if (map != null){
                    String eventName = splitted[2];
                    String front = "[Event] : ";
                    if (splitted[2].contains("_"))
                        eventName = StringUtil.joinStringFrom(splitted[2].split("_"), 0);
                    if (!eventName.equals("none"))
                        front = "[Event] " + eventName + " : ";
                    if (!cserv.hasEvent()){
                        if (splitted.length == 4){
                            cserv.startEvent(mapId, player.getName(), eventName);
                            try {
                                cserv.getWorldInterface().broadcastMessage(player.getName(), MaplePacketCreator.serverNotice(6, front + "Channel " + cserv.getChannel() + ", hosted by " + player.getName() + ".").getBytes());
                                cserv.getWorldInterface().broadcastMessage(player.getName(), MaplePacketCreator.serverNotice(6, "To join type @event.").getBytes());
                            } catch(Exception e){}
                        } else if (splitted.length == 5){
                            MapleCharacter host = cserv.getPlayerStorage().getCharacterByName(splitted[4]);
                            if (host != null){
                                cserv.startEvent(mapId, host.getName(), eventName);
                                try {
                                    cserv.getWorldInterface().broadcastMessage(player.getName(), MaplePacketCreator.serverNotice(6, front + "Channel " + cserv.getChannel() + ", hosted by " + host.getName() + ".").getBytes());
                                    cserv.getWorldInterface().broadcastMessage(player.getName(), MaplePacketCreator.serverNotice(6, "To join come to channel " + cserv.getChannel() + " and type @event.").getBytes());
                                } catch(Exception e){}
                            } else {
                                player.message( splitted[4] + " is offline or doesnt exist.");
                            }
                        } else {
                            player.message("!event [create/c] [eventName/'none'] [mapId] - You host an event.");
                            player.message("!event [create/c] [eventName/'none'] [mapId] [hostName] - You host an event under [hostNames]'s name.");
                            player.message("EX: !event create Hide_and_Seek 910000000");
                            player.message("- 'Hide_and_Seek' will appear as '[Event] Hide and Seek : '.(You must use '_' instead of space)");
                            player.message("!event start - Starts the created event and disables @event.");
                            player.message("!event join [on/off] - Enables/Disables the @event command.");
                            player.message("!event end - Ends the event on your channel.");
                        }
                    } else {
                        player.message("There is already an event started on this channel.");
                        player.message("Hosted by: " + cserv.getEventHost());
                        player.message("Map: " + cserv.getEventMap());
                        if(!cserv.getEventName().equals(""))
                            player.message("Kind: " + cserv.getEventName());
                    }
                } else {
                    player.message("Unknown command: " + command);
                    player.message("Invalid map id.");
                }
            } else if (splitted[1].equals("start")){
                if(cserv.hasEvent()){
                    cserv.setEventWarp(false);
                    String front = "[Event] : ";
                    if(!cserv.getEventName().equals("none"))
                        front = "[Event] " + cserv.getEventName() + " : ";
                    try {
                        cserv.getWorldInterface().broadcastMessage(player.getName(), MaplePacketCreator.serverNotice(6, front + "Channel " + cserv.getChannel() + ", hosted by " + cserv.getEventHost() + " has started!").getBytes());
                        cserv.getWorldInterface().broadcastMessage(player.getName(), MaplePacketCreator.serverNotice(6, "You will no longer be able to join the event on channel " + cserv.getChannel() + " unless the GM re-enables @event.").getBytes());
                    } catch(Exception e){}
                } else {
                    player.message("There is not event on this channel.");
                }
            } else if (splitted[1].equals("join")){
                if(cserv.hasEvent()){
                    String front = "[Event] : ";
                    if(!cserv.getEventName().equals("none"))
                        front = "[Event] " + cserv.getEventName() + " : ";
                    if(splitted[2].equals("on")){
                        if(!cserv.canEventWarp()){
                            cserv.setEventWarp(true);
                            try {
                                cserv.getWorldInterface().broadcastMessage(player.getName(), MaplePacketCreator.serverNotice(6, front + "Channel " + cserv.getChannel() + ", hosted by " + cserv.getEventHost() + " has re-enabled @event!").getBytes());
                                cserv.getWorldInterface().broadcastMessage(player.getName(), MaplePacketCreator.serverNotice(6, "To join the event go to channel " + cserv.getChannel() + " and type @event.").getBytes());
                            } catch(Exception e){}
                        } else {
                            player.message("@event command is already enabled.");
                        }
                    } else if(splitted[2].equals("off")){
                        if(cserv.canEventWarp()){
                            cserv.setEventWarp(false);
                            try {
                                cserv.getWorldInterface().broadcastMessage(player.getName(), MaplePacketCreator.serverNotice(6, front + "Channel " + cserv.getChannel() + ", hosted by " + cserv.getEventHost() + " has disabled @event.").getBytes());
                                cserv.getWorldInterface().broadcastMessage(player.getName(), MaplePacketCreator.serverNotice(6, "You will no longer be able to join the event on channel " + cserv.getChannel() + " unless the GM re-enables @event.").getBytes());
                            } catch(Exception e){}
                        } else {
                            player.message("@event command is already disabled.");
                        }
                    } else {
                        player.message("!event [create/c] [eventName/'none'] [mapId] - You host an event.");
                        player.message("!event [create/c] [eventName/'none'] [mapId] [hostName] - You host an event under [hostNames]'s name.");
                        player.message("EX: !event create Hide_and_Seek 910000000");
                        player.message("- 'Hide_and_Seek' will appear as '[Event] Hide and Seek : '.(You must use '_' instead of space)");
                        player.message("!event start - Starts the created event and disables @event.");
                        player.message("!event join [on/off] - Enables/Disables the @event command.");
                        player.message("!event end - Ends the event on your channel.");
                    }
                } else {
                    player.message("There is no event on this channel.");
                }
            } else if (splitted[1].equals("end")){
                if(cserv.hasEvent()){
                    String front = "[Event] : ";
                    if(!cserv.getEventName().equals("none"))
                        front = "[Event] " + cserv.getEventName() + " : ";
                    try {
                        cserv.getWorldInterface().broadcastMessage(player.getName(), MaplePacketCreator.serverNotice(6, front + "Channel " + cserv.getChannel() + ", hosted by " + cserv.getEventHost() + " is now over.").getBytes());
                        cserv.getWorldInterface().broadcastMessage(player.getName(), MaplePacketCreator.serverNotice(6, "Thank you to those who participated and congratulations to the winner(s)!").getBytes());
                    } catch(Exception e){}
                    cserv.endEvent();
                } else {
                    player.message("There is not event on this channel.");
                }
            } else {
                player.message("!event [create/c] [eventName/'none'] [mapId] - You host an event.");
                player.message("!event [create/c] [eventName/'none'] [mapId] [hostName] - You host an event under [hostNames]'s name.");
                player.message("EX: !event create Hide_and_Seek 910000000");
                player.message("- 'Hide_and_Seek' will appear as '[Event] Hide and Seek : '.(You must use '_' instead of space)");
                player.message("!event start - Starts the created event and disables @event.");
                player.message("!event join [on/off] - Enables/Disables the @event command.");
                player.message("!event end - Ends the event on your channel.");
            }
        }

Player command
PHP:
 else if (splitted[0].equals("@event")){
            if (cserv.hasEvent()){
                if (cserv.canEventWarp()){
                    player.changeMap(cserv.getEventMap());
                    player.message("Joined event!");
                } else {
                    if(!player.isGM())
                        player.message("The event on this channel has already started.");
                    else {
                        player.changeMap(cserv.getEventMap());
                        player.message("GM joined event!");
                    }
                }
            } else {
                player.message("There is no event on this channel.");
            }
        }

ChannelServer.Java Variables (Add to top)
PHP:
    private int eventMap;
    private boolean eventWarp;
    private String eventHost;
    private String eventName;

ChannelServer.Java Functions (Add to bottom)
PHP:
    public boolean hasEvent(){
        return eventMap != 0;
    }

    public void startEvent(int mapId, String host, String name){
        if(eventMap == 0){
            eventMap = mapId;
            eventHost = host;
            eventName = name;
            eventWarp = true;
        }

    }

    public boolean canEventWarp(){
        return eventWarp;
    }

    public void setEventWarp(boolean allow){
        eventWarp = allow;
    }

    public int getEventMap(){
        return eventMap;
    }

    public void setEventMap(int mapId){
        if(eventMap != 0)
            eventMap = mapId;
    }

    public String getEventHost(){
        return eventHost;
    }

    public void setEventHost(String host){
        if(eventMap != 0)
            eventHost = host;
    }

    public String getEventName(){
        return eventName;
    }

    public void setEventName(String name){
        eventName = name;
    }

    public void endEvent(){
        if(eventMap != 0){
            eventMap = 0;
            eventHost = "";
            eventName = "";
            eventWarp = false;
        }
    }


---------- Post added at 06:29 AM ---------- Previous post was at 06:08 AM ----------

Tested and it works! Take what u want from it.
Probably will have to change splitted, player.changeMap() etc... according to your server.

This one seems a lot better if you ask me
I've never used an event command, but it seems like it would help A LOT, much easier than having to warp all of the players in one by one
 
Well here, I made one in my spare time. Havn't tested but should work fine.

GM Command
PHP:
 else if (splitted[0].equals("!event")){
            if (splitted[1].equals("create") || splitted[1].equals("c")){
                int mapId = Integer.parseInt(splitted[3]);
                MapleMap map = cserv.getMapFactory().getMap(mapId);
                if (map != null){
                    String eventName = splitted[2];
                    String front = "[Event] : ";
                    if (splitted[2].contains("_"))
                        eventName = StringUtil.joinStringFrom(splitted[2].split("_"), 0);
                    if (!eventName.equals("none"))
                        front = "[Event] " + eventName + " : ";
                    if (!cserv.hasEvent()){
                        if (splitted.length == 4){
                            cserv.startEvent(mapId, player.getName(), eventName);
                            try {
                                cserv.getWorldInterface().broadcastMessage(player.getName(), MaplePacketCreator.serverNotice(6, front + "Channel " + cserv.getChannel() + ", hosted by " + player.getName() + ".").getBytes());
                                cserv.getWorldInterface().broadcastMessage(player.getName(), MaplePacketCreator.serverNotice(6, "To join type @event.").getBytes());
                            } catch(Exception e){}
                        } else if (splitted.length == 5){
                            MapleCharacter host = cserv.getPlayerStorage().getCharacterByName(splitted[4]);
                            if (host != null){
                                cserv.startEvent(mapId, host.getName(), eventName);
                                try {
                                    cserv.getWorldInterface().broadcastMessage(player.getName(), MaplePacketCreator.serverNotice(6, front + "Channel " + cserv.getChannel() + ", hosted by " + host.getName() + ".").getBytes());
                                    cserv.getWorldInterface().broadcastMessage(player.getName(), MaplePacketCreator.serverNotice(6, "To join come to channel " + cserv.getChannel() + " and type @event.").getBytes());
                                } catch(Exception e){}
                            } else {
                                player.message( splitted[4] + " is offline or doesnt exist.");
                            }
                        } else {
                            player.message("!event [create/c] [eventName/'none'] [mapId] - You host an event.");
                            player.message("!event [create/c] [eventName/'none'] [mapId] [hostName] - You host an event under [hostNames]'s name.");
                            player.message("EX: !event create Hide_and_Seek 910000000");
                            player.message("- 'Hide_and_Seek' will appear as '[Event] Hide and Seek : '.(You must use '_' instead of space)");
                            player.message("!event start - Starts the created event and disables @event.");
                            player.message("!event join [on/off] - Enables/Disables the @event command.");
                            player.message("!event end - Ends the event on your channel.");
                        }
                    } else {
                        player.message("There is already an event started on this channel.");
                        player.message("Hosted by: " + cserv.getEventHost());
                        player.message("Map: " + cserv.getEventMap());
                        if(!cserv.getEventName().equals(""))
                            player.message("Kind: " + cserv.getEventName());
                    }
                } else {
                    player.message("Unknown command: " + command);
                    player.message("Invalid map id.");
                }
            } else if (splitted[1].equals("start")){
                if(cserv.hasEvent()){
                    cserv.setEventWarp(false);
                    String front = "[Event] : ";
                    if(!cserv.getEventName().equals("none"))
                        front = "[Event] " + cserv.getEventName() + " : ";
                    try {
                        cserv.getWorldInterface().broadcastMessage(player.getName(), MaplePacketCreator.serverNotice(6, front + "Channel " + cserv.getChannel() + ", hosted by " + cserv.getEventHost() + " has started!").getBytes());
                        cserv.getWorldInterface().broadcastMessage(player.getName(), MaplePacketCreator.serverNotice(6, "You will no longer be able to join the event on channel " + cserv.getChannel() + " unless the GM re-enables @event.").getBytes());
                    } catch(Exception e){}
                } else {
                    player.message("There is not event on this channel.");
                }
            } else if (splitted[1].equals("join")){
                if(cserv.hasEvent()){
                    String front = "[Event] : ";
                    if(!cserv.getEventName().equals("none"))
                        front = "[Event] " + cserv.getEventName() + " : ";
                    if(splitted[2].equals("on")){
                        if(!cserv.canEventWarp()){
                            cserv.setEventWarp(true);
                            try {
                                cserv.getWorldInterface().broadcastMessage(player.getName(), MaplePacketCreator.serverNotice(6, front + "Channel " + cserv.getChannel() + ", hosted by " + cserv.getEventHost() + " has re-enabled @event!").getBytes());
                                cserv.getWorldInterface().broadcastMessage(player.getName(), MaplePacketCreator.serverNotice(6, "To join the event go to channel " + cserv.getChannel() + " and type @event.").getBytes());
                            } catch(Exception e){}
                        } else {
                            player.message("@event command is already enabled.");
                        }
                    } else if(splitted[2].equals("off")){
                        if(cserv.canEventWarp()){
                            cserv.setEventWarp(false);
                            try {
                                cserv.getWorldInterface().broadcastMessage(player.getName(), MaplePacketCreator.serverNotice(6, front + "Channel " + cserv.getChannel() + ", hosted by " + cserv.getEventHost() + " has disabled @event.").getBytes());
                                cserv.getWorldInterface().broadcastMessage(player.getName(), MaplePacketCreator.serverNotice(6, "You will no longer be able to join the event on channel " + cserv.getChannel() + " unless the GM re-enables @event.").getBytes());
                            } catch(Exception e){}
                        } else {
                            player.message("@event command is already disabled.");
                        }
                    } else {
                        player.message("!event [create/c] [eventName/'none'] [mapId] - You host an event.");
                        player.message("!event [create/c] [eventName/'none'] [mapId] [hostName] - You host an event under [hostNames]'s name.");
                        player.message("EX: !event create Hide_and_Seek 910000000");
                        player.message("- 'Hide_and_Seek' will appear as '[Event] Hide and Seek : '.(You must use '_' instead of space)");
                        player.message("!event start - Starts the created event and disables @event.");
                        player.message("!event join [on/off] - Enables/Disables the @event command.");
                        player.message("!event end - Ends the event on your channel.");
                    }
                } else {
                    player.message("There is no event on this channel.");
                }
            } else if (splitted[1].equals("end")){
                if(cserv.hasEvent()){
                    String front = "[Event] : ";
                    if(!cserv.getEventName().equals("none"))
                        front = "[Event] " + cserv.getEventName() + " : ";
                    try {
                        cserv.getWorldInterface().broadcastMessage(player.getName(), MaplePacketCreator.serverNotice(6, front + "Channel " + cserv.getChannel() + ", hosted by " + cserv.getEventHost() + " is now over.").getBytes());
                        cserv.getWorldInterface().broadcastMessage(player.getName(), MaplePacketCreator.serverNotice(6, "Thank you to those who participated and congratulations to the winner(s)!").getBytes());
                    } catch(Exception e){}
                    cserv.endEvent();
                } else {
                    player.message("There is not event on this channel.");
                }
            } else {
                player.message("!event [create/c] [eventName/'none'] [mapId] - You host an event.");
                player.message("!event [create/c] [eventName/'none'] [mapId] [hostName] - You host an event under [hostNames]'s name.");
                player.message("EX: !event create Hide_and_Seek 910000000");
                player.message("- 'Hide_and_Seek' will appear as '[Event] Hide and Seek : '.(You must use '_' instead of space)");
                player.message("!event start - Starts the created event and disables @event.");
                player.message("!event join [on/off] - Enables/Disables the @event command.");
                player.message("!event end - Ends the event on your channel.");
            }
        }

Player command
PHP:
 else if (splitted[0].equals("@event")){
            if (cserv.hasEvent()){
                if (cserv.canEventWarp()){
                    player.changeMap(cserv.getEventMap());
                    player.message("Joined event!");
                } else {
                    if(!player.isGM())
                        player.message("The event on this channel has already started.");
                    else {
                        player.changeMap(cserv.getEventMap());
                        player.message("GM joined event!");
                    }
                }
            } else {
                player.message("There is no event on this channel.");
            }
        }

ChannelServer.Java Variables (Add to top)
PHP:
    private int eventMap;
    private boolean eventWarp;
    private String eventHost;
    private String eventName;

ChannelServer.Java Functions (Add to bottom)
PHP:
    public boolean hasEvent(){
        return eventMap != 0;
    }

    public void startEvent(int mapId, String host, String name){
        if(eventMap == 0){
            eventMap = mapId;
            eventHost = host;
            eventName = name;
            eventWarp = true;
        }

    }

    public boolean canEventWarp(){
        return eventWarp;
    }

    public void setEventWarp(boolean allow){
        eventWarp = allow;
    }

    public int getEventMap(){
        return eventMap;
    }

    public void setEventMap(int mapId){
        if(eventMap != 0)
            eventMap = mapId;
    }

    public String getEventHost(){
        return eventHost;
    }

    public void setEventHost(String host){
        if(eventMap != 0)
            eventHost = host;
    }

    public String getEventName(){
        return eventName;
    }

    public void setEventName(String name){
        eventName = name;
    }

    public void endEvent(){
        if(eventMap != 0){
            eventMap = 0;
            eventHost = "";
            eventName = "";
            eventWarp = false;
        }
    }


---------- Post added at 06:29 AM ---------- Previous post was at 06:08 AM ----------

Tested and it works! Take what u want from it.
Probably will have to change splitted, player.changeMap() etc... according to your server.

Nice!
 
Back