org.bukkit.command.CommandException Java Examples

The following examples show how to use org.bukkit.command.CommandException. You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source File: DefaultCommandExecutorTest.java    From mcspring-boot with MIT License 5 votes vote down vote up
@Test
public void shouldSendCommandErrorMessage() {
    when(commandLine.parse(any())).thenThrow(new CommandException("generic error"));

    CommandResult result = commandExecutor.execute("say", "hello");

    assertTrue(result.isExists());
    verify(commandLine).parse("say", "hello");
    assertEquals(ChatColor.RED + "generic error", result.getOutput().get(0));
}
 
Example #2
Source File: CraftServer.java    From Thermos with GNU General Public License v3.0 5 votes vote down vote up
public List<String> tabCompleteCommand(Player player, String message) {
    // Spigot Start
    if ( !org.spigotmc.SpigotConfig.tabComplete && !message.contains( " " ) )
    {
        return ImmutableList.of();
    }
    // Spigot End

    // Spigot Start
    List<String> completions = new ArrayList<String>();
    try {
        message = message.substring( 1 );
        List<String> bukkitCompletions = getCommandMap().tabComplete( player, message );
        if ( bukkitCompletions != null )
        {
            completions.addAll( bukkitCompletions );
        }
        List<String> vanillaCompletions = org.spigotmc.VanillaCommandWrapper.complete( player, message );
        if ( vanillaCompletions != null )
        {
            completions.addAll( vanillaCompletions );
        }
        // Spigot End
    } catch (CommandException ex) {
        player.sendMessage(ChatColor.RED + "An internal error occurred while attempting to tab-complete this command");
        getLogger().log(Level.SEVERE, "Exception when " + player.getName() + " attempted to tab complete " + message, ex);
    }

    return completions; // Spigot
}
 
Example #3
Source File: RedProtectUtil.java    From RedProtect with GNU General Public License v3.0 5 votes vote down vote up
private void initMysql() throws Exception {
    for (World world : Bukkit.getWorlds()) {

        String url = "jdbc:mysql://" + RedProtect.get().config.configRoot().mysql.host + "/";
        String reconnect = "?autoReconnect=true";
        String tableName = RedProtect.get().config.configRoot().mysql.table_prefix + world.getName();

        try {
            Class.forName("com.mysql.jdbc.Driver");
        } catch (ClassNotFoundException e2) {
            RedProtect.get().logger.severe("Couldn't find the driver for MySQL! com.mysql.jdbc.Driver.");
            return;
        }
        PreparedStatement st = null;
        try {
            if (!checkTableExists(tableName)) {
                //create db
                Connection con = DriverManager.getConnection(url + RedProtect.get().config.configRoot().mysql.table_prefix + reconnect, RedProtect.get().config.configRoot().mysql.user_name, RedProtect.get().config.configRoot().mysql.user_pass);
                st = con.prepareStatement("CREATE TABLE `" + tableName + "` (name varchar(20) PRIMARY KEY NOT NULL, leaders longtext, admins longtext, members longtext, maxMbrX int, minMbrX int, maxMbrZ int, minMbrZ int, centerX int, centerZ int, minY int, maxY int, date varchar(10), wel longtext, prior int, world varchar(100), value Long not null, tppoint mediumtext, flags longtext, candelete tinyint(1)) CHARACTER SET utf8 COLLATE utf8_general_ci");
                st.executeUpdate();
                st.close();
                st = null;
                RedProtect.get().logger.info("Created table: " + tableName + "!");
            }
            addNewColumns(tableName);
        } catch (CommandException e3) {
            RedProtect.get().logger.severe("Couldn't connect to mysql! Make sure you have mysql turned on and installed properly, and the service is started.");
            throw new Exception("Couldn't connect to mysql!");
        } catch (SQLException e) {
            printJarVersion();
            e.printStackTrace();
            RedProtect.get().logger.severe("There was an error while parsing SQL, redProtect will still with actual DB setting until you change the connection options or check if a Mysql service is running. Use /rp reload to try again");
        } finally {
            if (st != null) {
                st.close();
            }
        }
    }
}
 
Example #4
Source File: CommandManager.java    From NovaGuilds with GNU General Public License v3.0 5 votes vote down vote up
/**
 * Executes a command
 *
 * @param command command enum
 * @param sender  sender instance
 * @param args    command arguments
 */
public void execute(CommandWrapper command, CommandSender sender, String[] args) {
	CommandExecutor executor = getExecutor(command);

	if(command.getPermission() != null && !command.hasPermission(sender)) {
		Message.CHAT_NOPERMISSIONS.send(sender);
		return;
	}

	if(!command.allowedSender(sender)) {
		Message.CHAT_CMDFROMCONSOLE.send(sender);
		return;
	}

	NovaPlayer nPlayer = PlayerManager.getPlayer(sender);

	if((sender instanceof Player) && (command.hasFlag(CommandWrapper.Flag.CONFIRM) && !Permission.NOVAGUILDS_ADMIN_NOCONFIRM.has(sender) && (nPlayer.getCommandExecutorHandler() == null || nPlayer.getCommandExecutorHandler().getState() != CommandExecutorHandler.State.CONFIRMED))) {
		nPlayer.newCommandExecutorHandler(command, args);
		nPlayer.getCommandExecutorHandler().executorVariable(command.getExecutorVariable());
	}
	else {
		if(executor instanceof CommandExecutor.Reversed) {
			((CommandExecutor.Reversed) executor).set(command.getExecutorVariable());
			command.executorVariable(null);
		}

		try {
			executor.execute(sender, args);
		}
		catch(Exception e) {
			LoggerUtils.exception(new CommandException("Unhandled exception executing command '" + command.getName() + "' in plugin NovaGuilds", e));
		}
	}
}
 
Example #5
Source File: GeneralRegion.java    From AreaShop with GNU General Public License v3.0 5 votes vote down vote up
/**
 * Run commands as the CommandsSender, replacing all tags with the relevant values.
 * @param sender   The sender that should perform the command
 * @param commands A list of the commands to run (without slash and with tags)
 */
public void runCommands(CommandSender sender, List<String> commands) {
	if(commands == null || commands.isEmpty()) {
		return;
	}

	for(String command : commands) {
		if(command == null || command.isEmpty()) {
			continue;
		}
		// It is not ideal we have to disable language replacements here, but otherwise giving language variables
		// to '/areashop message' by a command in the config gets replaced and messes up the fancy formatting.
		command = Message.fromString(command).replacements(this).noLanguageReplacements().getSingle();

		boolean result;
		String error = null;
		String stacktrace = null;
		try {
			result = plugin.getServer().dispatchCommand(sender, command);
		} catch(CommandException e) {
			result = false;
			error = e.getMessage();
			stacktrace = ExceptionUtils.getStackTrace(e);
		}
		boolean printed = false;
		if(!result) {
			printed = true;
			if(error != null) {
				AreaShop.warn("Command execution failed, command=" + command + ", error=" + error + ", stacktrace:");
				AreaShop.warn(stacktrace);
				AreaShop.warn("--- End of stacktrace ---");
			} else {
				AreaShop.warn("Command execution failed, command=" + command);
			}
		}
		if(!printed) {
			AreaShop.debug("Command run, executor=" + sender.getName() + ", command=" + command);
		}
	}
}
 
Example #6
Source File: PlayersManager.java    From UhcCore with GNU General Public License v3.0 4 votes vote down vote up
public void killOfflineUhcPlayer(UhcPlayer uhcPlayer, @Nullable Location location, Set<ItemStack> playerDrops, @Nullable Player killer){
	GameManager gm = GameManager.getGameManager();
	PlayersManager pm = gm.getPlayersManager();
	MainConfiguration cfg = gm.getConfiguration();

	if (uhcPlayer.getState() != PlayerState.PLAYING){
		Bukkit.getLogger().warning("[UhcCore] " + uhcPlayer.getName() + " died while already in 'DEAD' mode!");
		return;
	}

	// kill event
	if(killer != null){
		UhcPlayer uhcKiller = pm.getUhcPlayer(killer);

		uhcKiller.kills++;

		// Call Bukkit event
		UhcPlayerKillEvent killEvent = new UhcPlayerKillEvent(uhcKiller, uhcPlayer);
		Bukkit.getServer().getPluginManager().callEvent(killEvent);

		if(cfg.getEnableKillEvent()){
			double reward = cfg.getRewardKillEvent();
			List<String> killCommands = cfg.getKillCommands();
			if (reward > 0) {
				VaultManager.addMoney(killer, reward);
				if (!Lang.EVENT_KILL_REWARD.isEmpty()) {
					killer.sendMessage(Lang.EVENT_KILL_REWARD.replace("%money%", "" + reward));
				}
			}

			killCommands.forEach(cmd -> {
				try {
					Bukkit.dispatchCommand(Bukkit.getConsoleSender(), cmd.replace("%name%", killer.getName()));
				} catch (CommandException exception) {
					Bukkit.getLogger().warning("[UhcCore] Failed to execute kill reward command: " + cmd);
					exception.printStackTrace();
				}
			});

		}
	}

	// Store drops in case player gets re-spawned.
	uhcPlayer.getStoredItems().clear();
	uhcPlayer.getStoredItems().addAll(playerDrops);

	// eliminations
	ScenarioManager sm = gm.getScenarioManager();
	if (!sm.isActivated(Scenario.SILENTNIGHT) || !((SilentNightListener) sm.getScenarioListener(Scenario.SILENTNIGHT)).isNightMode()) {
		gm.broadcastInfoMessage(Lang.PLAYERS_ELIMINATED.replace("%player%", uhcPlayer.getName()));
	}

	if(cfg.getRegenHeadDropOnPlayerDeath()){
		playerDrops.add(UhcItems.createRegenHead(uhcPlayer));
	}

	if(location != null && cfg.getEnableGoldenHeads()){
		if (cfg.getPlaceHeadOnFence() && !gm.getScenarioManager().isActivated(Scenario.TIMEBOMB)){
			// place head on fence
			Location loc = location.clone().add(1,0,0);
			loc.getBlock().setType(UniversalMaterial.OAK_FENCE.getType());
			loc.add(0, 1, 0);
			loc.getBlock().setType(UniversalMaterial.PLAYER_HEAD_BLOCK.getType());

			Skull skull = (Skull) loc.getBlock().getState();
			VersionUtils.getVersionUtils().setSkullOwner(skull, uhcPlayer);
			skull.setRotation(BlockFace.NORTH);
			skull.update();
		}else{
			playerDrops.add(UhcItems.createGoldenHeadPlayerSkull(uhcPlayer.getName(), uhcPlayer.getUuid()));
		}
	}

	if(location != null && cfg.getEnableExpDropOnDeath()){
		UhcItems.spawnExtraXp(location, cfg.getExpDropOnDeath());
	}

	if (location != null){
		playerDrops.forEach(item -> location.getWorld().dropItem(location, item));
	}

	uhcPlayer.setState(PlayerState.DEAD);
	pm.strikeLightning(uhcPlayer);
	pm.playSoundPlayerDeath();

	pm.checkIfRemainingPlayers();
}
 
Example #7
Source File: PlayerDeathListener.java    From UhcCore with GNU General Public License v3.0 4 votes vote down vote up
@EventHandler(priority = EventPriority.HIGH)
public void onPlayerDeath(PlayerDeathEvent event){
	Player player = event.getEntity();
	GameManager gm = GameManager.getGameManager();
	PlayersManager pm = gm.getPlayersManager();
	MainConfiguration cfg = gm.getConfiguration();
	UhcPlayer uhcPlayer = pm.getUhcPlayer(player);

	if (uhcPlayer.getState() != PlayerState.PLAYING){
		Bukkit.getLogger().warning("[UhcCore] " + player.getName() + " died while already in 'DEAD' mode!");
		player.kickPlayer("Don't cheat!");
		return;
	}

	pm.setLastDeathTime();

	// kill event
	Player killer = player.getKiller();
	if(killer != null){
		UhcPlayer uhcKiller = pm.getUhcPlayer(killer);

		uhcKiller.kills++;

		// Call Bukkit event
		UhcPlayerKillEvent killEvent = new UhcPlayerKillEvent(uhcPlayer, uhcKiller);
		Bukkit.getServer().getPluginManager().callEvent(killEvent);

		if(cfg.getEnableKillEvent()){
			double reward = cfg.getRewardKillEvent();
			List<String> killCommands = cfg.getKillCommands();
			if (reward > 0) {
				VaultManager.addMoney(killer, reward);
				if (!Lang.EVENT_KILL_REWARD.isEmpty()) {
					killer.sendMessage(Lang.EVENT_KILL_REWARD.replace("%money%", "" + reward));
				}
			}
			// If the list is empty, this will never execute
			killCommands.forEach(cmd -> {
				try {
					Bukkit.dispatchCommand(Bukkit.getConsoleSender(), cmd.replace("%name%", uhcKiller.getRealName()));
				} catch (CommandException exception){
					Bukkit.getLogger().warning("[UhcCore] Failed to execute kill reward command: " + cmd);
					exception.printStackTrace();
				}
			});
		}
	}

	// Store drops in case player gets re-spawned.
	uhcPlayer.getStoredItems().clear();
	uhcPlayer.getStoredItems().addAll(event.getDrops());

	// eliminations
	ScenarioManager sm = gm.getScenarioManager();
	if (!sm.isActivated(Scenario.SILENTNIGHT) || !((SilentNightListener) sm.getScenarioListener(Scenario.SILENTNIGHT)).isNightMode()) {
		gm.broadcastInfoMessage(Lang.PLAYERS_ELIMINATED.replace("%player%", player.getName()));
	}

	if(cfg.getRegenHeadDropOnPlayerDeath()){
		event.getDrops().add(UhcItems.createRegenHead(uhcPlayer));
	}

	if(cfg.getEnableGoldenHeads()){
		if (cfg.getPlaceHeadOnFence() && !gm.getScenarioManager().isActivated(Scenario.TIMEBOMB)){
			// place head on fence
			Location loc = player.getLocation().clone().add(1,0,0);
			loc.getBlock().setType(UniversalMaterial.OAK_FENCE.getType());
			loc.add(0, 1, 0);
			loc.getBlock().setType(UniversalMaterial.PLAYER_HEAD_BLOCK.getType());

			Skull skull = (Skull) loc.getBlock().getState();
			VersionUtils.getVersionUtils().setSkullOwner(skull, uhcPlayer);
			skull.setRotation(BlockFace.NORTH);
			skull.update();
		}else{
			event.getDrops().add(UhcItems.createGoldenHeadPlayerSkull(player.getName(), player.getUniqueId()));
		}
	}

	if(cfg.getEnableExpDropOnDeath()){
		UhcItems.spawnExtraXp(player.getLocation(), cfg.getExpDropOnDeath());
	}

	uhcPlayer.setState(PlayerState.DEAD);
	pm.strikeLightning(uhcPlayer);
	pm.playSoundPlayerDeath();

	// handle player leaving the server
	boolean canContinueToSpectate = player.hasPermission("uhc-core.spectate.override")
			|| cfg.getCanSpectateAfterDeath();

	if (!canContinueToSpectate) {
		if (cfg.getEnableBungeeSupport()) {
			Bukkit.getScheduler().runTaskAsynchronously(UhcCore.getPlugin(), new TimeBeforeSendBungeeThread(uhcPlayer, cfg.getTimeBeforeSendBungeeAfterDeath()));
		} else {
			player.kickPlayer(Lang.DISPLAY_MESSAGE_PREFIX + " " + Lang.KICK_DEAD);
		}
	}

	pm.checkIfRemainingPlayers();
}
 
Example #8
Source File: MockServer.java    From SaneEconomy with GNU General Public License v3.0 4 votes vote down vote up
@Override
public boolean dispatchCommand(CommandSender commandSender, String s) throws CommandException {
    return false;
}
 
Example #9
Source File: WorldMySQLRegionManager.java    From RedProtect with GNU General Public License v3.0 4 votes vote down vote up
public WorldMySQLRegionManager(String world) throws SQLException {
    super();
    this.regions = new HashMap<>();
    this.world = world;
    this.tableName = RedProtect.get().config.configRoot().mysql.table_prefix + world;

    this.dbcon = null;
    try {
        Class.forName("com.mysql.jdbc.Driver");
    } catch (ClassNotFoundException e1) {
        try {
            Class.forName("org.mariadb.jdbc.Driver");
        } catch (ClassNotFoundException e2) {
            RedProtect.get().logger.severe("Couldn't find the driver for MySQL! com.mysql.jdbc.Driver or org.mariadb.jdbc.Driver.");
            return;
        }
    }
    PreparedStatement st = null;
    try {
        if (!this.checkTableExists()) {
            Connection con = DriverManager.getConnection(this.url + this.dbname + this.reconnect + (RedProtect.get().config.configRoot().mysql.ssl ? "&useSSL=true&requireSSL=true" : "")
                    , RedProtect.get().config.configRoot().mysql.user_name, RedProtect.get().config.configRoot().mysql.user_pass);

            st = con.prepareStatement("CREATE TABLE `" + tableName + "` " +
                    "(name varchar(20) PRIMARY KEY NOT NULL, leaders varchar(200) , admins varchar(200), members varchar(200), maxMbrX int, minMbrX int, maxMbrZ int, minMbrZ int, centerX int, centerZ int, minY int, maxY int, date varchar(10), wel varchar(200), prior int, world varchar(100), value Long not null, tppoint varchar(20), flags longtext, candelete tinyint(1), canpurge tinyint(1)) CHARACTER SET utf8 COLLATE utf8_general_ci");
            st.executeUpdate();
            st.close();
            st = null;
            RedProtect.get().logger.info("Created table: " + tableName + "!");

        }
        ConnectDB();
        addNewColumns();
    } catch (CommandException e3) {
        RedProtect.get().logger.severe("Couldn't connect to mysql! Make sure you have mysql turned on and installed properly, and the service is started. Reload the Redprotect plugin after you fix or change your DB configurations");
    } catch (SQLException e) {
        CoreUtil.printJarVersion();
        e.printStackTrace();
    } finally {
        if (st != null) {
            st.close();
        }
    }
}
 
Example #10
Source File: Bukkit.java    From Kettle with GNU General Public License v3.0 2 votes vote down vote up
/**
 * Dispatches a command on this server, and executes it if found.
 *
 * @param sender      the apparent sender of the command
 * @param commandLine the command + arguments. Example: <code>test abc
 *                    123</code>
 * @return returns false if no target is found
 * @throws CommandException thrown when the executor for the given command
 *                          fails with an unhandled exception
 */
public static boolean dispatchCommand(CommandSender sender, String commandLine) throws CommandException {
    return server.dispatchCommand(sender, commandLine);
}