Public Repository for the Magicbane Shadowbane Emulator
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

87 lines
2.0 KiB

package engine.devcmd.cmds;
import engine.devcmd.AbstractDevCmd;
import engine.objects.AbstractGameObject;
import engine.objects.PlayerCharacter;
import engine.server.MBServerStatics;
/**
* @author
* Summary: Devcmd to toggle logging of application protocol messages
*
*/
public class NetDebugCmd extends AbstractDevCmd {
// Instance variables
public NetDebugCmd() {
super("netdebug");
}
// AbstractDevCmd Overridden methods
@Override
protected void _doCmd(PlayerCharacter pc, String[] args,
AbstractGameObject target) {
Boolean debugState = false;
if(validateUserInput(args) == false) {
this.sendUsage(pc);
return;
}
// Arguments have been validated use argument to set debug state
switch (args[0]) {
case "on":
debugState = true;
break;
case "off":
debugState = false;
break;
default:
break;
}
MBServerStatics.DEBUG_PROTOCOL = debugState;
// Send results to user
throwbackInfo(pc, "Network debug state: " + debugState.toString());
}
@Override
protected String _getHelpString() {
return "Toggles sending network messages to log";
}
@Override
protected String _getUsageString() {
return "/netdebug on|off";
}
// Class methods
private static boolean validateUserInput(String[] userInput) {
int stringIndex;
String commandSet = "onoff";
// incorrect number of arguments test
if (userInput.length != 1)
return false;
// Validate arguments
stringIndex = commandSet.indexOf(userInput[0].toLowerCase());
return stringIndex != -1;
}
}