mirror of
https://github.com/IntellectualSites/PlotSquared.git
synced 2024-11-22 21:26:45 +01:00
Fixes
Fixed plot auto for mega plot Fixed an issue with SQLManager and SQLite Added config option for max claim area for a mega plot with plot auto Fixed an issue with UUIDHandler + online mode and old minecraft versions.
This commit is contained in:
parent
fd306bf0a9
commit
7029069e31
@ -924,7 +924,7 @@ public class PlotMain extends JavaPlugin {
|
|||||||
final Map<String, Object> options = new HashMap<>();
|
final Map<String, Object> options = new HashMap<>();
|
||||||
|
|
||||||
options.put("auto_update", false);
|
options.put("auto_update", false);
|
||||||
|
options.put("claim.max-auto-area", Settings.MAX_AUTO_SIZE);
|
||||||
options.put("UUID.offline", Settings.OFFLINE_MODE);
|
options.put("UUID.offline", Settings.OFFLINE_MODE);
|
||||||
options.put("worldguard.enabled", Settings.WORLDGUARD);
|
options.put("worldguard.enabled", Settings.WORLDGUARD);
|
||||||
options.put("kill_road_mobs", Settings.KILL_ROAD_MOBS_DEFAULT);
|
options.put("kill_road_mobs", Settings.KILL_ROAD_MOBS_DEFAULT);
|
||||||
@ -959,6 +959,7 @@ public class PlotMain extends JavaPlugin {
|
|||||||
Settings.MOB_PATHFINDING = config.getBoolean("mob_pathfinding");
|
Settings.MOB_PATHFINDING = config.getBoolean("mob_pathfinding");
|
||||||
Settings.METRICS = config.getBoolean("metrics");
|
Settings.METRICS = config.getBoolean("metrics");
|
||||||
Settings.AUTO_CLEAR_DAYS = config.getInt("clear.auto.days");
|
Settings.AUTO_CLEAR_DAYS = config.getInt("clear.auto.days");
|
||||||
|
Settings.MAX_AUTO_SIZE = config.getInt("claim.max-auto-area");
|
||||||
Settings.AUTO_CLEAR = config.getBoolean("clear.auto.enabled");
|
Settings.AUTO_CLEAR = config.getBoolean("clear.auto.enabled");
|
||||||
Settings.TITLES = config.getBoolean("titles");
|
Settings.TITLES = config.getBoolean("titles");
|
||||||
Settings.MOB_CAP_ENABLED = config.getBoolean("perm-based-mob-cap.enabled");
|
Settings.MOB_CAP_ENABLED = config.getBoolean("perm-based-mob-cap.enabled");
|
||||||
|
@ -23,6 +23,7 @@ package com.intellectualcrafters.plot.commands;
|
|||||||
|
|
||||||
import com.intellectualcrafters.plot.PlotMain;
|
import com.intellectualcrafters.plot.PlotMain;
|
||||||
import com.intellectualcrafters.plot.config.C;
|
import com.intellectualcrafters.plot.config.C;
|
||||||
|
import com.intellectualcrafters.plot.config.Settings;
|
||||||
import com.intellectualcrafters.plot.database.DBFunc;
|
import com.intellectualcrafters.plot.database.DBFunc;
|
||||||
import com.intellectualcrafters.plot.flag.Flag;
|
import com.intellectualcrafters.plot.flag.Flag;
|
||||||
import com.intellectualcrafters.plot.flag.FlagManager;
|
import com.intellectualcrafters.plot.flag.FlagManager;
|
||||||
@ -31,7 +32,9 @@ import com.intellectualcrafters.plot.object.PlotId;
|
|||||||
import com.intellectualcrafters.plot.object.PlotWorld;
|
import com.intellectualcrafters.plot.object.PlotWorld;
|
||||||
import com.intellectualcrafters.plot.util.PlayerFunctions;
|
import com.intellectualcrafters.plot.util.PlayerFunctions;
|
||||||
import com.intellectualcrafters.plot.util.PlotHelper;
|
import com.intellectualcrafters.plot.util.PlotHelper;
|
||||||
|
|
||||||
import net.milkbowl.vault.economy.Economy;
|
import net.milkbowl.vault.economy.Economy;
|
||||||
|
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.World;
|
import org.bukkit.World;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
@ -106,6 +109,8 @@ public class Auto extends SubCommand {
|
|||||||
schematic = args[1];
|
schematic = args[1];
|
||||||
}
|
}
|
||||||
} catch (final Exception e) {
|
} catch (final Exception e) {
|
||||||
|
size_x = 1;
|
||||||
|
size_z = 1;
|
||||||
schematic = args[0];
|
schematic = args[0];
|
||||||
// PlayerFunctions.sendMessage(plr,
|
// PlayerFunctions.sendMessage(plr,
|
||||||
// "&cError: Invalid size (X,Y)");
|
// "&cError: Invalid size (X,Y)");
|
||||||
@ -117,8 +122,19 @@ public class Auto extends SubCommand {
|
|||||||
// return false;
|
// return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (PlayerFunctions.getPlayerPlotCount(world, plr) >= PlayerFunctions.getAllowedPlots(plr)) {
|
|
||||||
PlayerFunctions.sendMessage(plr, C.CANT_CLAIM_MORE_PLOTS);
|
if (size_x * size_z > Settings.MAX_AUTO_SIZE) {
|
||||||
|
PlayerFunctions.sendMessage(plr, C.CANT_CLAIM_MORE_PLOTS_NUM, Settings.MAX_AUTO_SIZE + "");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
int diff = PlayerFunctions.getPlayerPlotCount(world, plr) - PlayerFunctions.getAllowedPlots(plr);
|
||||||
|
if (diff + (size_x * size_z) >= 0) {
|
||||||
|
if (diff < 0) {
|
||||||
|
PlayerFunctions.sendMessage(plr, C.CANT_CLAIM_MORE_PLOTS_NUM, - diff - 1 + "");
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
PlayerFunctions.sendMessage(plr, C.CANT_CLAIM_MORE_PLOTS);
|
||||||
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
final PlotWorld pWorld = PlotMain.getWorldSettings(world);
|
final PlotWorld pWorld = PlotMain.getWorldSettings(world);
|
||||||
@ -136,16 +152,16 @@ public class Auto extends SubCommand {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (!schematic.equals("")) {
|
if (!schematic.equals("")) {
|
||||||
if (pWorld.SCHEMATIC_CLAIM_SPECIFY) {
|
// if (pWorld.SCHEMATIC_CLAIM_SPECIFY) {
|
||||||
if (pWorld.SCHEMATICS.contains(schematic.toLowerCase())) {
|
if (!pWorld.SCHEMATICS.contains(schematic.toLowerCase())) {
|
||||||
sendMessage(plr, C.SCHEMATIC_INVALID, "non-existent: " + schematic);
|
sendMessage(plr, C.SCHEMATIC_INVALID, "non-existent: " + schematic);
|
||||||
return true;
|
return true;
|
||||||
}
|
|
||||||
if (!PlotMain.hasPermission(plr, "plots.claim." + schematic) && !plr.hasPermission("plots.admin")) {
|
|
||||||
PlayerFunctions.sendMessage(plr, C.NO_SCHEMATIC_PERMISSION, schematic);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
if (!PlotMain.hasPermission(plr, "plots.claim." + schematic) && !plr.hasPermission("plots.admin")) {
|
||||||
|
PlayerFunctions.sendMessage(plr, C.NO_SCHEMATIC_PERMISSION, schematic);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
// }
|
||||||
}
|
}
|
||||||
boolean br = false;
|
boolean br = false;
|
||||||
if ((size_x == 1) && (size_z == 1)) {
|
if ((size_x == 1) && (size_z == 1)) {
|
||||||
@ -165,23 +181,25 @@ public class Auto extends SubCommand {
|
|||||||
Auto.lastPlot = getNextPlot(Auto.lastPlot, 1);
|
Auto.lastPlot = getNextPlot(Auto.lastPlot, 1);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
boolean lastPlot = true;
|
||||||
// Why does this need fixing, it should work fine for auto claiming mega plots
|
PlotId lastId = Auto.lastPlot;
|
||||||
|
|
||||||
|
|
||||||
while (!br) {
|
while (!br) {
|
||||||
final PlotId start = getNextPlot(Auto.lastPlot, 1);
|
final PlotId start = getNextPlot(Auto.lastPlot, 1);
|
||||||
|
|
||||||
// Checking if the current set of plots is a viable option.
|
// Checking if the current set of plots is a viable option.
|
||||||
{
|
Auto.lastPlot = start;
|
||||||
if ((PlotMain.getPlots(world).get(start) == null) || (PlotMain.getPlots(world).get(start).owner == null)) {
|
if (lastPlot) {
|
||||||
Auto.lastPlot = start;
|
lastId = start;
|
||||||
continue;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
if (PlotMain.getPlots(world).get(start) != null && PlotMain.getPlots(world).get(start).owner != null) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
lastPlot = false;
|
||||||
|
}
|
||||||
|
System.out.print("UNOWNED: " + start);
|
||||||
final PlotId end = new PlotId((start.x + size_x) - 1, (start.y + size_z) - 1);
|
final PlotId end = new PlotId((start.x + size_x) - 1, (start.y + size_z) - 1);
|
||||||
if (isUnowned(world, start, end)) {
|
if (isUnowned(world, start, end)) {
|
||||||
|
System.out.print("LAST PLOT: " + start);
|
||||||
for (int i = start.x; i <= end.x; i++) {
|
for (int i = start.x; i <= end.x; i++) {
|
||||||
for (int j = start.y; j <= end.y; j++) {
|
for (int j = start.y; j <= end.y; j++) {
|
||||||
final Plot plot = PlotHelper.getPlot(world, new PlotId(i, j));
|
final Plot plot = PlotHelper.getPlot(world, new PlotId(i, j));
|
||||||
|
@ -151,6 +151,7 @@ public enum C {
|
|||||||
NO_PERMISSION("&cYou are lacking the permission node: &6%s"),
|
NO_PERMISSION("&cYou are lacking the permission node: &6%s"),
|
||||||
NO_PLOT_PERMS("&cYou don't have the permissions to do that in this plot"),
|
NO_PLOT_PERMS("&cYou don't have the permissions to do that in this plot"),
|
||||||
CANT_CLAIM_MORE_PLOTS("&cYou can't claim more plots."),
|
CANT_CLAIM_MORE_PLOTS("&cYou can't claim more plots."),
|
||||||
|
CANT_CLAIM_MORE_PLOTS_NUM("&cYou can't claim more than &6%s &cplots at once"),
|
||||||
YOU_BE_DENIED("&cYou are not allowed to enter this plot"),
|
YOU_BE_DENIED("&cYou are not allowed to enter this plot"),
|
||||||
|
|
||||||
NO_PERM_MERGE("&cYou are not the owner of the plot: &6%plot%"),
|
NO_PERM_MERGE("&cYou are not the owner of the plot: &6%plot%"),
|
||||||
|
@ -28,7 +28,10 @@ package com.intellectualcrafters.plot.config;
|
|||||||
* @author Empire92
|
* @author Empire92
|
||||||
*/
|
*/
|
||||||
public class Settings {
|
public class Settings {
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public static int MAX_AUTO_SIZE = 4;
|
||||||
/**
|
/**
|
||||||
* Default worldedit-require-selection-in-mask: false
|
* Default worldedit-require-selection-in-mask: false
|
||||||
*/
|
*/
|
||||||
|
@ -67,7 +67,8 @@ public class SQLManager implements AbstractDB {
|
|||||||
connection = c;
|
connection = c;
|
||||||
prefix = p;
|
prefix = p;
|
||||||
// Set timout
|
// Set timout
|
||||||
setTimout();
|
// setTimout();
|
||||||
|
|
||||||
// Public final
|
// Public final
|
||||||
SET_OWNER =
|
SET_OWNER =
|
||||||
"UPDATE `" + prefix + "plot` SET `owner` = ? WHERE `plot_id_x` = ? AND `plot_id_z` = ?";
|
"UPDATE `" + prefix + "plot` SET `owner` = ? WHERE `plot_id_x` = ? AND `plot_id_z` = ?";
|
||||||
@ -82,35 +83,37 @@ public class SQLManager implements AbstractDB {
|
|||||||
CREATE_PLOT =
|
CREATE_PLOT =
|
||||||
"INSERT INTO `" + prefix + "plot`(`plot_id_x`, `plot_id_z`, `owner`, `world`) VALUES(?, ?, ?, ?)";
|
"INSERT INTO `" + prefix + "plot`(`plot_id_x`, `plot_id_z`, `owner`, `world`) VALUES(?, ?, ?, ?)";
|
||||||
|
|
||||||
//schedule reconnect
|
//schedule reconnect
|
||||||
Bukkit.getScheduler().scheduleSyncRepeatingTask(PlotMain.getMain(), new Runnable(){
|
if (PlotMain.getMySQL() != null) {
|
||||||
public void run(){
|
Bukkit.getScheduler().scheduleSyncRepeatingTask(PlotMain.getMain(), new Runnable(){
|
||||||
try {
|
public void run(){
|
||||||
connection = PlotMain.getMySQL().forceConnection();
|
try {
|
||||||
|
connection = PlotMain.getMySQL().forceConnection();
|
||||||
|
}
|
||||||
|
catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
catch (Exception e) {
|
}, 11000, 11000);
|
||||||
e.printStackTrace();
|
}
|
||||||
}
|
|
||||||
}
|
|
||||||
}, 11000, 11000);
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
//
|
||||||
public void setTimout() {
|
// public void setTimout() {
|
||||||
runTask(new Runnable() {
|
// runTask(new Runnable() {
|
||||||
@Override
|
// @Override
|
||||||
public void run() {
|
// public void run() {
|
||||||
try {
|
// try {
|
||||||
final PreparedStatement statement = connection.prepareStatement("SET GLOBAL wait_timeout =28800;");
|
// final PreparedStatement statement = connection.prepareStatement("SET GLOBAL wait_timeout =28800;");
|
||||||
statement.executeUpdate();
|
// statement.executeQuery();
|
||||||
statement.close();
|
// statement.close();
|
||||||
} catch (final SQLException e) {
|
// } catch (final SQLException e) {
|
||||||
e.printStackTrace();
|
// e.printStackTrace();
|
||||||
Logger.add(LogLevel.DANGER, "Could not reset MySQL timout.");
|
// Logger.add(LogLevel.DANGER, "Could not reset MySQL timout.");
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
});
|
// });
|
||||||
}
|
// }
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set Plot owner
|
* Set Plot owner
|
||||||
|
@ -325,6 +325,12 @@ public class UUIDHandler {
|
|||||||
uuidWrapper = new OfflineUUIDWrapper();
|
uuidWrapper = new OfflineUUIDWrapper();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return uuidWrapper.getUUID(player);
|
try {
|
||||||
|
return uuidWrapper.getUUID(player);
|
||||||
|
}
|
||||||
|
catch (Throwable e) {
|
||||||
|
uuidWrapper = new OfflineUUIDWrapper();
|
||||||
|
return uuidWrapper.getUUID(player);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user