mirror of
https://github.com/AtlasMediaGroup/TotalFreedomMod.git
synced 2025-06-11 21:43:54 +00:00
chee
This commit is contained in:
@ -0,0 +1,33 @@
|
||||
package me.totalfreedom.totalfreedommod.command;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import me.totalfreedom.totalfreedommod.rank.Rank;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.EntityType;
|
||||
import org.bukkit.entity.Player;
|
||||
import java.util.Random;
|
||||
|
||||
@CommandPermissions(level = Rank.OP, source = SourceType.ONLY_IN_GAME)
|
||||
@CommandParameters(description = ":goodbird:", usage = "/<command>")
|
||||
public class Command_bird extends FreedomCommand
|
||||
{
|
||||
|
||||
@Override
|
||||
public boolean run(CommandSender sender, Player playerSender, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
|
||||
{
|
||||
Location location = playerSender.getTargetBlock(null, 15).getLocation().add(0, 1, 0);
|
||||
playerSender.getWorld().spawnEntity(location, getRandomFish());
|
||||
msg(":goodbird:");
|
||||
return true;
|
||||
}
|
||||
|
||||
public EntityType getRandomFish()
|
||||
{
|
||||
List<EntityType> fishTypes = Arrays.asList(EntityType.COD, EntityType.SALMON, EntityType.PUFFERFISH, EntityType.TROPICAL_FISH);
|
||||
Random random = new Random();
|
||||
return fishTypes.get(random.nextInt(fishTypes.size()));
|
||||
}
|
||||
}
|
@ -1,6 +1,13 @@
|
||||
package me.totalfreedom.totalfreedommod.command;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
import me.totalfreedom.totalfreedommod.config.ConfigEntry;
|
||||
import me.totalfreedom.totalfreedommod.rank.Rank;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandSender;
|
||||
@ -9,7 +16,7 @@ import org.bukkit.entity.Player;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
|
||||
@CommandPermissions(level = Rank.OP, source = SourceType.ONLY_IN_GAME)
|
||||
@CommandParameters(description = "Enchant items.", usage = "/<command> <list | addall | reset | add <name> | remove <name>>")
|
||||
@CommandParameters(description = "Enchant items.", usage = "/<command> <list | addall | reset | add <name> [level] | remove <name>>")
|
||||
public class Command_enchant extends FreedomCommand
|
||||
{
|
||||
|
||||
@ -105,16 +112,41 @@ public class Command_enchant extends FreedomCommand
|
||||
|
||||
if (args[0].equalsIgnoreCase("add"))
|
||||
{
|
||||
if (ench.canEnchantItem(item))
|
||||
if (!ench.canEnchantItem(item) && !ConfigEntry.ALLOW_UNSAFE_ENCHANTMENTS.getBoolean())
|
||||
{
|
||||
item.addEnchantment(ench, ench.getMaxLevel());
|
||||
|
||||
msg("Added enchantment: " + ench.getName());
|
||||
msg("Can't use this enchantment on held item.");
|
||||
return true;
|
||||
}
|
||||
int level = ench.getMaxLevel();
|
||||
if (args.length > 2)
|
||||
{
|
||||
try
|
||||
{
|
||||
if (ConfigEntry.ALLOW_UNSAFE_ENCHANTMENTS.getBoolean())
|
||||
{
|
||||
level = Integer.valueOf(args[2]);
|
||||
}
|
||||
else
|
||||
{
|
||||
level = Math.max(1, Math.min(ench.getMaxLevel(), Integer.parseInt(args[2])));
|
||||
}
|
||||
}
|
||||
catch (NumberFormatException ex)
|
||||
{
|
||||
msg("\"" + args[2] + "\" is not a valid number", ChatColor.RED);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
if (!ConfigEntry.ALLOW_UNSAFE_ENCHANTMENTS.getBoolean())
|
||||
{
|
||||
item.addEnchantment(ench, level);
|
||||
}
|
||||
else
|
||||
{
|
||||
msg("Can't use this enchantment on held item.");
|
||||
item.addUnsafeEnchantment(ench, level);
|
||||
}
|
||||
|
||||
msg("Added enchantment: " + ench.getName());
|
||||
}
|
||||
else if (args[0].equals("remove"))
|
||||
{
|
||||
@ -126,4 +158,114 @@ public class Command_enchant extends FreedomCommand
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
public List<String> getAllEnchantments()
|
||||
{
|
||||
List<String> enchantments = new ArrayList();
|
||||
for (Enchantment enchantment : Enchantment.values())
|
||||
{
|
||||
enchantments.add(enchantment.getName());
|
||||
}
|
||||
return enchantments;
|
||||
}
|
||||
|
||||
public List<String> getAllEnchantments(ItemStack item)
|
||||
{
|
||||
List<String> enchantments = new ArrayList();
|
||||
for (Enchantment enchantment : Enchantment.values())
|
||||
{
|
||||
if (enchantment.canEnchantItem(item))
|
||||
{
|
||||
enchantments.add(enchantment.getName());
|
||||
}
|
||||
}
|
||||
return enchantments;
|
||||
}
|
||||
|
||||
public List<String> getEnchantments(ItemStack item)
|
||||
{
|
||||
List<String> enchantments = new ArrayList();
|
||||
for (Enchantment enchantment : item.getEnchantments().keySet())
|
||||
{
|
||||
enchantments.add(enchantment.getName());
|
||||
}
|
||||
return enchantments;
|
||||
}
|
||||
|
||||
public static List<String> stringNumberRange(int min, int max)
|
||||
{
|
||||
List<String> range = new ArrayList();
|
||||
for (int i = min; i <= max; i++)
|
||||
{
|
||||
range.add(String.valueOf(i));
|
||||
}
|
||||
|
||||
return range;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> getTabCompleteOptions(CommandSender sender, Command command, String alias, String[] args)
|
||||
{
|
||||
Player player;
|
||||
if (sender instanceof Player)
|
||||
{
|
||||
player = (Player)sender;
|
||||
}
|
||||
else
|
||||
{
|
||||
return Collections.emptyList();
|
||||
}
|
||||
ItemStack item = player.getEquipment().getItemInMainHand();
|
||||
|
||||
if (item == null || item.getType() == Material.AIR)
|
||||
{
|
||||
return Collections.emptyList();
|
||||
}
|
||||
|
||||
boolean unsafe = ConfigEntry.ALLOW_UNSAFE_ENCHANTMENTS.getBoolean();
|
||||
|
||||
if (args.length == 1)
|
||||
{
|
||||
return Arrays.asList("list", "addall", "reset", "add", "remove");
|
||||
}
|
||||
else if (args.length == 2)
|
||||
{
|
||||
if (args[0].equals("add"))
|
||||
{
|
||||
if (unsafe)
|
||||
{
|
||||
return getAllEnchantments();
|
||||
}
|
||||
else
|
||||
{
|
||||
return getAllEnchantments(item);
|
||||
}
|
||||
}
|
||||
else if (args[0].equals("remove"))
|
||||
{
|
||||
return getEnchantments(item);
|
||||
}
|
||||
}
|
||||
else if (args.length == 3)
|
||||
{
|
||||
if (args[0].equals("add"))
|
||||
{
|
||||
Enchantment enchantment = Enchantment.getByName(args[1].toUpperCase());
|
||||
if (enchantment != null)
|
||||
{
|
||||
if (!unsafe)
|
||||
{
|
||||
return stringNumberRange(1, enchantment.getMaxLevel());
|
||||
}
|
||||
else
|
||||
{
|
||||
return Arrays.asList("[level]");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return Collections.emptyList();
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -0,0 +1,28 @@
|
||||
package me.totalfreedom.totalfreedommod.command;
|
||||
|
||||
import me.totalfreedom.totalfreedommod.rank.Rank;
|
||||
import org.bukkit.World;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
@CommandPermissions(level = Rank.NON_OP, source = SourceType.ONLY_IN_GAME)
|
||||
@CommandParameters(description = "Goto the plot world", usage = "/<command>", aliases = "pw")
|
||||
public class Command_plotworld extends FreedomCommand
|
||||
{
|
||||
|
||||
@Override
|
||||
public boolean run(CommandSender sender, Player playerSender, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
|
||||
{
|
||||
World plotworld = server.getWorld("plotworld");
|
||||
if (plotworld != null)
|
||||
{
|
||||
playerSender.teleport(plotworld.getSpawnLocation());
|
||||
}
|
||||
else
|
||||
{
|
||||
msg("\"plotworld\" doesn't exist.");
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
@ -36,6 +36,7 @@ public class Command_toggle extends FreedomCommand
|
||||
msg("- entitywipe");
|
||||
msg("- nonuke [range] [count]");
|
||||
msg("- explosives [radius]");
|
||||
msg("- unsafeenchs");
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -153,6 +154,11 @@ public class Command_toggle extends FreedomCommand
|
||||
}
|
||||
return true;
|
||||
}
|
||||
else if (args[0].equalsIgnoreCase("unsafeenchs"))
|
||||
{
|
||||
toggle("Invalid enchantments are", ConfigEntry.ALLOW_UNSAFE_ENCHANTMENTS);
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
return false;
|
||||
@ -171,7 +177,7 @@ public class Command_toggle extends FreedomCommand
|
||||
{
|
||||
return Arrays.asList(
|
||||
"waterplace", "fireplace", "lavaplace", "fluidspread", "lavadmg", "firespread", "frostwalk",
|
||||
"firework", "prelog", "lockdown", "petprotect", "entitywipe", "nonuke", "explosives");
|
||||
"firework", "prelog", "lockdown", "petprotect", "entitywipe", "nonuke", "explosives", "unsafeenchs");
|
||||
}
|
||||
|
||||
return Collections.emptyList();
|
||||
|
Reference in New Issue
Block a user