Allow multi-word names in /ma addarena and /ma autogenerate.
Introduces support for multi-word arena names in the two commands. The approach is to simply join the arguments by spaces. Because of the new slug-based lookups, multi-word names are fairly straightforward.
This commit is contained in:
@@ -6,9 +6,13 @@ import com.garbagemule.MobArena.commands.CommandInfo;
|
||||
import com.garbagemule.MobArena.commands.Commands;
|
||||
import com.garbagemule.MobArena.framework.Arena;
|
||||
import com.garbagemule.MobArena.framework.ArenaMaster;
|
||||
import com.garbagemule.MobArena.util.Slugs;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@CommandInfo(
|
||||
name = "addarena",
|
||||
pattern = "(add|new)arena",
|
||||
@@ -26,18 +30,20 @@ public class AddArenaCommand implements Command
|
||||
}
|
||||
|
||||
// Require an arena name
|
||||
if (args.length != 1) return false;
|
||||
if (args.length < 1) return false;
|
||||
|
||||
// Unwrap the sender.
|
||||
Player p = Commands.unwrap(sender);
|
||||
|
||||
Arena arena = am.getArenaWithName(args[0]);
|
||||
String name = String.join(" ", args);
|
||||
String slug = Slugs.create(name);
|
||||
Arena arena = am.getArenaWithName(slug);
|
||||
if (arena != null) {
|
||||
am.getGlobalMessenger().tell(sender, "An arena with that name already exists.");
|
||||
return true;
|
||||
}
|
||||
am.createArenaNode(args[0], p.getWorld());
|
||||
am.getGlobalMessenger().tell(sender, "New arena with name '" + args[0] + "' created!");
|
||||
am.createArenaNode(name, p.getWorld());
|
||||
am.getGlobalMessenger().tell(sender, "New arena with name '" + name + "' created!");
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,6 +7,7 @@ import com.garbagemule.MobArena.commands.CommandInfo;
|
||||
import com.garbagemule.MobArena.commands.Commands;
|
||||
import com.garbagemule.MobArena.framework.Arena;
|
||||
import com.garbagemule.MobArena.framework.ArenaMaster;
|
||||
import com.garbagemule.MobArena.util.Slugs;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
@@ -27,24 +28,26 @@ public class AutoGenerateCommand implements Command
|
||||
}
|
||||
|
||||
// Require an arena name
|
||||
if (args.length != 1) return false;
|
||||
if (args.length < 1) return false;
|
||||
|
||||
// Unwrap the sender.
|
||||
Player p = Commands.unwrap(sender);
|
||||
|
||||
// Check if arena already exists.
|
||||
Arena arena = am.getArenaWithName(args[0]);
|
||||
String name = String.join(" ", args);
|
||||
String slug = Slugs.create(name);
|
||||
Arena arena = am.getArenaWithName(slug);
|
||||
if (arena != null) {
|
||||
am.getGlobalMessenger().tell(sender, "An arena with that name already exists.");
|
||||
return true;
|
||||
}
|
||||
|
||||
if (!MAUtils.doooooItHippieMonster(p.getLocation(), 13, args[0], am.getPlugin())) {
|
||||
if (!MAUtils.doooooItHippieMonster(p.getLocation(), 13, name, am.getPlugin())) {
|
||||
am.getGlobalMessenger().tell(sender, "Could not auto-generate arena.");
|
||||
return true;
|
||||
}
|
||||
|
||||
am.getGlobalMessenger().tell(sender, "Arena with name '" + args[0] + "' generated.");
|
||||
am.getGlobalMessenger().tell(sender, "Arena with name '" + name + "' generated.");
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user