我对Java还是很陌生,我正在尝试查看所设置的参数是否为空,如果是,则向其发送消息,然后终止脚本。但是,它似乎没有用,因为我将参数保留为空,并且我仍然只是不会得到我的消息,但是看起来它返回的是false。
public boolean onCommand(CommandSender sender, Command cmd, String commandLabel, String[] args){
Player player = (Player) sender;
if(commandLabel.equalsIgnoreCase("register")){
if(args[0].length() == 0){
player.sendMessage(ChatColor.GOLD + "You Did Not Set A Password! (Ex: /register mysupersecretpassword)");
return false;
}
}
return false;
最终解决方案
if(args.length == 0){
不是
if(args[0].length() == 0){
您的问题是您检查参数长度的第0个位置。
if(args[0].length() == 0){
需要
if(args.length == 0){
实际上,如果您检查args长度的第0个位置,则可能会得到数组超出范围的错误。
考虑此:(args.length > 0) && (args[0].equals("") == true)
从具有空“ $ 1”的Shell脚本执行时发生]jim @ U10netbook:〜/ workspace / MIDI $ ./Run
#!/bin/sh # # @(#)$Id MIDI filename.mid $ # # Purpose: Run MIDI-Player.jar "midiFile" # Run # Copyright (C) 2016 James Elwood Love III - All Rights Reserved # Permission to copy and modify is granted under the Bumpy license # created 20160101 ################################################################### build=20160101 ########################## jar="MIDI.jar" ########################## ## INFORM ################ clear echo "\t $jar" echo " build $build \t JimmyLandStudios.xyz" echo " Play $1" ########################## ## JAR ################### java -jar "$jar" "$1" ########################## exit $?