Xanderॐ Posted January 8, 2011 Posted January 8, 2011 Just a small flashy one that came in mind a minute ago. Instead of writting in your server what commands are available, you can get that automatic by the following patch. By using the .commandhelp , you get all the available voiced commands. Beta state, report bugs. Core: Index: java/com/l2jserver/extensions/VoicedCommands.java =================================================================== --- java/com/l2jserver/extensions/VoicedCommands.java (revision 0) +++ java/com/l2jserver/extensions/VoicedCommands.java (revision 0) @@ -0,0 +1,76 @@ +/* + * 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 com.l2jserver.extensions; + +import com.l2jserver.gameserver.handler.IVoicedCommandHandler; +import com.l2jserver.gameserver.model.actor.instance.L2PcInstance; + +import javolution.util.FastList; + +/** + * @author Issle + * + */ +public class VoicedCommands implements IVoicedCommandHandler +{ + public FastList<String> commands = new FastList<String>(); + + + public void reload() + { + commands = new FastList<String>(); + } + + private volatile static VoicedCommands singleton; + + private VoicedCommands() + { + commands = new FastList<String>(); + } + + public static VoicedCommands getInstance() + { + if (singleton == null) + { + synchronized (VoicedCommands.class) + { + if (singleton == null) + singleton = new VoicedCommands(); + } + } + return singleton; + } + + @Override + public boolean useVoicedCommand(String command, L2PcInstance activeChar, String params) + { + String output = "Available commands:"; + for(String s: commands) + { + output += (" ."+s); + } + + activeChar.sendMessage(output); + return false; + } + + @Override + public String[] getVoicedCommandList() + { + String[] command = new String[1]; + command[0] = "commandhelp"; + return command; + } +} Index: java/com/l2jserver/gameserver/handler/VoicedCommandHandler.java =================================================================== --- java/com/l2jserver/gameserver/handler/VoicedCommandHandler.java (revision 4469) +++ java/com/l2jserver/gameserver/handler/VoicedCommandHandler.java (working copy) @@ -19,6 +19,7 @@ import java.util.logging.Logger; import com.l2jserver.Config; +import com.l2jserver.extensions.VoicedCommands; /** * This class ... @@ -39,6 +40,7 @@ private VoicedCommandHandler() { _datatable = new TIntObjectHashMap<IVoicedCommandHandler>(); + VoicedCommands.getInstance().reload(); } public void registerVoicedCommandHandler(IVoicedCommandHandler handler) @@ -49,6 +51,7 @@ if (Config.DEBUG) _log.fine("Adding handler for command " + ids[i]); _datatable.put(ids[i].hashCode(), handler); + VoicedCommands.getInstance().commands.add(ids[i]); } } Datapack: Index: data/scripts/handlers/MasterHandler.java =================================================================== --- data/scripts/handlers/MasterHandler.java (revision 7732) +++ data/scripts/handlers/MasterHandler.java (working copy) @@ -244,6 +244,7 @@ import handlers.voicedcommandhandlers.ChatAdmin; import handlers.voicedcommandhandlers.Debug; import handlers.voicedcommandhandlers.Lang; import handlers.voicedcommandhandlers.TvTVoicedInfo; import handlers.voicedcommandhandlers.Wedding; import handlers.voicedcommandhandlers.stats; @@ -251,6 +252,7 @@ import java.util.logging.Logger; import com.l2jserver.Config; +import com.l2jserver.extensions.VoicedCommands; import com.l2jserver.gameserver.handler.ActionHandler; import com.l2jserver.gameserver.handler.AdminCommandHandler; import com.l2jserver.gameserver.handler.BypassHandler; @@ -550,6 +552,8 @@ VoicedCommandHandler.getInstance().registerVoicedCommandHandler(new Lang()); if (Config.L2JMOD_DEBUG_VOICE_COMMAND) VoicedCommandHandler.getInstance().registerVoicedCommandHandler(new Debug()); + + VoicedCommandHandler.getInstance().registerVoicedCommandHandler(VoicedCommands.getInstance()); _log.config("Loaded " + VoicedCommandHandler.getInstance().size() + " VoicedHandlers"); }
Xanderॐ Posted January 8, 2011 Author Posted January 8, 2011 How do you know it has no errors ? Did you test it ?
`Rοmeο Posted January 8, 2011 Posted January 8, 2011 How do you know it has no errors ? Did you test it ? no you didnt test it ?
Xanderॐ Posted January 8, 2011 Author Posted January 8, 2011 i did , but you said good job, not me ;) I just placed there a share ....
`Rοmeο Posted January 8, 2011 Posted January 8, 2011 i did , but you said good job, not me ;) I just placed there a share .... ahh i didnt see the author , anyway i will test it.
Michaeltje Posted January 8, 2011 Posted January 8, 2011 i did , but you said good job, not me ;) I just placed there a share .... You are Issle right? :p You got ur pvp-unlock system shared too? :p I really loved that feature in Relapse,, and im thinking of opening just a little server, just for friends xD
Xanderॐ Posted January 8, 2011 Author Posted January 8, 2011 You are Issle right? :p You got ur pvp-unlock system shared too? :p I really loved that feature in Relapse,, and im thinking of opening just a little server, just for friends xD Ill share that too, when i rewrite it cause its not l2j-compatible. Yes , im Issle.
Michaeltje Posted January 8, 2011 Posted January 8, 2011 Ill share that too, when i rewrite it cause its not l2j-compatible. Awh Great xD Ill see it when shared <3 Goodnight now :p
Xanderॐ Posted January 8, 2011 Author Posted January 8, 2011 http://img195.imageshack.us/i/shot00008rc.png/ There in the systemmessage is the command list after using .commandhelp PS: That could part of a bigger project, making a complete system that html-shows the info of the server. Rates/most populated zones/commands etc etc.
mfausb Posted January 8, 2011 Posted January 8, 2011 I like it but it shows not enabled voice commands as well. :/ And what about formatting it a bit more (meaning not every command next to the other one, more like a table) and an additional quick info to the appropriate voice command? Or maybe a html file is better then a sys-message full of voice commands (if you have many of them)..?
Xanderॐ Posted January 8, 2011 Author Posted January 8, 2011 Since im planning to code a "server info" html mod, i guess this will get incorporated there.
mfausb Posted January 8, 2011 Posted January 8, 2011 Since im planning to code a "server info" html mod, i guess this will get incorporated there. Kewl, looking forward to it. :D
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now