diff --git a/src/main/java/com/dinnerbone/bukkit/home/commands/GoHomeCommand.java b/src/main/java/com/dinnerbone/bukkit/home/commands/GoHomeCommand.java index 041316e..a86f1c4 100644 --- a/src/main/java/com/dinnerbone/bukkit/home/commands/GoHomeCommand.java +++ b/src/main/java/com/dinnerbone/bukkit/home/commands/GoHomeCommand.java @@ -21,7 +21,7 @@ public boolean onCommand(CommandSender sender, Command command, String label, St if (player == null) { return true; - } else if ((player != sender) && (!sender.isOp())) { + } else if ((player != sender) && (!player.hasPermission("homebukkit.home.other"))) { sender.sendMessage(ChatColor.RED + "You don't have permission to go to other players homes"); return true; } else if (!(sender instanceof Player)) { @@ -32,7 +32,10 @@ public boolean onCommand(CommandSender sender, Command command, String label, St } String name = args[0]; - + if(player.hasPermission("homebukkit.home.self")){ + player.sendMessage("you dont have permission to go to your home"); + return true; + } Home home = plugin.getDatabase().find(Home.class).where().ieq("name", name).ieq("playerName", player.getName()).findUnique(); if (home == null) { diff --git a/src/main/java/com/dinnerbone/bukkit/home/commands/ListHomesCommand.java b/src/main/java/com/dinnerbone/bukkit/home/commands/ListHomesCommand.java index 6e4f31d..c4a7d95 100644 --- a/src/main/java/com/dinnerbone/bukkit/home/commands/ListHomesCommand.java +++ b/src/main/java/com/dinnerbone/bukkit/home/commands/ListHomesCommand.java @@ -32,6 +32,9 @@ public boolean onCommand(CommandSender sender, Command command, String label, St sender.sendMessage("That player has no homes!"); } } else { + if(sender == player && player.hasPermission("homebukkit.list.self") ){ + + String result = ""; for (Home home : homes) { @@ -44,6 +47,26 @@ public boolean onCommand(CommandSender sender, Command command, String label, St sender.sendMessage("All home(s): " + result); } + else if(sender != player && player.hasPermission("homebukkit.list.other")){ + String result = ""; + + for (Home home : homes) { + if (result.length() > 0) { + result += ", "; + } + + result += home.getName(); + } + + sender.sendMessage("All home(s): " + result); + } + else if(sender == player &&! player.hasPermission("homebukkit.list.self")){ + player.sendMessage("you dont have permission to list your own homes!"); + } + else if(sender != player &&! player.hasPermission("homebukkit.list.other")){ + player.sendMessage("you dont have permission to list other peoples homes!"); + } + } return true; } diff --git a/src/main/java/com/dinnerbone/bukkit/home/commands/SetHomeCommand.java b/src/main/java/com/dinnerbone/bukkit/home/commands/SetHomeCommand.java index dbbac02..e61ba43 100644 --- a/src/main/java/com/dinnerbone/bukkit/home/commands/SetHomeCommand.java +++ b/src/main/java/com/dinnerbone/bukkit/home/commands/SetHomeCommand.java @@ -21,7 +21,7 @@ public boolean onCommand(CommandSender sender, Command command, String label, St if (player == null) { return true; - } else if ((player != sender) && (!sender.isOp())) { + } else if ((player != sender) && (!sender.hasPermission("homebukkit.set.other"))) { sender.sendMessage(ChatColor.RED + "You don't have permission to set other players homes"); return true; } else if (!(sender instanceof Player)) { @@ -32,7 +32,10 @@ public boolean onCommand(CommandSender sender, Command command, String label, St } String name = args[0]; - + if(!player.hasPermission("homebukkit.set.self")){ + player.sendMessage("You dont have permission to set your home"); + return true; + } Home home = plugin.getDatabase().find(Home.class).where().ieq("name", name).ieq("playerName", player.getName()).findUnique(); if (home == null) { diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml index fbd486f..b46145f 100644 --- a/src/main/resources/plugin.yml +++ b/src/main/resources/plugin.yml @@ -21,4 +21,41 @@ commands: gohome: aliases: [home] description: Goes to a home - usage: / [player] \ No newline at end of file + usage: / [player] +permissions: + homebukkit.set: + description: allows the player to set homes + children: + homebukkit.set.self: true + homebukkit.set.other: true + homebukkit.set.self: + description: Allows the player to set their own home + homebukkit.set.other: + description: Allows the player to set other peoples homes + homebukkit.list: + description: Allows the player to list theirs and other players homes + children: + homebukkit.list.self:true + homebukkit.list.other:true + homebukkit.list.self: + description: Allows the player to list their homes + homebukkit.list.other: + description: Allows the player to list others homes + homebukkit.home: + description: allows the player to teleport to his/others homes + chidren: + homebukkit.set.self:true + homebukkit.set.other:true + homebukkit.home.self: + description: Allows the player to teleport to their home + homebukkit.home.other: + description: Allows the player to teleport to other players home + + homebukkit.*: + description: Gives all permissions for HomeBukkit + default: op + children: + homebukkit.set: true + homebukkit.list: true + homebukkit.home: true + \ No newline at end of file