mirror of
https://github.com/IntellectualSites/PlotSquared.git
synced 2024-11-22 05:06:44 +01:00
Some improvements, I still have to test the setowner stuff, seemed a bit dangerous to give OP :3
This commit is contained in:
parent
adae7f3cf0
commit
3c5f88c0be
@ -327,7 +327,11 @@ public enum C {
|
|||||||
HELP_CATEGORY("&6Current Category&c: &l%category%"),
|
HELP_CATEGORY("&6Current Category&c: &l%category%"),
|
||||||
HELP_INFO("&6You need to specify a help category"),
|
HELP_INFO("&6You need to specify a help category"),
|
||||||
HELP_INFO_ITEM("&6/plots help %category% &c- &6%category_desc%"),
|
HELP_INFO_ITEM("&6/plots help %category% &c- &6%category_desc%"),
|
||||||
HELP_PAGE("&c>> &6%usage% &c[&6%alias%&c] &c- &6%desc%"),
|
HELP_PAGE(
|
||||||
|
"&c>> &6%usage% &c[&6%alias%&c]\n" +
|
||||||
|
"&c>> &6%desc%\n"
|
||||||
|
),
|
||||||
|
HELP_ITEM_SEPARATOR("&c%lines"),
|
||||||
HELP_HEADER("&c(Page &6%cur&c/&6%max&c) &6Help for Plots"),
|
HELP_HEADER("&c(Page &6%cur&c/&6%max&c) &6Help for Plots"),
|
||||||
/*
|
/*
|
||||||
* Direction
|
* Direction
|
||||||
|
@ -19,6 +19,7 @@ import org.bukkit.command.CommandExecutor;
|
|||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
import org.bukkit.command.TabCompleter;
|
import org.bukkit.command.TabCompleter;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
import org.bukkit.util.ChatPaginator;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
@ -49,16 +50,11 @@ public class MainCommand implements CommandExecutor, TabCompleter {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean onCommand(CommandSender sender, Command cmd, String commandLabel, String[] args) {
|
public boolean onCommand(CommandSender sender, Command cmd, String commandLabel, String[] args) {
|
||||||
Player player;
|
Player player = (sender instanceof Player) ? (Player) sender : null;
|
||||||
if (sender instanceof Player) {
|
|
||||||
player = (Player) sender;
|
if (!PlotMain.hasPermission(player, "plots.use"))
|
||||||
}
|
|
||||||
else {
|
|
||||||
player = null;
|
|
||||||
}
|
|
||||||
if (!PlotMain.hasPermission(player, "plots.use")) {
|
|
||||||
return no_permission(player, "plots.use");
|
return no_permission(player, "plots.use");
|
||||||
}
|
|
||||||
if ((args.length < 1)
|
if ((args.length < 1)
|
||||||
|| ((args.length >= 1) && (args[0].equalsIgnoreCase("help") || args[0].equalsIgnoreCase("he")))) {
|
|| ((args.length >= 1) && (args[0].equalsIgnoreCase("help") || args[0].equalsIgnoreCase("he")))) {
|
||||||
if (args.length < 2) {
|
if (args.length < 2) {
|
||||||
@ -89,14 +85,21 @@ public class MainCommand implements CommandExecutor, TabCompleter {
|
|||||||
}
|
}
|
||||||
StringBuilder help = new StringBuilder();
|
StringBuilder help = new StringBuilder();
|
||||||
int page = 0;
|
int page = 0;
|
||||||
try {
|
|
||||||
|
boolean digit = true;
|
||||||
|
for(char c : args[2].toCharArray())
|
||||||
|
if(!Character.isDigit(c)) {
|
||||||
|
digit = false;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if(digit) {
|
||||||
page = Integer.parseInt(args[2]);
|
page = Integer.parseInt(args[2]);
|
||||||
--page;
|
if(--page < 0) page = 0;
|
||||||
if(page < 0) page = 0;
|
}
|
||||||
} catch(Exception e) {}
|
|
||||||
for (String string : helpMenu(player, cato, page)) {
|
for(String string : helpMenu(player, cato, page))
|
||||||
help.append(string).append("\n");
|
help.append(string).append("\n");
|
||||||
}
|
|
||||||
PlayerFunctions.sendMessage(player, help.toString());
|
PlayerFunctions.sendMessage(player, help.toString());
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@ -175,10 +178,11 @@ public class MainCommand implements CommandExecutor, TabCompleter {
|
|||||||
public static ArrayList<String> helpMenu(Player player, final SubCommand.CommandCategory category, int page) {
|
public static ArrayList<String> helpMenu(Player player, final SubCommand.CommandCategory category, int page) {
|
||||||
List<SubCommand> commands = getCommands(category, player);
|
List<SubCommand> commands = getCommands(category, player);
|
||||||
//final int totalPages = ((int) Math.ceil(12 * (commands.size()) / 100));
|
//final int totalPages = ((int) Math.ceil(12 * (commands.size()) / 100));
|
||||||
int totalPages = (int) Math.ceil(commands.size() / 12);
|
int perPage = 5;
|
||||||
|
int totalPages = (int) Math.ceil(commands.size() / perPage);
|
||||||
if(page > totalPages)
|
if(page > totalPages)
|
||||||
page = totalPages;
|
page = totalPages;
|
||||||
int max = (page * 12) + 12;
|
int max = (page * perPage) + perPage;
|
||||||
if(max > commands.size())
|
if(max > commands.size())
|
||||||
max = commands.size();
|
max = commands.size();
|
||||||
ArrayList<String> help = new ArrayList<>(
|
ArrayList<String> help = new ArrayList<>(
|
||||||
@ -187,14 +191,27 @@ public class MainCommand implements CommandExecutor, TabCompleter {
|
|||||||
t(C.HELP_CATEGORY.s().replaceAll("%category%", category.toString()))
|
t(C.HELP_CATEGORY.s().replaceAll("%category%", category.toString()))
|
||||||
));
|
));
|
||||||
SubCommand cmd;
|
SubCommand cmd;
|
||||||
for(int x = (page * 12); x < max; x++) {
|
|
||||||
|
String lines = "";
|
||||||
|
for(int x = 0; x < ChatPaginator.GUARANTEED_NO_WRAP_CHAT_PAGE_WIDTH * 0.75; x++) {
|
||||||
|
lines += "-";
|
||||||
|
}
|
||||||
|
|
||||||
|
int start = page * perPage;
|
||||||
|
for(int x = start; x < max; x++) {
|
||||||
cmd = subCommands.get(x);
|
cmd = subCommands.get(x);
|
||||||
String s = t(C.HELP_PAGE.s());
|
String s = t(C.HELP_PAGE.s());
|
||||||
s = s.replaceAll("%alias%", cmd.alias);
|
s = s.replaceAll("%alias%", cmd.alias);
|
||||||
s = s.replaceAll("%usage%", cmd.usage.contains("plot") ? cmd.usage : "/plot " + cmd.usage);
|
s = s.replaceAll("%usage%", cmd.usage.contains("plot") ? cmd.usage : "/plot " + cmd.usage);
|
||||||
s = s.replaceAll("%cmd%", cmd.cmd);
|
s = s.replaceAll("%cmd%", cmd.cmd);
|
||||||
s = s.replaceAll("%desc%", cmd.description);
|
s = s.replaceAll("%desc%", cmd.description);
|
||||||
|
|
||||||
help.add(s);
|
help.add(s);
|
||||||
|
|
||||||
|
if(x != start && x != max - 1) {
|
||||||
|
help.add(t(C.HELP_ITEM_SEPARATOR.s().replaceAll("%lines", lines)));
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
if (help.size() < 2) {
|
if (help.size() < 2) {
|
||||||
help.add(t(C.NO_COMMANDS.s()));
|
help.add(t(C.NO_COMMANDS.s()));
|
||||||
|
@ -1,22 +1,6 @@
|
|||||||
package com.intellectualcrafters.plot.listeners;
|
package com.intellectualcrafters.plot.listeners;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import com.intellectualcrafters.plot.*;
|
||||||
import java.util.Map;
|
|
||||||
import java.util.UUID;
|
|
||||||
|
|
||||||
import org.bukkit.Bukkit;
|
|
||||||
import org.bukkit.Location;
|
|
||||||
import org.bukkit.World;
|
|
||||||
import org.bukkit.entity.Player;
|
|
||||||
import org.bukkit.event.EventHandler;
|
|
||||||
import org.bukkit.event.EventPriority;
|
|
||||||
import org.bukkit.event.Listener;
|
|
||||||
|
|
||||||
import com.intellectualcrafters.plot.Plot;
|
|
||||||
import com.intellectualcrafters.plot.PlotHelper;
|
|
||||||
import com.intellectualcrafters.plot.PlotId;
|
|
||||||
import com.intellectualcrafters.plot.PlotMain;
|
|
||||||
import com.intellectualcrafters.plot.UUIDHandler;
|
|
||||||
import com.intellectualcrafters.plot.events.PlayerClaimPlotEvent;
|
import com.intellectualcrafters.plot.events.PlayerClaimPlotEvent;
|
||||||
import com.intellectualcrafters.plot.events.PlotDeleteEvent;
|
import com.intellectualcrafters.plot.events.PlotDeleteEvent;
|
||||||
import com.intellectualcrafters.plot.events.PlotMergeEvent;
|
import com.intellectualcrafters.plot.events.PlotMergeEvent;
|
||||||
@ -28,6 +12,18 @@ import com.sk89q.worldguard.protection.flags.Flag;
|
|||||||
import com.sk89q.worldguard.protection.managers.RegionManager;
|
import com.sk89q.worldguard.protection.managers.RegionManager;
|
||||||
import com.sk89q.worldguard.protection.regions.ProtectedCuboidRegion;
|
import com.sk89q.worldguard.protection.regions.ProtectedCuboidRegion;
|
||||||
import com.sk89q.worldguard.protection.regions.ProtectedRegion;
|
import com.sk89q.worldguard.protection.regions.ProtectedRegion;
|
||||||
|
import org.bukkit.Bukkit;
|
||||||
|
import org.bukkit.Location;
|
||||||
|
import org.bukkit.World;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
import org.bukkit.event.EventHandler;
|
||||||
|
import org.bukkit.event.EventPriority;
|
||||||
|
import org.bukkit.event.Listener;
|
||||||
|
import org.bukkit.permissions.PermissionAttachment;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Created by Citymonstret on 2014-09-24.
|
* Created by Citymonstret on 2014-09-24.
|
||||||
@ -43,9 +39,18 @@ public class WorldGuardListener implements Listener {
|
|||||||
this.flags.add(flag);
|
this.flags.add(flag);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void changeOwner(Player requester, UUID owner, World world, Plot plot) {
|
public void changeOwner(Player requester, UUID owner, World world, Plot plot) {
|
||||||
boolean op = requester.isOp();
|
//boolean op = requester.isOp();
|
||||||
requester.setOp(true);
|
//requester.setOp(true);
|
||||||
|
|
||||||
|
//10 ticks should be enough
|
||||||
|
PermissionAttachment add = requester.addAttachment(PlotMain.getPlugin(PlotMain.class), 10);
|
||||||
|
add.setPermission("worldguard.region.addowner.own.*", true);
|
||||||
|
|
||||||
|
PermissionAttachment remove = requester.addAttachment(PlotMain.getPlugin(PlotMain.class), 10);
|
||||||
|
remove.setPermission("worldguard.region.removeowner.own.*", true);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
RegionManager manager = PlotMain.worldGuard.getRegionManager(world);
|
RegionManager manager = PlotMain.worldGuard.getRegionManager(world);
|
||||||
manager.getRegion(plot.id.x + "-" + plot.id.y);
|
manager.getRegion(plot.id.x + "-" + plot.id.y);
|
||||||
@ -53,10 +58,12 @@ public class WorldGuardListener implements Listener {
|
|||||||
requester.performCommand("region removeowner " + (plot.id.x + "-" + plot.id.y) + " " + UUIDHandler.getName(plot.getOwner()));
|
requester.performCommand("region removeowner " + (plot.id.x + "-" + plot.id.y) + " " + UUIDHandler.getName(plot.getOwner()));
|
||||||
}
|
}
|
||||||
catch (Exception e) {
|
catch (Exception e) {
|
||||||
requester.setOp(op);
|
//requester.setOp(op);
|
||||||
|
|
||||||
}
|
}
|
||||||
finally {
|
finally {
|
||||||
requester.setOp(op);
|
add.remove();
|
||||||
|
remove.remove();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,15 +1,11 @@
|
|||||||
package PlotTesting;
|
|
||||||
|
|
||||||
import org.junit.Assert;
|
|
||||||
import org.junit.Test;
|
|
||||||
|
|
||||||
import com.intellectualcrafters.plot.PlotHelper;
|
import com.intellectualcrafters.plot.PlotHelper;
|
||||||
import com.intellectualcrafters.plot.PlotMain;
|
import com.intellectualcrafters.plot.PlotMain;
|
||||||
import com.intellectualcrafters.plot.PlotManager;
|
import com.intellectualcrafters.plot.PlotManager;
|
||||||
import com.intellectualcrafters.plot.PlotWorld;
|
import com.intellectualcrafters.plot.PlotWorld;
|
||||||
import com.intellectualcrafters.plot.SchematicHandler;
|
|
||||||
import com.intellectualcrafters.plot.generator.DefaultPlotManager;
|
import com.intellectualcrafters.plot.generator.DefaultPlotManager;
|
||||||
import com.intellectualcrafters.plot.generator.DefaultPlotWorld;
|
import com.intellectualcrafters.plot.generator.DefaultPlotWorld;
|
||||||
|
import org.junit.Assert;
|
||||||
|
import org.junit.Test;
|
||||||
|
|
||||||
public class Test1 {
|
public class Test1 {
|
||||||
|
|
Loading…
Reference in New Issue
Block a user