- package kforte318.DRoller;
- import java.io.BufferedReader;
- import java.io.BufferedWriter;
- import java.io.File;
- import java.io.FileReader;
- import java.io.FileWriter;
- import java.io.IOException;
- import java.util.logging.Logger;
- import java.util.*;
- import java.util.Map.Entry;
- import javax.persistence.PersistenceException;
- import com.nijiko.permissions.PermissionHandler;
- import com.nijikokun.bukkit.Permissions.Permissions;
- import org.bukkit.plugin.Plugin;
- import org.bukkit.ChatColor;
- import org.bukkit.command.Command;
- import org.bukkit.command.CommandSender;
- import org.bukkit.entity.Player;
- import org.bukkit.plugin.java.JavaPlugin;
- public class DRoller extends JavaPlugin {
- HashMap<String, Integer> difficultyClass = new HashMap<String, Integer>();
- HashMap<String, Integer> playerHealth = new HashMap<String, Integer>();
- HashMap<String, Integer> playerExperience = new HashMap<String, Integer>();
- Random randomGenerator = new Random();
- public static PermissionHandler Permissions;
- public Logger log = Logger.getLogger("Minecraft");
- private void setupDatabase() {
- try {
- getDatabase().find(PlayerSkillMods.class).findRowCount();
- } catch (PersistenceException ex) {
- System.out.println("[DnDCraft] Installing Skills database due to first time usage");
- installDDL();
- }
- }
- private void createHealthFile() {
- File healthFile = new File(getDataFolder() + "/playerhealth.txt");
- if (!healthFile.exists()) {
- new File(getDataFolder().toString()).mkdir();
- try {
- healthFile.createNewFile();
- }
- catch (IOException ex) {
- System.out.println("You Dun Goofed!");
- }
- }
- }
- private void createExperienceFile() {
- File expFile = new File(getDataFolder() + "/playerexp.txt");
- if (!expFile.exists()) {
- new File(getDataFolder().toString()).mkdir();
- try {
- expFile.createNewFile();
- }
- catch (IOException ex) {
- System.out.println("You Dun Goofed!");
- }
- }
- }
- private void saveToFileHealth() {
- BufferedWriter writer = null;
- try {
- writer = new BufferedWriter(new FileWriter(new File(getDataFolder(), "playerhealth.txt")));
- for (Entry<String, Integer> entry : playerHealth.entrySet()) {
- writer.write(entry.getKey() + ";" + entry.getValue());
- writer.newLine();
- }
- } catch (Exception e) {
- e.printStackTrace();
- } finally {
- if (writer != null) {
- try {
- writer.close();
- } catch (IOException e) { }
- }
- }
- }
- private void saveToFileExperience() {
- BufferedWriter writer = null;
- try {
- writer = new BufferedWriter(new FileWriter(new File(getDataFolder(), "playerexp.txt")));
- for (Entry<String, Integer> entry : playerExperience.entrySet()) {
- writer.write(entry.getKey() + ";" + entry.getValue());
- writer.newLine();
- }
- } catch (Exception e) {
- e.printStackTrace();
- } finally {
- if (writer != null) {
- try {
- writer.close();
- } catch (IOException e) { }
- }
- }
- }
- public void loadFromFileHealth() {
- BufferedReader reader = null;
- try {
- reader = new BufferedReader(new FileReader(new File(getDataFolder(), "playerhealth.txt")));
- String line = reader.readLine();
- while (line != null) {
- String[] values = line.split(";");
- if (values.length == 2) {
- String player = values[0];
- Integer health = Integer.parseInt(values[1]);
- if (player != null) {
- playerHealth.put(player, health);
- }
- }
- line = reader.readLine();
- }
- System.out.println("[DnDCraft] Player Health Values Loaded.");
- } catch (IOException e) { }
- }
- public void loadFromFileExperience() {
- BufferedReader reader = null;
- try {
- reader = new BufferedReader(new FileReader(new File(getDataFolder(), "playerexp.txt")));
- String line = reader.readLine();
- while (line != null) {
- String[] values = line.split(";");
- if (values.length == 2) {
- String player = values[0];
- Integer exp = Integer.parseInt(values[1]);
- if (player != null) {
- playerExperience.put(player, exp);
- }
- }
- line = reader.readLine();
- }
- System.out.println("[DnDCraft] Player Experience Values Loaded.");
- } catch (IOException e) { }
- }
- @Override
- public void onDisable() {
- System.out.println("[DnDCraft] Disabled.");
- }
- @Override
- public void onEnable() {
- System.out.println("[DnDCraft] Enabled.");
- setupPermissions();
- setupDatabase();
- createHealthFile();
- createExperienceFile();
- loadFromFileHealth();
- loadFromFileExperience();
- }
- @Override
- public List<Class<?>> getDatabaseClasses(){
- List<Class<?>> classList = new ArrayList<Class<?>>();
- classList.add(PlayerSkillMods.class);
- System.out.println("[DnDCraft] Skills Loaded."); //experimental
- return classList;
- }
- private void setupPermissions() {
- Plugin test = this.getServer().getPluginManager().getPlugin("Permissions");
- if (DRoller.Permissions == null) {
- if (test != null) {
- DRoller.Permissions = ((Permissions)test).getHandler();
- } else {
- log.info("Permission system not detected, defaulting to OP");
- }
- }
- }
- public boolean onCommand(CommandSender sender, Command cmd, String commandlabel, String[] args) {
- if (sender instanceof Player) {
- Player player = (Player)sender;
- String commandname = cmd.getName().toLowerCase();
- if (commandname.equalsIgnoreCase("roll")) {
- if (args.length == 0) {
- int sided = 20;
- int result = 1 + randomGenerator.nextInt(sided);
- if (result == 20) {
- getServer().broadcastMessage("[" + ChatColor.AQUA.toString() + "d" + sided + ChatColor.WHITE.toString() + "] " + ChatColor.BLUE.toString()
- + ((Player)sender).getName() + ChatColor.RED.toString() + " rolled a " + ChatColor.GOLD.toString() + "Natural 20!");
- }
- else if (result == 1) {
- getServer().broadcastMessage("[" + ChatColor.AQUA.toString() + "d" + sided + ChatColor.WHITE.toString() + "] " + ChatColor.BLUE.toString()
- + ((Player)sender).getName() + ChatColor.RED.toString() + " rolled a " + ChatColor.DARK_RED.toString() + "Critical Fumble!");
- }
- else
- getServer().broadcastMessage("[" + ChatColor.AQUA.toString() + "d" + sided + ChatColor.WHITE.toString() + "] " + ChatColor.BLUE.toString()
- + ((Player)sender).getName() + ChatColor.RED.toString() + " rolled a " + ChatColor.BLUE.toString() + result);
- }
- if (args.length == 1) {
- int sided = Integer.parseInt(args[0]);
- int result = 1 + randomGenerator.nextInt(sided);
- if (sided >= 101) {
- player.sendMessage(ChatColor.LIGHT_PURPLE.toString() + "Sorry, you can't roll above a d100.");
- }
- else if (sided <=1) {
- player.sendMessage(ChatColor.LIGHT_PURPLE.toString() + "Sorry, you can't roll below a d2.");
- }
- else {
- getServer().broadcastMessage("[" + ChatColor.AQUA.toString() + "d" + sided + ChatColor.WHITE.toString() + "] " + ChatColor.BLUE.toString()
- + ((Player)sender).getName() + ChatColor.RED.toString() + " rolled a " + ChatColor.BLUE.toString() + result);
- }
- }
- if (args.length == 2) {
- int sided = Integer.parseInt(args[0]);
- int result = 1 + randomGenerator.nextInt(sided);
- int modifierStatic = Integer.parseInt(args[1]);
- int finalResult = result + modifierStatic;
- if (sided >= 101) {
- player.sendMessage(ChatColor.LIGHT_PURPLE.toString() + "Sorry, you can't roll above a d100.");
- }
- else if (sided <=1) {
- player.sendMessage(ChatColor.LIGHT_PURPLE.toString() + "Sorry, you can't roll below a d2.");
- }
- else {
- getServer().broadcastMessage("[" + ChatColor.AQUA.toString() + "d" + sided + ChatColor.WHITE.toString() + "] " + ChatColor.BLUE.toString()
- + ((Player)sender).getName() + ChatColor.RED.toString() + " rolled a " + ChatColor.BLUE.toString() + result + ChatColor.YELLOW.toString() + " + "
- + modifierStatic +" (" + finalResult + ")");
- }
- }
- }
- if (commandname.equalsIgnoreCase("rollhide")) {
- if (!DRoller.Permissions.has(player, "DCraft.DM")) {
- player.sendMessage(ChatColor.LIGHT_PURPLE.toString() + "Sorry, you don't have the permission to access this command!");
- }
- if (DRoller.Permissions.has(player, "DCraft.DM")) {
- if (args.length == 0) {
- int sided = 20;
- int result = 1 + randomGenerator.nextInt(sided);
- if (result == 20) {
- player.sendMessage("[" + ChatColor.DARK_GRAY.toString() + "Hidden" + ChatColor.WHITE.toString() + "] " + "[" + ChatColor.AQUA.toString() + "d" + sided
- + ChatColor.WHITE.toString() + "] " + ChatColor.BLUE.toString() + ((Player)sender).getName() + ChatColor.RED.toString() + " rolled a "
- + ChatColor.GOLD.toString() + "Natural 20!");
- }
- else if (result == 1) {
- player.sendMessage("[" + ChatColor.DARK_GRAY.toString() + "Hidden" + ChatColor.WHITE.toString() + "] " + "[" + ChatColor.AQUA.toString() + "d" + sided
- + ChatColor.WHITE.toString() + "] " + ChatColor.BLUE.toString() + ((Player)sender).getName() + ChatColor.RED.toString() + " rolled a "
- + ChatColor.DARK_RED.toString() + "Critical Fumble!");
- }
- else
- player.sendMessage("[" + ChatColor.DARK_GRAY.toString() + "Hidden" + ChatColor.WHITE.toString() + "] " + "[" + ChatColor.AQUA.toString() + "d" + sided
- + ChatColor.WHITE.toString() + "] " + ChatColor.BLUE.toString() + ((Player)sender).getName() + ChatColor.RED.toString() + " rolled a "
- + ChatColor.BLUE.toString() + result);
- }
- if (args.length == 1) {
- int sided = Integer.parseInt(args[0]);
- int result = 1 + randomGenerator.nextInt(sided);
- if (sided >= 101) {
- player.sendMessage(ChatColor.LIGHT_PURPLE.toString() + "Sorry, you can't roll above a d100.");
- }
- else if (sided <=1) {
- player.sendMessage(ChatColor.LIGHT_PURPLE.toString() + "Sorry, you can't roll below a d2.");
- }
- else {
- player.sendMessage("[" + ChatColor.AQUA.toString() + "Hidden" + ChatColor.WHITE.toString() + "] " + "[" + ChatColor.AQUA.toString() + "d" + sided
- + ChatColor.WHITE.toString() + "] " + ((Player)sender).getName() + ChatColor.RED.toString() + " rolled a " + ChatColor.BLUE.toString() + result);
- }
- }
- }
- }
- if (commandname.equalsIgnoreCase("skill")) {
- if (args.length == 1 || args.length == 2) {
- String skill = args[0];
- skill = skill.toLowerCase();
- int mod = 0;
- PlayerSkillMods modifier = this.getDatabase().find(PlayerSkillMods.class).where().ieq("playerName",player.getName()).ieq("skillName", skill).findUnique();
- if (args.length != 1)
- {
- try
- {
- mod = Integer.parseInt(args[1]);
- }
- catch (NumberFormatException e)
- {
- player.sendMessage(ChatColor.RED.toString() + "Invalid Modifier Value!");
- return true;
- }
- }
- if (modifier == null) {
- modifier = new PlayerSkillMods();
- modifier.setPlayerName(player.getName());
- modifier.setSkillName(skill);
- }
- modifier.setSkillMod(mod);
- this.getDatabase().save(modifier);
- player.sendMessage(ChatColor.BLUE.toString() + "You have set skill " + ChatColor.RED.toString() + skill + ChatColor.BLUE.toString() + "'s modifier to "
- + ChatColor.YELLOW.toString() + mod);
- }
- }
- if (commandname.equalsIgnoreCase("healthset")) {
- if (args.length == 1) {
- String playerName = player.getName();
- int health = Integer.parseInt(args[0]);
- playerHealth.put(playerName, health);
- saveToFileHealth();
- player.sendMessage(ChatColor.BLUE.toString() + "Your health has been set to " + ChatColor.GREEN + health);
- for (Player player2 : getServer().getOnlinePlayers()) {
- if (player2 != player) {
- if (DRoller.Permissions.has(player2, "DCraft.DM")) {
- player2.sendMessage(ChatColor.YELLOW + playerName + ChatColor.BLUE.toString() + " has set their health to " + ChatColor.GREEN + health);
- }
- }
- }
- }
- if (args.length == 2) {
- if (!DRoller.Permissions.has(player, "DCraft.DM")) {
- player.sendMessage(ChatColor.LIGHT_PURPLE.toString() + "Sorry, you don't have the permission to access this command!");
- }
- if (DRoller.Permissions.has(player, "DCraft.DM")) {
- String playerName = args[1];
- int health = Integer.parseInt(args[0]);
- playerHealth.put(playerName, health);
- saveToFileHealth();
- sender.sendMessage(ChatColor.BLUE.toString() + "You have set " + ChatColor.YELLOW.toString() + playerName + "'s " + ChatColor.BLUE.toString()
- + "health to " + ChatColor.GREEN + health);
- getServer().getPlayer(playerName).sendMessage(ChatColor.BLUE.toString() + "Your health has been set to " + ChatColor.GREEN + health
- + ChatColor.BLUE.toString() + " by " + ChatColor.YELLOW + sender);
- }
- }
- }
- if (commandname.equalsIgnoreCase("health")) {
- if (args.length == 1) {
- String playerName = player.getName();
- int healthMod = Integer.parseInt(args[0]);
- int healthCurrent = playerHealth.get(playerName);
- int healthNew = healthCurrent + healthMod;
- playerHealth.put(playerName, healthNew);
- saveToFileHealth();
- if (healthMod < 0) {
- if (healthNew > 0) {
- player.sendMessage(ChatColor.BLUE.toString() + "You took " + ChatColor.RED + Math.abs(healthMod) + ChatColor.BLUE.toString()
- + " points of damage!" + ChatColor.WHITE + " [" + ChatColor.RED + healthNew + ChatColor.WHITE + "]");
- }
- if (healthNew == 0) {
- player.sendMessage(ChatColor.BLUE.toString() + "You took " + ChatColor.RED + Math.abs(healthMod) + ChatColor.BLUE.toString()
- + " points of damage and are " + ChatColor.RED + "downed!" + ChatColor.WHITE + " [" + ChatColor.RED + healthNew + ChatColor.WHITE + "]");
- }
- if (healthNew < 0 && healthNew > -10) {
- player.sendMessage(ChatColor.BLUE.toString() + "You took " + ChatColor.RED + Math.abs(healthMod) + ChatColor.BLUE.toString()
- + " points of damage and are " + ChatColor.DARK_RED + "unconscious!" + ChatColor.WHITE + " [" + ChatColor.DARK_RED + healthNew + ChatColor.WHITE + "]");
- }
- if (healthNew <= -10) {
- player.sendMessage(ChatColor.BLUE.toString() + "You took " + ChatColor.RED + Math.abs(healthMod) + ChatColor.BLUE.toString()
- + " points of damage and are " + ChatColor.DARK_GRAY + "dead!" + ChatColor.WHITE + " [" + ChatColor.DARK_GRAY + healthNew + ChatColor.WHITE + "]");
- }
- }
- if (healthMod > 0) {
- player.sendMessage(ChatColor.BLUE.toString() + "You gained " + ChatColor.GREEN + healthMod + ChatColor.BLUE.toString() + " health points!"
- + ChatColor.WHITE + " [" + ChatColor.GREEN + healthNew + ChatColor.WHITE + "]");
- }
- }
- }
- if (commandname.equalsIgnoreCase("healthcheck")) {
- if (args.length == 0) {
- String playerName = player.getName();
- int health = playerHealth.get(playerName);
- if (health >= 6) {
- player.sendMessage(ChatColor.BLUE.toString() + "You have " + ChatColor.GREEN + health + ChatColor.BLUE + " health points.");
- }
- if (health <= 5 && health >= 1) {
- player.sendMessage(ChatColor.BLUE.toString() + "You have " + ChatColor.RED + health + ChatColor.BLUE + " health points.");
- }
- if (health <= 0 && health >= -9) {
- player.sendMessage(ChatColor.BLUE.toString() + "You have " + ChatColor.DARK_RED + health + ChatColor.BLUE + " health points.");
- }
- if (health <= -10) {
- player.sendMessage(ChatColor.BLUE.toString() + "You have " + ChatColor.DARK_GRAY + health + ChatColor.BLUE + " health points.");
- }
- }
- if (args.length == 1) {
- if (!DRoller.Permissions.has(player, "DCraft.DM")) {
- player.sendMessage(ChatColor.LIGHT_PURPLE.toString() + "Sorry, you don't have the permission to access this command!");
- }
- if (DRoller.Permissions.has(player, "DCraft.DM")) {
- String playerName = args[1];
- int health = playerHealth.get(playerName);
- if (health >= 6) {
- player.sendMessage(ChatColor.YELLOW + playerName + ChatColor.BLUE + " has " + ChatColor.GREEN + health + ChatColor.BLUE + " health points.");
- }
- if (health <= 5 && health >= 1) {
- player.sendMessage(ChatColor.YELLOW + playerName + ChatColor.BLUE + " has " + ChatColor.RED + health + ChatColor.BLUE + " health points.");
- }
- if (health <= 0 && health >= -9) {
- player.sendMessage(ChatColor.YELLOW + playerName + ChatColor.BLUE + " has " + ChatColor.DARK_RED + health + ChatColor.BLUE + " health points.");
- }
- if (health <= -10) {
- player.sendMessage(ChatColor.BLUE.toString() + "You have " + ChatColor.DARK_GRAY + health + ChatColor.BLUE + " health points.");
- }
- }
- }
- }
- if (commandname.equalsIgnoreCase("expset")) {
- if (args.length == 2) {
- if (!DRoller.Permissions.has(player, "DCraft.DM")) {
- player.sendMessage(ChatColor.LIGHT_PURPLE.toString() + "Sorry, you don't have the permission to access this command!");
- }
- if (DRoller.Permissions.has(player, "DCraft.DM")) {
- String playerName = args[0];
- int exp = Integer.parseInt(args[1]);
- playerExperience.put(playerName, exp);
- saveToFileExperience();
- sender.sendMessage(ChatColor.BLUE.toString() + "You have set " + ChatColor.YELLOW.toString() + playerName + "'s " + ChatColor.BLUE
- + "experience to " + ChatColor.AQUA + exp);
- getServer().getPlayer(playerName).sendMessage(ChatColor.BLUE.toString() + "Your experience has been set to " + ChatColor.AQUA + exp);
- }
- }
- }
- if (commandname.equalsIgnoreCase("exp")) {
- if (!DRoller.Permissions.has(player, "DCraft.DM")) {
- if (args.length == 2) {
- String playerName = (args[0]);
- int expMod = Integer.parseInt(args[1]);
- int expCurrent = playerExperience.get(playerName);
- int expNew = expCurrent + expMod;
- playerExperience.put(playerName, expNew);
- saveToFileExperience();
- if (expMod < 0) {
- getServer().getPlayer(playerName).sendMessage(ChatColor.BLUE.toString() + "You lost " + ChatColor.RED + Math.abs(expMod) + ChatColor.BLUE.toString()
- + " experience points!" + ChatColor.WHITE + " [" + ChatColor.AQUA + expNew + ChatColor.WHITE + "]");
- sender.sendMessage(ChatColor.BLUE.toString() + "You have taken " + ChatColor.RED + Math.abs(expMod) + ChatColor.BLUE + " points of experience from "
- + ChatColor.YELLOW + playerName + ChatColor.WHITE + " [" + ChatColor.AQUA + expNew + ChatColor.WHITE + "]");
- }
- if (expMod > 0) {
- getServer().getPlayer(playerName).sendMessage(ChatColor.BLUE.toString() + "You gained " + ChatColor.GREEN + expMod + ChatColor.BLUE.toString() + " health points!"
- + ChatColor.WHITE + " [" + ChatColor.AQUA + expNew + ChatColor.WHITE + "]");
- sender.sendMessage(ChatColor.BLUE.toString() + "You have given " + ChatColor.GREEN + Math.abs(expMod) + ChatColor.BLUE + " points of experience to "
- + ChatColor.YELLOW + playerName + ChatColor.WHITE + " [" + ChatColor.AQUA + expNew + ChatColor.WHITE + "]");
- }
- }
- }
- }
- if (commandname.equalsIgnoreCase("expcheck")) {
- if (args.length == 0) {
- String playerName = player.getName();
- int exp = playerExperience.get(playerName);
- player.sendMessage(ChatColor.BLUE.toString() + "You have " + ChatColor.AQUA + exp + ChatColor.BLUE + " experience points.");
- }
- if (args.length == 1) {
- if (!DRoller.Permissions.has(player, "DCraft.DM")) {
- player.sendMessage(ChatColor.LIGHT_PURPLE.toString() + "Sorry, you don't have the permission to access this command!");
- }
- if (DRoller.Permissions.has(player, "DCraft.DM")) {
- String playerName = args[1];
- int exp = playerExperience.get(playerName);
- player.sendMessage(ChatColor.YELLOW + playerName + ChatColor.BLUE + " has " + ChatColor.AQUA + exp + ChatColor.BLUE + " experience points.");
- }
- }
- }
- if (commandname.equalsIgnoreCase("rollskill")) {
- if (args.length == 1) {
- int sided = 20;
- int mod = 0;
- int result = 1 + randomGenerator.nextInt(sided);
- String skill = args[0];
- skill = skill.toLowerCase();
- PlayerSkillMods modifier = this.getDatabase().find(PlayerSkillMods.class).where().ieq("playerName",player.getName()).ieq("skillName", skill).findUnique();
- int diffClass = difficultyClass.get(skill);
- if (modifier != null) {
- mod = modifier.getSkillMod();
- }
- int finalResult = result + mod;
- if (result == 20) {
- getServer().broadcastMessage("[" + ChatColor.AQUA.toString() + skill.toUpperCase() + ChatColor.WHITE.toString() + "] " + ChatColor.BLUE.toString()
- + ((Player)sender).getName() + ChatColor.RED.toString() + " rolled a " + ChatColor.GOLD.toString() + "Natural 20!");
- }
- else if (result == 1) {
- getServer().broadcastMessage("[" + ChatColor.AQUA.toString() + skill.toUpperCase() + ChatColor.WHITE.toString() + "] " + ChatColor.BLUE.toString()
- + ((Player)sender).getName() + ChatColor.RED.toString() + " rolled a " + ChatColor.DARK_RED.toString() + "Critical Fumble!");
- }
- else {
- if (difficultyClass.containsKey(skill)) {
- if (difficultyClass.get(skill) != 0) {
- if (finalResult >= diffClass) {
- getServer().broadcastMessage("[" + ChatColor.AQUA.toString() + skill.toUpperCase() + ChatColor.WHITE.toString() + "] " + ChatColor.BLUE.toString()
- + ((Player)sender).getName() + ChatColor.RED.toString() + " rolled a " + ChatColor.BLUE.toString() + result + " + " + mod
- + ChatColor.YELLOW.toString() + " (" + finalResult + ")" + ChatColor.WHITE + " [" + ChatColor.GOLD + "PASS" + ChatColor.WHITE + "]");
- }
- if (finalResult < diffClass) {
- getServer().broadcastMessage("[" + ChatColor.AQUA.toString() + skill.toUpperCase() + ChatColor.WHITE.toString() + "] " + ChatColor.BLUE.toString()
- + ((Player)sender).getName() + ChatColor.RED.toString() + " rolled a " + ChatColor.BLUE.toString() + result + " + " + mod
- + ChatColor.YELLOW.toString() + " (" + finalResult + ")" + ChatColor.WHITE + " [" + ChatColor.DARK_RED + "FAIL" + ChatColor.WHITE + "]");
- }
- }
- }
- if (!difficultyClass.containsKey(skill)) {
- getServer().broadcastMessage("[" + ChatColor.AQUA.toString() + skill.toUpperCase() + ChatColor.WHITE.toString() + "] " + ChatColor.BLUE.toString()
- + ((Player)sender).getName() + ChatColor.RED.toString() + " rolled a " + ChatColor.BLUE.toString() + result + " + " + mod
- + ChatColor.YELLOW.toString() + " (" + finalResult + ")");
- }
- }
- }
- }
- if (commandname.equalsIgnoreCase("skilldc")) {
- if (!DRoller.Permissions.has(player, "DCraft.DM")) {
- player.sendMessage(ChatColor.LIGHT_PURPLE.toString() + "Sorry, you don't have the permission to access this command!");
- }
- if (DRoller.Permissions.has(player, "DCraft.DM")) {
- if (args.length == 2) {
- String skillName = args[0];
- skillName = skillName.toLowerCase();
- int skillDC = Integer.parseInt(args[1]);
- difficultyClass.put(skillName, skillDC);
- player.sendMessage(ChatColor.BLUE.toString() + "You have set skill " + ChatColor.RED.toString() + skillName + ChatColor.BLUE.toString() + "'s DC to "
- + ChatColor.YELLOW.toString() + skillDC);
- }
- if (args.length == 1) {
- String skillName = args[0];
- skillName = skillName.toLowerCase();
- int skillDC = 0;
- difficultyClass.put(skillName, skillDC);
- player.sendMessage(ChatColor.BLUE.toString() + "You have disabled skill " + ChatColor.RED.toString() + skillName + ChatColor.BLUE.toString() + "'s DC");
- }
- }
- }
- if (commandname.equalsIgnoreCase("rollmult")) {
- if (args.length == 1) {
- int sided = 20;
- int sets = Integer.parseInt(args[0]);
- for (int i=0; i<sets; i++) {
- int result = 1 + randomGenerator.nextInt(sided);
- if (result == 20) {
- getServer().broadcastMessage("[" + ChatColor.AQUA.toString() + "d" + sided + ChatColor.WHITE.toString() + "] " + ChatColor.BLUE.toString()
- + ((Player)sender).getName() + ChatColor.RED.toString() + " rolled a " + ChatColor.GOLD.toString() + "Natural 20!");
- }
- else if (result == 1) {
- getServer().broadcastMessage("[" + ChatColor.AQUA.toString() + "d" + sided + ChatColor.WHITE.toString() + "] " + ChatColor.BLUE.toString()
- + ((Player)sender).getName() + ChatColor.RED.toString() + " rolled a " + ChatColor.DARK_RED.toString() + "Critical Fumble!");
- }
- else
- getServer().broadcastMessage("[" + ChatColor.AQUA.toString() + "d" + sided + ChatColor.WHITE.toString() + "] " + ChatColor.BLUE.toString()
- + ((Player)sender).getName() + ChatColor.RED.toString() + " rolled a " + ChatColor.BLUE.toString() + result);
- }
- }
- if (args.length == 2) {
- int sided = Integer.parseInt(args[1]);
- int sets = Integer.parseInt(args[0]);
- int[] rollResults;
- rollResults = new int[sets];
- int rollSum = 0;
- for (int i=0; i<sets; i++) {
- rollResults[i] = 1 + randomGenerator.nextInt(sided);
- rollSum += rollResults[i];
- }
- getServer().broadcastMessage("[" + ChatColor.AQUA.toString() + sets + "d" + sided + ChatColor.WHITE.toString() + "] " + ChatColor.BLUE.toString()
- + ((Player)sender).getName() + ChatColor.RED.toString() + " rolled a total of " + ChatColor.BLUE.toString() + rollSum);
- }
- if (args.length == 3) {
- int sided = Integer.parseInt(args[1]);
- int sets = Integer.parseInt(args[0]);
- int[] rollResults;
- rollResults = new int[sets];
- int rollSum = 0;
- for (int i=0; i<sets; i++) {
- rollResults[i] = 1 + randomGenerator.nextInt(sided);
- rollSum += rollResults[i];
- }
- int modifierStatic = Integer.parseInt(args[2]);
- int finalResult = rollSum + modifierStatic;
- getServer().broadcastMessage("[" + ChatColor.AQUA.toString() + sets + "d" + sided + ChatColor.WHITE.toString() + "] " + ChatColor.BLUE.toString()
- + ((Player)sender).getName() + ChatColor.RED.toString() + " rolled a total of " + ChatColor.BLUE.toString() + rollSum + ChatColor.YELLOW.toString()
- + " + " + + modifierStatic + " (" + finalResult + ")");
- }
- }
- }
- return false;
- }
- }