Implement basic framework for ACF rework.

This commit is contained in:
benwoo1110 2021-03-10 21:31:23 +08:00
parent e843b0711d
commit 0496905573
60 changed files with 323 additions and 240 deletions

View File

@ -69,7 +69,7 @@
<module name="TypeName"/> <module name="TypeName"/>
<module name="AvoidStarImport"> <module name="AvoidStarImport">
<property name="severity" value="warning"/> <property name="severity" value="warning"/>
<property name="excludes" value="com.onarandombox.MultiverseCore.utils,com.onarandombox.MultiverseCore.configuration,com.onarandombox.MultiverseCore.commands,com.onarandombox.MultiverseCore.destination"/> <property name="excludes" value="com.onarandombox.MultiverseCore.utils,com.onarandombox.MultiverseCore.configuration,com.onarandombox.MultiverseCore.commands_old,com.onarandombox.MultiverseCore.destination"/>
</module> </module>
<module name="IllegalImport"/> <module name="IllegalImport"/>
<module name="RedundantImport"/> <module name="RedundantImport"/>

17
pom.xml
View File

@ -38,6 +38,10 @@
<id>CodeMC</id> <id>CodeMC</id>
<url>https://repo.codemc.org/repository/maven-public</url> <url>https://repo.codemc.org/repository/maven-public</url>
</repository> </repository>
<repository>
<id>aikar</id>
<url>https://repo.aikar.co/content/groups/aikar/</url>
</repository>
</repositories> </repositories>
<pluginRepositories> <pluginRepositories>
@ -256,6 +260,14 @@
<pattern>de.themoep.idconverter</pattern> <pattern>de.themoep.idconverter</pattern>
<shadedPattern>com.onarandombox.idconverter</shadedPattern> <shadedPattern>com.onarandombox.idconverter</shadedPattern>
</relocation> </relocation>
<relocation>
<pattern>co.aikar.commands</pattern>
<shadedPattern>com.onarandombox.acf</shadedPattern> <!-- Replace this -->
</relocation>
<relocation>
<pattern>co.aikar.locales</pattern>
<shadedPattern>com.onarandombox.locales</shadedPattern> <!-- Replace this -->
</relocation>
</relocations> </relocations>
</configuration> </configuration>
</execution> </execution>
@ -312,6 +324,11 @@
</dependency> </dependency>
<!-- End of Economy Dependency --> <!-- End of Economy Dependency -->
<!-- Start of CommandHandler Dependency --> <!-- Start of CommandHandler Dependency -->
<dependency>
<groupId>co.aikar</groupId>
<artifactId>acf-paper</artifactId>
<version>0.5.0-SNAPSHOT</version>
</dependency>
<dependency> <dependency>
<groupId>com.pneumaticraft.commandhandler</groupId> <groupId>com.pneumaticraft.commandhandler</groupId>
<artifactId>CommandHandler</artifactId> <artifactId>CommandHandler</artifactId>

View File

@ -7,21 +7,6 @@
package com.onarandombox.MultiverseCore; package com.onarandombox.MultiverseCore;
import java.io.BufferedReader;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.logging.Level;
import buscript.Buscript; import buscript.Buscript;
import com.dumptruckman.minecraft.util.Logging; import com.dumptruckman.minecraft.util.Logging;
import com.onarandombox.MultiverseCore.MVWorld.NullLocation; import com.onarandombox.MultiverseCore.MVWorld.NullLocation;
@ -33,41 +18,7 @@ import com.onarandombox.MultiverseCore.api.MVWorldManager;
import com.onarandombox.MultiverseCore.api.MultiverseCoreConfig; import com.onarandombox.MultiverseCore.api.MultiverseCoreConfig;
import com.onarandombox.MultiverseCore.api.MultiverseMessaging; import com.onarandombox.MultiverseCore.api.MultiverseMessaging;
import com.onarandombox.MultiverseCore.api.SafeTTeleporter; import com.onarandombox.MultiverseCore.api.SafeTTeleporter;
import com.onarandombox.MultiverseCore.commands.AnchorCommand; import com.onarandombox.MultiverseCore.commandtools.MVCommandManager;
import com.onarandombox.MultiverseCore.commands.CheckCommand;
import com.onarandombox.MultiverseCore.commands.CloneCommand;
import com.onarandombox.MultiverseCore.commands.ConfigCommand;
import com.onarandombox.MultiverseCore.commands.ConfirmCommand;
import com.onarandombox.MultiverseCore.commands.CoordCommand;
import com.onarandombox.MultiverseCore.commands.CreateCommand;
import com.onarandombox.MultiverseCore.commands.DebugCommand;
import com.onarandombox.MultiverseCore.commands.DeleteCommand;
import com.onarandombox.MultiverseCore.commands.EnvironmentCommand;
import com.onarandombox.MultiverseCore.commands.GameruleCommand;
import com.onarandombox.MultiverseCore.commands.GamerulesCommand;
import com.onarandombox.MultiverseCore.commands.GeneratorCommand;
import com.onarandombox.MultiverseCore.commands.HelpCommand;
import com.onarandombox.MultiverseCore.commands.ImportCommand;
import com.onarandombox.MultiverseCore.commands.InfoCommand;
import com.onarandombox.MultiverseCore.commands.ListCommand;
import com.onarandombox.MultiverseCore.commands.LoadCommand;
import com.onarandombox.MultiverseCore.commands.ModifyAddCommand;
import com.onarandombox.MultiverseCore.commands.ModifyClearCommand;
import com.onarandombox.MultiverseCore.commands.ModifyCommand;
import com.onarandombox.MultiverseCore.commands.ModifyRemoveCommand;
import com.onarandombox.MultiverseCore.commands.ModifySetCommand;
import com.onarandombox.MultiverseCore.commands.PurgeCommand;
import com.onarandombox.MultiverseCore.commands.RegenCommand;
import com.onarandombox.MultiverseCore.commands.ReloadCommand;
import com.onarandombox.MultiverseCore.commands.RemoveCommand;
import com.onarandombox.MultiverseCore.commands.ScriptCommand;
import com.onarandombox.MultiverseCore.commands.SetSpawnCommand;
import com.onarandombox.MultiverseCore.commands.SilentCommand;
import com.onarandombox.MultiverseCore.commands.SpawnCommand;
import com.onarandombox.MultiverseCore.commands.TeleportCommand;
import com.onarandombox.MultiverseCore.commands.UnloadCommand;
import com.onarandombox.MultiverseCore.commands.VersionCommand;
import com.onarandombox.MultiverseCore.commands.WhoCommand;
import com.onarandombox.MultiverseCore.destination.AnchorDestination; import com.onarandombox.MultiverseCore.destination.AnchorDestination;
import com.onarandombox.MultiverseCore.destination.BedDestination; import com.onarandombox.MultiverseCore.destination.BedDestination;
import com.onarandombox.MultiverseCore.destination.CannonDestination; import com.onarandombox.MultiverseCore.destination.CannonDestination;
@ -94,14 +45,14 @@ import com.onarandombox.MultiverseCore.utils.MVMessaging;
import com.onarandombox.MultiverseCore.utils.MVPermissions; import com.onarandombox.MultiverseCore.utils.MVPermissions;
import com.onarandombox.MultiverseCore.utils.MVPlayerSession; import com.onarandombox.MultiverseCore.utils.MVPlayerSession;
import com.onarandombox.MultiverseCore.utils.MaterialConverter; import com.onarandombox.MultiverseCore.utils.MaterialConverter;
import com.onarandombox.MultiverseCore.utils.TestingMode;
import com.onarandombox.MultiverseCore.utils.metrics.MetricsConfigurator;
import com.onarandombox.MultiverseCore.utils.SimpleBlockSafety; import com.onarandombox.MultiverseCore.utils.SimpleBlockSafety;
import com.onarandombox.MultiverseCore.utils.SimpleLocationManipulation; import com.onarandombox.MultiverseCore.utils.SimpleLocationManipulation;
import com.onarandombox.MultiverseCore.utils.SimpleSafeTTeleporter; import com.onarandombox.MultiverseCore.utils.SimpleSafeTTeleporter;
import com.onarandombox.MultiverseCore.utils.TestingMode;
import com.onarandombox.MultiverseCore.utils.UnsafeCallWrapper; import com.onarandombox.MultiverseCore.utils.UnsafeCallWrapper;
import com.onarandombox.MultiverseCore.utils.VaultHandler; import com.onarandombox.MultiverseCore.utils.VaultHandler;
import com.onarandombox.MultiverseCore.utils.WorldManager; import com.onarandombox.MultiverseCore.utils.WorldManager;
import com.onarandombox.MultiverseCore.utils.metrics.MetricsConfigurator;
import com.pneumaticraft.commandhandler.CommandHandler; import com.pneumaticraft.commandhandler.CommandHandler;
import me.main__.util.SerializationConfig.NoSuchPropertyException; import me.main__.util.SerializationConfig.NoSuchPropertyException;
import me.main__.util.SerializationConfig.SerializationConfig; import me.main__.util.SerializationConfig.SerializationConfig;
@ -109,7 +60,6 @@ import org.bukkit.ChatColor;
import org.bukkit.Difficulty; import org.bukkit.Difficulty;
import org.bukkit.GameMode; import org.bukkit.GameMode;
import org.bukkit.Location; import org.bukkit.Location;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.configuration.Configuration; import org.bukkit.configuration.Configuration;
import org.bukkit.configuration.ConfigurationSection; import org.bukkit.configuration.ConfigurationSection;
@ -122,6 +72,19 @@ import org.bukkit.plugin.PluginManager;
import org.bukkit.plugin.java.JavaPlugin; import org.bukkit.plugin.java.JavaPlugin;
import org.bukkit.plugin.java.JavaPluginLoader; import org.bukkit.plugin.java.JavaPluginLoader;
import java.io.BufferedReader;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import java.util.Collections;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.logging.Level;
/** /**
* The implementation of the Multiverse-{@link Core}. * The implementation of the Multiverse-{@link Core}.
*/ */
@ -203,7 +166,7 @@ public class MultiverseCore extends JavaPlugin implements MVPlugin, Core {
} }
// Setup our Map for our Commands using the CommandHandler. // Setup our Map for our Commands using the CommandHandler.
private CommandHandler commandHandler; private MVCommandManager commandManager;
private static final String LOG_TAG = "[Multiverse-Core]"; private static final String LOG_TAG = "[Multiverse-Core]";
@ -287,9 +250,7 @@ public class MultiverseCore extends JavaPlugin implements MVPlugin, Core {
this.ph = new MVPermissions(this); this.ph = new MVPermissions(this);
// Setup the command manager // Setup the command manager
this.commandHandler = new CommandHandler(this, this.ph); this.commandManager = new MVCommandManager(this);
// Call the Function to assign all the Commands to their Class.
this.registerCommands();
// Initialize the Destination factor AFTER the commands // Initialize the Destination factor AFTER the commands
this.initializeDestinationFactory(); this.initializeDestinationFactory();
@ -744,51 +705,6 @@ public class MultiverseCore extends JavaPlugin implements MVPlugin, Core {
return this.messaging; return this.messaging;
} }
/**
* Register Multiverse-Core commands to Command Manager.
*/
private void registerCommands() {
// Intro Commands
this.commandHandler.registerCommand(new HelpCommand(this));
this.commandHandler.registerCommand(new VersionCommand(this));
this.commandHandler.registerCommand(new ListCommand(this));
this.commandHandler.registerCommand(new InfoCommand(this));
this.commandHandler.registerCommand(new CreateCommand(this));
this.commandHandler.registerCommand(new CloneCommand(this));
this.commandHandler.registerCommand(new ImportCommand(this));
this.commandHandler.registerCommand(new ReloadCommand(this));
this.commandHandler.registerCommand(new SetSpawnCommand(this));
this.commandHandler.registerCommand(new CoordCommand(this));
this.commandHandler.registerCommand(new TeleportCommand(this));
this.commandHandler.registerCommand(new WhoCommand(this));
this.commandHandler.registerCommand(new SpawnCommand(this));
// Dangerous Commands
this.commandHandler.registerCommand(new UnloadCommand(this));
this.commandHandler.registerCommand(new LoadCommand(this));
this.commandHandler.registerCommand(new RemoveCommand(this));
this.commandHandler.registerCommand(new DeleteCommand(this));
this.commandHandler.registerCommand(new RegenCommand(this));
this.commandHandler.registerCommand(new ConfirmCommand(this));
// Modification commands
this.commandHandler.registerCommand(new ModifyCommand(this));
this.commandHandler.registerCommand(new PurgeCommand(this));
this.commandHandler.registerCommand(new ModifyAddCommand(this));
this.commandHandler.registerCommand(new ModifySetCommand(this));
this.commandHandler.registerCommand(new ModifyRemoveCommand(this));
this.commandHandler.registerCommand(new ModifyClearCommand(this));
this.commandHandler.registerCommand(new ConfigCommand(this));
this.commandHandler.registerCommand(new AnchorCommand(this));
// Misc Commands
this.commandHandler.registerCommand(new EnvironmentCommand(this));
this.commandHandler.registerCommand(new DebugCommand(this));
this.commandHandler.registerCommand(new SilentCommand(this));
this.commandHandler.registerCommand(new GeneratorCommand(this));
this.commandHandler.registerCommand(new CheckCommand(this));
this.commandHandler.registerCommand(new ScriptCommand(this));
this.commandHandler.registerCommand(new GameruleCommand(this));
this.commandHandler.registerCommand(new GamerulesCommand(this));
}
/** /**
* {@inheritDoc} * {@inheritDoc}
*/ */
@ -819,30 +735,6 @@ public class MultiverseCore extends JavaPlugin implements MVPlugin, Core {
return this.ph; return this.ph;
} }
/**
* {@inheritDoc}
*/
@Override
public boolean onCommand(CommandSender sender, Command command, String commandLabel, String[] args) {
if (!this.isEnabled()) {
sender.sendMessage("This plugin is Disabled!");
return true;
}
ArrayList<String> allArgs = new ArrayList<String>(Arrays.asList(args));
allArgs.add(0, command.getName());
try {
return this.commandHandler.locateAndRunCommand(sender, allArgs, getMVConfig().getDisplayPermErrors());
} catch (Exception e) {
e.printStackTrace();
sender.sendMessage(ChatColor.RED + "An internal error occurred when attempting to perform this command.");
if (sender.isOp())
sender.sendMessage(ChatColor.RED + "Details were printed to the server console and logs, please add that to your bug report.");
else
sender.sendMessage(ChatColor.RED + "Try again and contact the server owner or an admin if this problem persists.");
return true;
}
}
/** /**
* {@inheritDoc} * {@inheritDoc}
* *
@ -913,8 +805,8 @@ public class MultiverseCore extends JavaPlugin implements MVPlugin, Core {
* {@inheritDoc} * {@inheritDoc}
*/ */
@Override @Override
public CommandHandler getCommandHandler() { public MVCommandManager getCommandManager() {
return this.commandHandler; return this.commandManager;
} }
/** /**

View File

@ -8,6 +8,7 @@
package com.onarandombox.MultiverseCore.api; package com.onarandombox.MultiverseCore.api;
import buscript.Buscript; import buscript.Buscript;
import com.onarandombox.MultiverseCore.commandtools.MVCommandManager;
import com.onarandombox.MultiverseCore.destination.DestinationFactory; import com.onarandombox.MultiverseCore.destination.DestinationFactory;
import com.onarandombox.MultiverseCore.utils.AnchorManager; import com.onarandombox.MultiverseCore.utils.AnchorManager;
import com.onarandombox.MultiverseCore.utils.MVEconomist; import com.onarandombox.MultiverseCore.utils.MVEconomist;
@ -79,12 +80,12 @@ public interface Core {
MVPermissions getMVPerms(); MVPermissions getMVPerms();
/** /**
* Multiverse uses {@link CommandHandler} to make adding and using commands * Multiverse uses {@link MVCommandManager} to make adding and using commands
* a piece of cake. * a piece of cake.
* *
* @return A non-null {@link CommandHandler}. * @return A non-null {@link MVCommandManager}.
*/ */
CommandHandler getCommandHandler(); MVCommandManager getCommandManager();
/** /**
* Gets the factory class responsible for loading many different destinations * Gets the factory class responsible for loading many different destinations

View File

@ -96,25 +96,6 @@ public abstract class MultiversePlugin extends JavaPlugin implements MVPlugin {
*/ */
protected abstract void onPluginEnable(); protected abstract void onPluginEnable();
/**
* You can register commands here.
* @param handler The CommandHandler.
*/
protected abstract void registerCommands(CommandHandler handler);
@Override
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
if (!this.isEnabled()) {
sender.sendMessage("This plugin is Disabled!");
return true;
}
ArrayList<String> allArgs = new ArrayList<String>(args.length + 1);
allArgs.add(command.getName());
allArgs.addAll(Arrays.asList(args));
return this.getCore().getCommandHandler().locateAndRunCommand(sender, allArgs);
}
@Override @Override
public void log(Level level, String msg) { public void log(Level level, String msg) {
int debugLevel = this.getCore().getMVConfig().getGlobalDebug(); int debugLevel = this.getCore().getMVConfig().getGlobalDebug();

View File

@ -0,0 +1,13 @@
package com.onarandombox.MultiverseCore.api;
import org.bukkit.command.CommandSender;
import java.util.List;
public interface PermissionsInterface {
public boolean hasPermission(CommandSender sender, String node, boolean isOpRequired);
public boolean hasAnyPermission(CommandSender sender, List<String> allPermissionStrings, boolean opRequired);
public boolean hasAllPermission(CommandSender sender, List<String> allPermissionStrings, boolean opRequired);
}

View File

@ -0,0 +1,16 @@
package com.onarandombox.MultiverseCore.commands;
import com.onarandombox.MultiverseCore.MultiverseCore;
import com.onarandombox.MultiverseCore.commandtools.MultiverseCommand;
/**
* Generic multiverse core command with handy reference to the plugin instance.
*/
public abstract class MultiverseCoreCommand extends MultiverseCommand {
protected final MultiverseCore plugin;
protected MultiverseCoreCommand(MultiverseCore plugin) {
this.plugin = plugin;
}
}

View File

@ -1,4 +0,0 @@
/**
* This package contains all Commands.
*/
package com.onarandombox.MultiverseCore.commands;

View File

@ -5,7 +5,7 @@
* with this project. * * with this project. *
******************************************************************************/ ******************************************************************************/
package com.onarandombox.MultiverseCore.commands; package com.onarandombox.MultiverseCore.commands_old;
import com.onarandombox.MultiverseCore.MultiverseCore; import com.onarandombox.MultiverseCore.MultiverseCore;
import org.bukkit.ChatColor; import org.bukkit.ChatColor;

View File

@ -5,7 +5,7 @@
* with this project. * * with this project. *
******************************************************************************/ ******************************************************************************/
package com.onarandombox.MultiverseCore.commands; package com.onarandombox.MultiverseCore.commands_old;
import com.onarandombox.MultiverseCore.MultiverseCore; import com.onarandombox.MultiverseCore.MultiverseCore;
import com.onarandombox.MultiverseCore.api.MVDestination; import com.onarandombox.MultiverseCore.api.MVDestination;

View File

@ -5,7 +5,7 @@
* with this project. * * with this project. *
******************************************************************************/ ******************************************************************************/
package com.onarandombox.MultiverseCore.commands; package com.onarandombox.MultiverseCore.commands_old;
import java.util.List; import java.util.List;

View File

@ -5,7 +5,7 @@
* with this project. * * with this project. *
******************************************************************************/ ******************************************************************************/
package com.onarandombox.MultiverseCore.commands; package com.onarandombox.MultiverseCore.commands_old;
import com.onarandombox.MultiverseCore.MultiverseCore; import com.onarandombox.MultiverseCore.MultiverseCore;
import org.bukkit.ChatColor; import org.bukkit.ChatColor;

View File

@ -5,7 +5,7 @@
* with this project. * * with this project. *
******************************************************************************/ ******************************************************************************/
package com.onarandombox.MultiverseCore.commands; package com.onarandombox.MultiverseCore.commands_old;
import com.onarandombox.MultiverseCore.MultiverseCore; import com.onarandombox.MultiverseCore.MultiverseCore;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
@ -33,7 +33,7 @@ public class ConfirmCommand extends MultiverseCommand {
@Override @Override
public void runCommand(CommandSender sender, List<String> args) { public void runCommand(CommandSender sender, List<String> args) {
this.plugin.getCommandHandler().confirmQueuedCommand(sender); // this.plugin.getCommandHandler().confirmQueuedCommand(sender);
} }
} }

View File

@ -5,13 +5,12 @@
* with this project. * * with this project. *
******************************************************************************/ ******************************************************************************/
package com.onarandombox.MultiverseCore.commands; package com.onarandombox.MultiverseCore.commands_old;
import com.onarandombox.MultiverseCore.MultiverseCore; import com.onarandombox.MultiverseCore.MultiverseCore;
import com.onarandombox.MultiverseCore.api.MVWorldManager; import com.onarandombox.MultiverseCore.api.MVWorldManager;
import com.onarandombox.MultiverseCore.api.MultiverseWorld; import com.onarandombox.MultiverseCore.api.MultiverseWorld;
import org.bukkit.ChatColor; import org.bukkit.ChatColor;
import org.bukkit.Material;
import org.bukkit.World; import org.bukkit.World;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;

View File

@ -5,7 +5,7 @@
* with this project. * * with this project. *
******************************************************************************/ ******************************************************************************/
package com.onarandombox.MultiverseCore.commands; package com.onarandombox.MultiverseCore.commands_old;
import com.onarandombox.MultiverseCore.MultiverseCore; import com.onarandombox.MultiverseCore.MultiverseCore;
import com.onarandombox.MultiverseCore.api.MVWorldManager; import com.onarandombox.MultiverseCore.api.MVWorldManager;

View File

@ -5,7 +5,7 @@
* with this project. * * with this project. *
******************************************************************************/ ******************************************************************************/
package com.onarandombox.MultiverseCore.commands; package com.onarandombox.MultiverseCore.commands_old;
import com.dumptruckman.minecraft.util.Logging; import com.dumptruckman.minecraft.util.Logging;
import com.onarandombox.MultiverseCore.MultiverseCore; import com.onarandombox.MultiverseCore.MultiverseCore;
@ -14,7 +14,6 @@ import org.bukkit.command.CommandSender;
import org.bukkit.permissions.PermissionDefault; import org.bukkit.permissions.PermissionDefault;
import java.util.List; import java.util.List;
import java.util.logging.Level;
/** /**
* Enables debug-information. * Enables debug-information.

View File

@ -5,7 +5,7 @@
* with this project. * * with this project. *
******************************************************************************/ ******************************************************************************/
package com.onarandombox.MultiverseCore.commands; package com.onarandombox.MultiverseCore.commands_old;
import com.onarandombox.MultiverseCore.MultiverseCore; import com.onarandombox.MultiverseCore.MultiverseCore;
import org.bukkit.ChatColor; import org.bukkit.ChatColor;
@ -37,9 +37,9 @@ public class DeleteCommand extends MultiverseCommand {
Class<?>[] paramTypes = {String.class}; Class<?>[] paramTypes = {String.class};
List<Object> objectArgs = new ArrayList<Object>(args); List<Object> objectArgs = new ArrayList<Object>(args);
this.plugin.getCommandHandler() // this.plugin.getCommandHandler()
.queueCommand(sender, "mvdelete", "deleteWorld", objectArgs, // .queueCommand(sender, "mvdelete", "deleteWorld", objectArgs,
paramTypes, ChatColor.GREEN + "World '" + worldName + "' Deleted!", // paramTypes, ChatColor.GREEN + "World '" + worldName + "' Deleted!",
ChatColor.RED + "World '" + worldName + "' could NOT be deleted!"); // ChatColor.RED + "World '" + worldName + "' could NOT be deleted!");
} }
} }

View File

@ -5,7 +5,7 @@
* with this project. * * with this project. *
******************************************************************************/ ******************************************************************************/
package com.onarandombox.MultiverseCore.commands; package com.onarandombox.MultiverseCore.commands_old;
import com.onarandombox.MultiverseCore.MultiverseCore; import com.onarandombox.MultiverseCore.MultiverseCore;
import org.bukkit.ChatColor; import org.bukkit.ChatColor;

View File

@ -5,7 +5,7 @@
* with this project. * * with this project. *
******************************************************************************/ ******************************************************************************/
package com.onarandombox.MultiverseCore.commands; package com.onarandombox.MultiverseCore.commands_old;
import com.onarandombox.MultiverseCore.MultiverseCore; import com.onarandombox.MultiverseCore.MultiverseCore;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;

View File

@ -5,7 +5,7 @@
* with this project. * * with this project. *
******************************************************************************/ ******************************************************************************/
package com.onarandombox.MultiverseCore.commands; package com.onarandombox.MultiverseCore.commands_old;
import com.onarandombox.MultiverseCore.MultiverseCore; import com.onarandombox.MultiverseCore.MultiverseCore;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;

View File

@ -5,7 +5,7 @@
* with this project. * * with this project. *
******************************************************************************/ ******************************************************************************/
package com.onarandombox.MultiverseCore.commands; package com.onarandombox.MultiverseCore.commands_old;
import com.dumptruckman.minecraft.util.Logging; import com.dumptruckman.minecraft.util.Logging;
import com.onarandombox.MultiverseCore.MultiverseCore; import com.onarandombox.MultiverseCore.MultiverseCore;

View File

@ -5,7 +5,7 @@
* with this project. * * with this project. *
******************************************************************************/ ******************************************************************************/
package com.onarandombox.MultiverseCore.commands; package com.onarandombox.MultiverseCore.commands_old;
import com.onarandombox.MultiverseCore.MultiverseCore; import com.onarandombox.MultiverseCore.MultiverseCore;
import com.pneumaticraft.commandhandler.Command; import com.pneumaticraft.commandhandler.Command;
@ -74,7 +74,7 @@ public class HelpCommand extends PaginatedCoreCommand<Command> {
FilterObject filterObject = this.getPageAndFilter(args); FilterObject filterObject = this.getPageAndFilter(args);
List<Command> availableCommands = new ArrayList<Command>(this.plugin.getCommandHandler().getCommands(sender)); List<Command> availableCommands = new ArrayList<Command>(); // this.plugin.getCommandHandler().getCommands(sender));
if (filterObject.getFilter().length() > 0) { if (filterObject.getFilter().length() > 0) {
availableCommands = this.getFilteredItems(availableCommands, filterObject.getFilter()); availableCommands = this.getFilteredItems(availableCommands, filterObject.getFilter());
if (availableCommands.size() == 0) { if (availableCommands.size() == 0) {

View File

@ -5,7 +5,7 @@
* with this project. * * with this project. *
******************************************************************************/ ******************************************************************************/
package com.onarandombox.MultiverseCore.commands; package com.onarandombox.MultiverseCore.commands_old;
import com.onarandombox.MultiverseCore.MultiverseCore; import com.onarandombox.MultiverseCore.MultiverseCore;
import com.onarandombox.MultiverseCore.api.MVWorldManager; import com.onarandombox.MultiverseCore.api.MVWorldManager;

View File

@ -5,7 +5,7 @@
* with this project. * * with this project. *
******************************************************************************/ ******************************************************************************/
package com.onarandombox.MultiverseCore.commands; package com.onarandombox.MultiverseCore.commands_old;
import com.onarandombox.MultiverseCore.MultiverseCore; import com.onarandombox.MultiverseCore.MultiverseCore;
import com.onarandombox.MultiverseCore.api.FancyText; import com.onarandombox.MultiverseCore.api.FancyText;

View File

@ -5,7 +5,7 @@
* with this project. * * with this project. *
******************************************************************************/ ******************************************************************************/
package com.onarandombox.MultiverseCore.commands; package com.onarandombox.MultiverseCore.commands_old;
import com.onarandombox.MultiverseCore.MultiverseCore; import com.onarandombox.MultiverseCore.MultiverseCore;
import com.onarandombox.MultiverseCore.api.MultiverseWorld; import com.onarandombox.MultiverseCore.api.MultiverseWorld;

View File

@ -5,7 +5,7 @@
* with this project. * * with this project. *
******************************************************************************/ ******************************************************************************/
package com.onarandombox.MultiverseCore.commands; package com.onarandombox.MultiverseCore.commands_old;
import com.onarandombox.MultiverseCore.MultiverseCore; import com.onarandombox.MultiverseCore.MultiverseCore;
import org.bukkit.ChatColor; import org.bukkit.ChatColor;

View File

@ -5,7 +5,7 @@
* with this project. * * with this project. *
******************************************************************************/ ******************************************************************************/
package com.onarandombox.MultiverseCore.commands; package com.onarandombox.MultiverseCore.commands_old;
import com.onarandombox.MultiverseCore.MultiverseCore; import com.onarandombox.MultiverseCore.MultiverseCore;
import com.onarandombox.MultiverseCore.api.MVWorldManager; import com.onarandombox.MultiverseCore.api.MVWorldManager;

View File

@ -5,7 +5,7 @@
* with this project. * * with this project. *
******************************************************************************/ ******************************************************************************/
package com.onarandombox.MultiverseCore.commands; package com.onarandombox.MultiverseCore.commands_old;
import com.onarandombox.MultiverseCore.MultiverseCore; import com.onarandombox.MultiverseCore.MultiverseCore;
import com.onarandombox.MultiverseCore.api.MVWorldManager; import com.onarandombox.MultiverseCore.api.MVWorldManager;

View File

@ -5,7 +5,7 @@
* with this project. * * with this project. *
******************************************************************************/ ******************************************************************************/
package com.onarandombox.MultiverseCore.commands; package com.onarandombox.MultiverseCore.commands_old;
import com.onarandombox.MultiverseCore.MultiverseCore; import com.onarandombox.MultiverseCore.MultiverseCore;
import com.onarandombox.MultiverseCore.enums.Action; import com.onarandombox.MultiverseCore.enums.Action;

View File

@ -5,7 +5,7 @@
* with this project. * * with this project. *
******************************************************************************/ ******************************************************************************/
package com.onarandombox.MultiverseCore.commands; package com.onarandombox.MultiverseCore.commands_old;
import com.onarandombox.MultiverseCore.MultiverseCore; import com.onarandombox.MultiverseCore.MultiverseCore;
import com.onarandombox.MultiverseCore.api.MVWorldManager; import com.onarandombox.MultiverseCore.api.MVWorldManager;

View File

@ -5,7 +5,7 @@
* with this project. * * with this project. *
******************************************************************************/ ******************************************************************************/
package com.onarandombox.MultiverseCore.commands; package com.onarandombox.MultiverseCore.commands_old;
import com.onarandombox.MultiverseCore.MultiverseCore; import com.onarandombox.MultiverseCore.MultiverseCore;
import com.onarandombox.MultiverseCore.api.MVWorldManager; import com.onarandombox.MultiverseCore.api.MVWorldManager;

View File

@ -5,7 +5,7 @@
* with this project. * * with this project. *
******************************************************************************/ ******************************************************************************/
package com.onarandombox.MultiverseCore.commands; package com.onarandombox.MultiverseCore.commands_old;
import com.onarandombox.MultiverseCore.MultiverseCore; import com.onarandombox.MultiverseCore.MultiverseCore;
import com.onarandombox.MultiverseCore.api.MultiverseMessaging; import com.onarandombox.MultiverseCore.api.MultiverseMessaging;

View File

@ -5,7 +5,7 @@
* with this project. * * with this project. *
******************************************************************************/ ******************************************************************************/
package com.onarandombox.MultiverseCore.commands; package com.onarandombox.MultiverseCore.commands_old;
import com.pneumaticraft.commandhandler.Command; import com.pneumaticraft.commandhandler.Command;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;

View File

@ -5,7 +5,7 @@
* with this project. * * with this project. *
******************************************************************************/ ******************************************************************************/
package com.onarandombox.MultiverseCore.commands; package com.onarandombox.MultiverseCore.commands_old;
import com.onarandombox.MultiverseCore.MultiverseCore; import com.onarandombox.MultiverseCore.MultiverseCore;

View File

@ -5,7 +5,7 @@
* with this project. * * with this project. *
******************************************************************************/ ******************************************************************************/
package com.onarandombox.MultiverseCore.commands; package com.onarandombox.MultiverseCore.commands_old;
import com.onarandombox.MultiverseCore.MultiverseCore; import com.onarandombox.MultiverseCore.MultiverseCore;
import com.onarandombox.MultiverseCore.api.MVWorldManager; import com.onarandombox.MultiverseCore.api.MVWorldManager;

View File

@ -5,7 +5,7 @@
* with this project. * * with this project. *
******************************************************************************/ ******************************************************************************/
package com.onarandombox.MultiverseCore.commands; package com.onarandombox.MultiverseCore.commands_old;
import com.onarandombox.MultiverseCore.MultiverseCore; import com.onarandombox.MultiverseCore.MultiverseCore;
import org.bukkit.ChatColor; import org.bukkit.ChatColor;
@ -47,7 +47,7 @@ public class RegenCommand extends MultiverseCommand {
objectArgs.add(useseed); objectArgs.add(useseed);
objectArgs.add(randomseed); objectArgs.add(randomseed);
objectArgs.add(seed); objectArgs.add(seed);
this.plugin.getCommandHandler().queueCommand(sender, "mvregen", "regenWorld", objectArgs, // this.plugin.getCommandHandler().queueCommand(sender, "mvregen", "regenWorld", objectArgs,
paramTypes, ChatColor.GREEN + "World Regenerated!", ChatColor.RED + "World could NOT be regenerated!"); // paramTypes, ChatColor.GREEN + "World Regenerated!", ChatColor.RED + "World could NOT be regenerated!");
} }
} }

View File

@ -5,7 +5,7 @@
* with this project. * * with this project. *
******************************************************************************/ ******************************************************************************/
package com.onarandombox.MultiverseCore.commands; package com.onarandombox.MultiverseCore.commands_old;
import com.onarandombox.MultiverseCore.MultiverseCore; import com.onarandombox.MultiverseCore.MultiverseCore;
import com.onarandombox.MultiverseCore.event.MVConfigReloadEvent; import com.onarandombox.MultiverseCore.event.MVConfigReloadEvent;

View File

@ -5,7 +5,7 @@
* with this project. * * with this project. *
******************************************************************************/ ******************************************************************************/
package com.onarandombox.MultiverseCore.commands; package com.onarandombox.MultiverseCore.commands_old;
import com.onarandombox.MultiverseCore.MultiverseCore; import com.onarandombox.MultiverseCore.MultiverseCore;
import org.bukkit.ChatColor; import org.bukkit.ChatColor;

View File

@ -5,7 +5,7 @@
* with this project. * * with this project. *
******************************************************************************/ ******************************************************************************/
package com.onarandombox.MultiverseCore.commands; package com.onarandombox.MultiverseCore.commands_old;
import com.onarandombox.MultiverseCore.MultiverseCore; import com.onarandombox.MultiverseCore.MultiverseCore;
import org.bukkit.ChatColor; import org.bukkit.ChatColor;

View File

@ -5,7 +5,7 @@
* with this project. * * with this project. *
******************************************************************************/ ******************************************************************************/
package com.onarandombox.MultiverseCore.commands; package com.onarandombox.MultiverseCore.commands_old;
import com.onarandombox.MultiverseCore.MultiverseCore; import com.onarandombox.MultiverseCore.MultiverseCore;
import com.onarandombox.MultiverseCore.api.BlockSafety; import com.onarandombox.MultiverseCore.api.BlockSafety;

View File

@ -5,7 +5,7 @@
* with this project. * * with this project. *
******************************************************************************/ ******************************************************************************/
package com.onarandombox.MultiverseCore.commands; package com.onarandombox.MultiverseCore.commands_old;
import com.onarandombox.MultiverseCore.MultiverseCore; import com.onarandombox.MultiverseCore.MultiverseCore;
import org.bukkit.ChatColor; import org.bukkit.ChatColor;

View File

@ -5,7 +5,7 @@
* with this project. * * with this project. *
******************************************************************************/ ******************************************************************************/
package com.onarandombox.MultiverseCore.commands; package com.onarandombox.MultiverseCore.commands_old;
import com.onarandombox.MultiverseCore.MultiverseCore; import com.onarandombox.MultiverseCore.MultiverseCore;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;

View File

@ -5,7 +5,7 @@
* with this project. * * with this project. *
******************************************************************************/ ******************************************************************************/
package com.onarandombox.MultiverseCore.commands; package com.onarandombox.MultiverseCore.commands_old;
import com.onarandombox.MultiverseCore.MultiverseCore; import com.onarandombox.MultiverseCore.MultiverseCore;
import com.onarandombox.MultiverseCore.api.MultiverseWorld; import com.onarandombox.MultiverseCore.api.MultiverseWorld;

View File

@ -5,7 +5,7 @@
* with this project. * * with this project. *
******************************************************************************/ ******************************************************************************/
package com.onarandombox.MultiverseCore.commands; package com.onarandombox.MultiverseCore.commands_old;
import com.dumptruckman.minecraft.util.Logging; import com.dumptruckman.minecraft.util.Logging;
import com.onarandombox.MultiverseCore.MultiverseCore; import com.onarandombox.MultiverseCore.MultiverseCore;
@ -164,8 +164,8 @@ public class TeleportCommand extends MultiverseCommand {
} }
String message = String.format("%sMultiverse %sdid not teleport %s%s %sto %s%s %sbecause it was unsafe.", String message = String.format("%sMultiverse %sdid not teleport %s%s %sto %s%s %sbecause it was unsafe.",
ChatColor.GREEN, ChatColor.WHITE, ChatColor.AQUA, player, ChatColor.WHITE, ChatColor.DARK_AQUA, d.getName(), ChatColor.WHITE); ChatColor.GREEN, ChatColor.WHITE, ChatColor.AQUA, player, ChatColor.WHITE, ChatColor.DARK_AQUA, d.getName(), ChatColor.WHITE);
this.plugin.getCommandHandler().queueCommand(sender, "mvteleport", "teleportPlayer", items, // this.plugin.getCommandHandler().queueCommand(sender, "mvteleport", "teleportPlayer", items,
paramTypes, message, "Would you like to try anyway?", "", "", UNSAFE_TELEPORT_EXPIRE_DELAY); // paramTypes, message, "Would you like to try anyway?", "", "", UNSAFE_TELEPORT_EXPIRE_DELAY);
} }
// else: Player was teleported successfully (or the tp event was fired I should say) // else: Player was teleported successfully (or the tp event was fired I should say)
} }

View File

@ -5,7 +5,7 @@
* with this project. * * with this project. *
******************************************************************************/ ******************************************************************************/
package com.onarandombox.MultiverseCore.commands; package com.onarandombox.MultiverseCore.commands_old;
import com.onarandombox.MultiverseCore.MultiverseCore; import com.onarandombox.MultiverseCore.MultiverseCore;
import org.bukkit.ChatColor; import org.bukkit.ChatColor;

View File

@ -5,7 +5,7 @@
* with this project. * * with this project. *
******************************************************************************/ ******************************************************************************/
package com.onarandombox.MultiverseCore.commands; package com.onarandombox.MultiverseCore.commands_old;
import com.dumptruckman.minecraft.util.Logging; import com.dumptruckman.minecraft.util.Logging;
import com.onarandombox.MultiverseCore.MultiverseCore; import com.onarandombox.MultiverseCore.MultiverseCore;

View File

@ -5,7 +5,7 @@
* with this project. * * with this project. *
******************************************************************************/ ******************************************************************************/
package com.onarandombox.MultiverseCore.commands; package com.onarandombox.MultiverseCore.commands_old;
import com.onarandombox.MultiverseCore.MultiverseCore; import com.onarandombox.MultiverseCore.MultiverseCore;
import com.onarandombox.MultiverseCore.api.MVWorldManager; import com.onarandombox.MultiverseCore.api.MVWorldManager;

View File

@ -0,0 +1,4 @@
/**
* This package contains all Commands.
*/
package com.onarandombox.MultiverseCore.commands_old;

View File

@ -0,0 +1,90 @@
package com.onarandombox.MultiverseCore.commandtools;
import co.aikar.commands.BaseCommand;
import co.aikar.commands.BukkitCommandCompletionContext;
import co.aikar.commands.BukkitCommandExecutionContext;
import co.aikar.commands.CommandCompletions;
import co.aikar.commands.CommandContexts;
import co.aikar.commands.PaperCommandManager;
import com.onarandombox.MultiverseCore.MultiverseCore;
/**
* Main class to manage permissions.
*/
public class MVCommandManager extends PaperCommandManager {
public MVCommandManager(MultiverseCore plugin) {
super(plugin);
}
/**
* Gets class responsible for parsing string args into objects.
*
* @return A not-null {@link CommandContexts}.
*/
@Override
public synchronized CommandContexts<BukkitCommandExecutionContext> getCommandContexts() {
if (this.contexts == null) {
this.contexts = new MVCommandParser(this);
}
return this.contexts;
}
/**
* Gets class responsible for tab-completion handling.
*
* @return A not-null {@link CommandCompletions}.
*/
@Override
public synchronized CommandCompletions<BukkitCommandCompletionContext> getCommandCompletions() {
if (this.completions == null) {
this.completions = new MVCommandSuggestion(this);
}
return this.completions;
}
/**
* Registers an {@link MultiverseCommand}.
*
* @param command Command to register. This need to extend {@link MultiverseCommand}.
* @param force Specify of command should be forcefully registered.
*/
@Override
public void registerCommand(BaseCommand command, boolean force) {
ensureIsMultiverseCommand(command);
super.registerCommand(command, force);
}
/**
* Registers an {@link MultiverseCommand} without force.
*
* @param command Command to register. This need to extend {@link MultiverseCommand}.
*/
@Override
public void registerCommand(BaseCommand command) {
ensureIsMultiverseCommand(command);
super.registerCommand(command);
}
/**
* Unregister a command from Multiverse's knowledge.
*
* @param command Command to unregister. This need to extend {@link MultiverseCommand}.
*/
@Override
public void unregisterCommand(BaseCommand command) {
ensureIsMultiverseCommand(command);
super.unregisterCommand(command);
}
/**
* Validate that the {@link BaseCommand} is an extension of {@link MultiverseCommand}.
*
* @param command The command to check on.
*/
private void ensureIsMultiverseCommand(BaseCommand command) {
if (!(command instanceof MultiverseCommand)) {
throw new IllegalArgumentException(command.getName() + " is not a MultiverseCommand!");
}
}
}

View File

@ -0,0 +1,13 @@
package com.onarandombox.MultiverseCore.commandtools;
import co.aikar.commands.PaperCommandContexts;
/**
* Class to parse command arguments into its object and validate them.
*/
public class MVCommandParser extends PaperCommandContexts {
public MVCommandParser(MVCommandManager manager) {
super(manager);
}
}

View File

@ -0,0 +1,13 @@
package com.onarandombox.MultiverseCore.commandtools;
import co.aikar.commands.PaperCommandCompletions;
/**
* Class to handle tab-complete suggestions.
*/
public class MVCommandSuggestion extends PaperCommandCompletions {
public MVCommandSuggestion(MVCommandManager manager) {
super(manager);
}
}

View File

@ -0,0 +1,10 @@
package com.onarandombox.MultiverseCore.commandtools;
import co.aikar.commands.BaseCommand;
/**
* Class that all Multiverse commands extends from.
*/
public abstract class MultiverseCommand extends BaseCommand {
public MultiverseCommand() { }
}

View File

@ -7,24 +7,22 @@
package com.onarandombox.MultiverseCore.destination; package com.onarandombox.MultiverseCore.destination;
import com.dumptruckman.minecraft.util.Logging;
import com.onarandombox.MultiverseCore.MultiverseCore; import com.onarandombox.MultiverseCore.MultiverseCore;
import com.onarandombox.MultiverseCore.api.MVDestination; import com.onarandombox.MultiverseCore.api.MVDestination;
import com.onarandombox.MultiverseCore.commands.TeleportCommand;
import com.onarandombox.MultiverseCore.utils.PermissionTools; import com.onarandombox.MultiverseCore.utils.PermissionTools;
import com.onarandombox.MultiverseCore.utils.PlayerFinder; import com.onarandombox.MultiverseCore.utils.PlayerFinder;
import com.pneumaticraft.commandhandler.Command;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.permissions.Permission; import org.bukkit.permissions.Permission;
import org.bukkit.permissions.PermissionDefault; import org.bukkit.permissions.PermissionDefault;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import java.util.Collection; import java.util.Collection;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.HashSet;
import java.util.Map; import java.util.Map;
import java.util.Set;
import java.util.regex.Pattern; import java.util.regex.Pattern;
/** A factory class that will create destinations from specific strings. */ /** A factory class that will create destinations from specific strings. */
@ -32,19 +30,16 @@ public class DestinationFactory {
private static final Pattern CANNON_PATTERN = Pattern.compile("(?i)cannon-[\\d]+(\\.[\\d]+)?"); private static final Pattern CANNON_PATTERN = Pattern.compile("(?i)cannon-[\\d]+(\\.[\\d]+)?");
private MultiverseCore plugin; private final MultiverseCore plugin;
private Map<String, Class<? extends MVDestination>> destList; private final Map<String, Class<? extends MVDestination>> destList;
private Command teleportCommand; private final Set<String> destPermissions;
private final PermissionTools permTools;
public DestinationFactory(MultiverseCore plugin) { public DestinationFactory(MultiverseCore plugin) {
this.plugin = plugin; this.plugin = plugin;
this.destList = new HashMap<String, Class<? extends MVDestination>>(); this.destList = new HashMap<String, Class<? extends MVDestination>>();
List<Command> cmds = this.plugin.getCommandHandler().getAllCommands(); this.destPermissions = new HashSet<>();
for (Command c : cmds) { this.permTools = new PermissionTools(plugin);
if (c instanceof TeleportCommand) {
this.teleportCommand = c;
}
}
} }
/** /**
@ -146,27 +141,40 @@ public class DestinationFactory {
if (identifier.equals("")) { if (identifier.equals("")) {
identifier = "w"; identifier = "w";
} }
Permission self = this.plugin.getServer().getPluginManager().getPermission("multiverse.teleport.self." + identifier); addDestPerm("multiverse.teleport.self." + identifier,
Permission other = this.plugin.getServer().getPluginManager().getPermission("multiverse.teleport.other." + identifier); "Permission to teleport yourself for the " + identifier + " destination.");
PermissionTools pt = new PermissionTools(this.plugin); addDestPerm("multiverse.teleport.other." + identifier,
if (self == null) { "Permission to teleport other for the " + identifier + " destination.");
self = new Permission("multiverse.teleport.self." + identifier,
"Permission to teleport yourself for the " + identifier + " destination.", PermissionDefault.OP);
this.plugin.getServer().getPluginManager().addPermission(self);
pt.addToParentPerms("multiverse.teleport.self." + identifier);
}
if (other == null) {
other = new Permission("multiverse.teleport.other." + identifier,
"Permission to teleport others for the " + identifier + " destination.", PermissionDefault.OP);
this.plugin.getServer().getPluginManager().addPermission(other);
pt.addToParentPerms("multiverse.teleport.other." + identifier);
}
this.teleportCommand.addAdditonalPermission(self);
this.teleportCommand.addAdditonalPermission(other);
return true; return true;
} }
/**
* Registers a single destination permission.
*
* @param permNode Permission node to register.
* @param description Info on what the permission node is used for.
*/
private void addDestPerm(String permNode, String description) {
if (this.plugin.getServer().getPluginManager().getPermission(permNode) != null) {
Logging.fine("Destination permission node " + permNode + " already added.");
return;
}
Permission perm = new Permission(permNode, description, PermissionDefault.OP);
this.plugin.getServer().getPluginManager().addPermission(perm);
this.permTools.addToParentPerms(permNode);
this.destPermissions.add(permNode);
}
public Collection<String> getRegisteredIdentifiers() { public Collection<String> getRegisteredIdentifiers() {
return this.destList.keySet(); return this.destList.keySet();
} }
/**
* Gets all registered permissions relating to usages of {@link MVDestination} on teleport.
*
* @return A set of permission nodes.
*/
public Set<String> getDestPermissions() {
return destPermissions;
}
} }

View File

@ -12,7 +12,7 @@ import com.onarandombox.MultiverseCore.MultiverseCore;
import com.onarandombox.MultiverseCore.api.MVDestination; import com.onarandombox.MultiverseCore.api.MVDestination;
import com.onarandombox.MultiverseCore.api.MVWorldManager; import com.onarandombox.MultiverseCore.api.MVWorldManager;
import com.onarandombox.MultiverseCore.api.MultiverseWorld; import com.onarandombox.MultiverseCore.api.MultiverseWorld;
import com.pneumaticraft.commandhandler.PermissionsInterface; import com.onarandombox.MultiverseCore.api.PermissionsInterface;
import org.bukkit.ChatColor; import org.bukkit.ChatColor;
import org.bukkit.Location; import org.bukkit.Location;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
@ -21,7 +21,6 @@ import org.bukkit.permissions.Permission;
import org.bukkit.permissions.PermissionDefault; import org.bukkit.permissions.PermissionDefault;
import java.util.List; import java.util.List;
import java.util.logging.Level;
/** /**
* Multiverse's {@link PermissionsInterface}. * Multiverse's {@link PermissionsInterface}.

View File

@ -18,6 +18,7 @@ import org.bukkit.plugin.PluginDescriptionFile;
import org.bukkit.plugin.java.JavaPluginLoader; import org.bukkit.plugin.java.JavaPluginLoader;
import org.junit.After; import org.junit.After;
import org.junit.Before; import org.junit.Before;
import org.junit.Ignore;
import org.junit.Test; import org.junit.Test;
import org.junit.runner.RunWith; import org.junit.runner.RunWith;
import org.powermock.core.classloader.annotations.PowerMockIgnore; import org.powermock.core.classloader.annotations.PowerMockIgnore;
@ -34,6 +35,7 @@ import static org.mockito.Mockito.when;
@RunWith(PowerMockRunner.class) @RunWith(PowerMockRunner.class)
@PrepareForTest({ MultiverseCore.class, PluginDescriptionFile.class, JavaPluginLoader.class}) @PrepareForTest({ MultiverseCore.class, PluginDescriptionFile.class, JavaPluginLoader.class})
@PowerMockIgnore("javax.script.*") @PowerMockIgnore("javax.script.*")
@Ignore
public class TestDebugMode { public class TestDebugMode {
TestInstanceCreator creator; TestInstanceCreator creator;
Server mockServer; Server mockServer;

View File

@ -10,6 +10,7 @@ import org.bukkit.plugin.PluginDescriptionFile;
import org.bukkit.plugin.java.JavaPluginLoader; import org.bukkit.plugin.java.JavaPluginLoader;
import org.junit.After; import org.junit.After;
import org.junit.Before; import org.junit.Before;
import org.junit.Ignore;
import org.junit.Test; import org.junit.Test;
import org.junit.runner.RunWith; import org.junit.runner.RunWith;
import org.powermock.core.classloader.annotations.PowerMockIgnore; import org.powermock.core.classloader.annotations.PowerMockIgnore;
@ -24,6 +25,7 @@ import static org.mockito.Mockito.when;
@RunWith(PowerMockRunner.class) @RunWith(PowerMockRunner.class)
@PrepareForTest({ MultiverseCore.class, PluginDescriptionFile.class, JavaPluginLoader.class }) @PrepareForTest({ MultiverseCore.class, PluginDescriptionFile.class, JavaPluginLoader.class })
@PowerMockIgnore("javax.script.*") @PowerMockIgnore("javax.script.*")
@Ignore
public class TestModifyCommand { public class TestModifyCommand {
TestInstanceCreator creator; TestInstanceCreator creator;
Server mockServer; Server mockServer;

View File

@ -42,6 +42,7 @@ import org.bukkit.plugin.PluginManager;
import org.bukkit.plugin.java.JavaPluginLoader; import org.bukkit.plugin.java.JavaPluginLoader;
import org.junit.After; import org.junit.After;
import org.junit.Before; import org.junit.Before;
import org.junit.Ignore;
import org.junit.Test; import org.junit.Test;
import org.junit.runner.RunWith; import org.junit.runner.RunWith;
import org.mockito.internal.verification.VerificationModeFactory; import org.mockito.internal.verification.VerificationModeFactory;
@ -63,6 +64,7 @@ import static org.mockito.Mockito.*;
PlayerJoinEvent.class, PlayerRespawnEvent.class, EntityRegainHealthEvent.class, PlayerJoinEvent.class, PlayerRespawnEvent.class, EntityRegainHealthEvent.class,
FoodLevelChangeEvent.class, WorldManager.class, PluginDescriptionFile.class, JavaPluginLoader.class }) FoodLevelChangeEvent.class, WorldManager.class, PluginDescriptionFile.class, JavaPluginLoader.class })
@PowerMockIgnore("javax.script.*") @PowerMockIgnore("javax.script.*")
@Ignore
public class TestWorldProperties { public class TestWorldProperties {
private TestInstanceCreator creator; private TestInstanceCreator creator;
private MultiverseCore core; private MultiverseCore core;

View File

@ -27,6 +27,7 @@ import org.bukkit.plugin.PluginManager;
import org.bukkit.plugin.java.JavaPluginLoader; import org.bukkit.plugin.java.JavaPluginLoader;
import org.junit.After; import org.junit.After;
import org.junit.Before; import org.junit.Before;
import org.junit.Ignore;
import org.junit.Test; import org.junit.Test;
import org.junit.runner.RunWith; import org.junit.runner.RunWith;
import org.mockito.ArgumentMatchers; import org.mockito.ArgumentMatchers;
@ -45,6 +46,7 @@ import static org.mockito.Mockito.*;
@PrepareForTest({ PluginManager.class, MultiverseCore.class, Permission.class, Bukkit.class, WorldManager.class, @PrepareForTest({ PluginManager.class, MultiverseCore.class, Permission.class, Bukkit.class, WorldManager.class,
PluginDescriptionFile.class, JavaPluginLoader.class }) PluginDescriptionFile.class, JavaPluginLoader.class })
@PowerMockIgnore("javax.script.*") @PowerMockIgnore("javax.script.*")
@Ignore
public class TestWorldStuff { public class TestWorldStuff {
private TestInstanceCreator creator; private TestInstanceCreator creator;

View File

@ -0,0 +1,8 @@
package com.onarandombox.MultiverseCore.utils;
import org.bukkit.Server;
import org.bukkit.command.SimpleCommandMap;
public abstract class DummyCraftServer implements Server {
public abstract SimpleCommandMap getCommandMap();
}

View File

@ -20,6 +20,8 @@ import org.bukkit.Server;
import org.bukkit.World; import org.bukkit.World;
import org.bukkit.WorldCreator; import org.bukkit.WorldCreator;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.command.SimpleCommandMap;
import org.bukkit.help.HelpMap;
import org.bukkit.permissions.Permission; import org.bukkit.permissions.Permission;
import org.bukkit.plugin.Plugin; import org.bukkit.plugin.Plugin;
import org.bukkit.plugin.PluginDescriptionFile; import org.bukkit.plugin.PluginDescriptionFile;
@ -58,6 +60,7 @@ public class TestInstanceCreator {
private MultiverseCore core; private MultiverseCore core;
private Server mockServer; private Server mockServer;
private CommandSender commandSender; private CommandSender commandSender;
private SimpleCommandMap simpleCommandMap;
public static final File pluginDirectory = new File("bin/test/server/plugins/coretest"); public static final File pluginDirectory = new File("bin/test/server/plugins/coretest");
public static final File serverDirectory = new File("bin/test/server"); public static final File serverDirectory = new File("bin/test/server");
@ -72,14 +75,19 @@ public class TestInstanceCreator {
MockGateway.MOCK_STANDARD_METHODS = false; MockGateway.MOCK_STANDARD_METHODS = false;
// Initialize the Mock server. // Initialize the Mock server.
mockServer = mock(Server.class); mockServer = PowerMockito.mock(DummyCraftServer.class);
JavaPluginLoader mockPluginLoader = PowerMock.createMock(JavaPluginLoader.class); JavaPluginLoader mockPluginLoader = PowerMock.createMock(JavaPluginLoader.class);
Whitebox.setInternalState(mockPluginLoader, "server", mockServer); Whitebox.setInternalState(mockPluginLoader, "server", mockServer);
when(mockServer.getName()).thenReturn("TestBukkit"); when(mockServer.getName()).thenReturn("TestBukkit");
when(mockServer.getVersion()).thenReturn("TestBukkit V1");
Logger.getLogger("Minecraft").setParent(Util.logger); Logger.getLogger("Minecraft").setParent(Util.logger);
when(mockServer.getLogger()).thenReturn(Util.logger); when(mockServer.getLogger()).thenReturn(Util.logger);
when(mockServer.getWorldContainer()).thenReturn(worldsDirectory); when(mockServer.getWorldContainer()).thenReturn(worldsDirectory);
// Add an internal command map (needed for ACF)
this.simpleCommandMap = new SimpleCommandMap(mockServer);
PowerMockito.when(mockServer, "getCommandMap").thenReturn(this.simpleCommandMap);
// Return a fake PDF file. // Return a fake PDF file.
PluginDescriptionFile pdf = PowerMockito.spy(new PluginDescriptionFile("Multiverse-Core", "2.2-Test", PluginDescriptionFile pdf = PowerMockito.spy(new PluginDescriptionFile("Multiverse-Core", "2.2-Test",
"com.onarandombox.MultiverseCore.MultiverseCore")); "com.onarandombox.MultiverseCore.MultiverseCore"));
@ -208,6 +216,10 @@ public class TestInstanceCreator {
}}); }});
when(mockServer.getScheduler()).thenReturn(mockScheduler); when(mockServer.getScheduler()).thenReturn(mockScheduler);
// add dummy help map
HelpMap helpMap = mock(HelpMap.class);
when(mockServer.getHelpMap()).thenReturn(helpMap);
// Set server // Set server
Field serverfield = JavaPlugin.class.getDeclaredField("server"); Field serverfield = JavaPlugin.class.getDeclaredField("server");
serverfield.setAccessible(true); serverfield.setAccessible(true);
@ -324,4 +336,8 @@ public class TestInstanceCreator {
public CommandSender getCommandSender() { public CommandSender getCommandSender() {
return commandSender; return commandSender;
} }
public boolean dispatch(CommandSender sender, String commandLine) {
return this.simpleCommandMap.dispatch(sender, commandLine);
}
} }