use of com.alpsbte.plotsystem.core.system.plot.Plot in project Plot-System by AlpsBTE.
the class EventListener method onPlayerJoinEvent.
@EventHandler
public void onPlayerJoinEvent(PlayerJoinEvent event) {
// Teleport Player to the spawn
event.getPlayer().teleport(Utils.getSpawnLocation());
// User has joined for the first time
// Adding user to the database
Bukkit.getScheduler().runTaskAsynchronously(PlotSystem.getPlugin(), () -> {
// Add Items
if (!event.getPlayer().getInventory().contains(CompanionMenu.getMenuItem(event.getPlayer()))) {
event.getPlayer().getInventory().setItem(8, CompanionMenu.getMenuItem(event.getPlayer()));
}
if (event.getPlayer().hasPermission("plotsystem.review") && !event.getPlayer().getInventory().contains(ReviewMenu.getMenuItem(event.getPlayer()))) {
event.getPlayer().getInventory().setItem(7, ReviewMenu.getMenuItem(event.getPlayer()));
}
// Check if player even exists in database.
try (ResultSet rs = DatabaseConnection.createStatement("SELECT * FROM plotsystem_builders WHERE uuid = ?").setValue(event.getPlayer().getUniqueId().toString()).executeQuery()) {
if (!rs.first()) {
DatabaseConnection.createStatement("INSERT INTO plotsystem_builders (uuid, name) VALUES (?, ?)").setValue(event.getPlayer().getUniqueId().toString()).setValue(event.getPlayer().getName()).executeUpdate();
}
DatabaseConnection.closeResultSet(rs);
} catch (SQLException ex) {
Bukkit.getLogger().log(Level.SEVERE, "A SQL error occurred!", ex);
}
// Inform player about update
if (event.getPlayer().hasPermission("plotsystem.admin") && PlotSystem.UpdateChecker.updateAvailable() && PlotSystem.getPlugin().getConfigManager().getConfig().getBoolean(ConfigPaths.CHECK_FOR_UPDATES)) {
event.getPlayer().sendMessage(Utils.getInfoMessageFormat("There is a new update for the Plot-System available. Check your console for more information!"));
event.getPlayer().playSound(event.getPlayer().getLocation(), Utils.CreatePlotSound, 1f, 1f);
}
// Check if player has changed his name
try {
Builder builder = new Builder(event.getPlayer().getUniqueId());
if (!builder.getName().equals(event.getPlayer().getName())) {
DatabaseConnection.createStatement("UPDATE plotsystem_builders SET name = ? WHERE uuid = ?").setValue(event.getPlayer().getName()).setValue(event.getPlayer().getUniqueId().toString()).executeUpdate();
}
} catch (SQLException ex) {
Bukkit.getLogger().log(Level.SEVERE, "A SQL error occurred!", ex);
}
// Informing player about new feedback
try {
List<Plot> plots = PlotManager.getPlots(new Builder(event.getPlayer().getUniqueId()), Status.completed, Status.unfinished);
List<Plot> reviewedPlots = new ArrayList<>();
for (Plot plot : plots) {
if (plot.isReviewed() && !plot.getReview().isFeedbackSent() && plot.getPlotOwner().getPlayer().equals(event.getPlayer())) {
reviewedPlots.add(plot);
plot.getReview().setFeedbackSent(true);
}
}
if (reviewedPlots.size() >= 1) {
PlotHandler.sendFeedbackMessage(reviewedPlots, event.getPlayer());
event.getPlayer().sendTitle("", "§6§l" + reviewedPlots.size() + " §a§lPlot" + (reviewedPlots.size() == 1 ? " " : "s ") + (reviewedPlots.size() == 1 ? "has" : "have") + " been reviewed!", 20, 150, 20);
}
} catch (Exception ex) {
Bukkit.getLogger().log(Level.SEVERE, "An error occurred while trying to inform the player about his plot feedback!", ex);
}
// Informing player about unfinished plots
try {
List<Plot> plots = PlotManager.getPlots(new Builder(event.getPlayer().getUniqueId()), Status.unfinished);
if (plots.size() >= 1) {
PlotHandler.sendUnfinishedPlotReminderMessage(plots, event.getPlayer());
event.getPlayer().sendMessage("");
}
} catch (Exception ex) {
Bukkit.getLogger().log(Level.SEVERE, "An error occurred while trying to inform the player about his unfinished plots!", ex);
}
// Informing reviewer about new reviews
if (event.getPlayer().hasPermission("plotsystem.review")) {
try {
List<Plot> unreviewedPlots = PlotManager.getPlots(Status.unreviewed);
if (unreviewedPlots.size() != 0) {
PlotHandler.sendUnreviewedPlotsReminderMessage(unreviewedPlots, event.getPlayer());
}
} catch (Exception ex) {
Bukkit.getLogger().log(Level.SEVERE, "An error occurred while trying to inform the player about unreviewed plots!", ex);
}
}
});
}
use of com.alpsbte.plotsystem.core.system.plot.Plot in project Plot-System by AlpsBTE.
the class CMD_Plot_Submit method onCommand.
@Override
public void onCommand(CommandSender sender, String[] args) {
try {
Plot plot;
if (args.length > 0 && Utils.TryParseInt(args[0]) != null) {
int plotID = Integer.parseInt(args[0]);
if (PlotManager.plotExists(plotID)) {
plot = new Plot(plotID);
} else {
sender.sendMessage(Utils.getErrorMessageFormat(LangUtil.get(sender, LangPaths.Message.Error.PLOT_DOES_NOT_EXIST)));
return;
}
} else if (getPlayer(sender) != null && PlotManager.isPlotWorld(getPlayer(sender).getWorld())) {
plot = PlotManager.getPlotByWorld(getPlayer(sender).getWorld());
} else {
sendInfo(sender);
return;
}
if (sender.hasPermission("plotsystem.review") || plot.getPlotOwner().getUUID().equals(getPlayer(sender).getUniqueId())) {
if (plot.getStatus() == Status.unfinished) {
PlotHandler.submitPlot(plot);
if (plot.getPlotMembers().isEmpty()) {
// Plot was made alone
LangUtil.broadcast(LangPaths.Message.Info.FINISHED_PLOT, String.valueOf(plot.getID()), plot.getPlotOwner().getName());
} else {
// Plot was made in a group
StringBuilder sb = new StringBuilder(plot.getPlotOwner().getName() + ", ");
for (int i = 0; i < plot.getPlotMembers().size(); i++) {
sb.append(i == plot.getPlotMembers().size() - 1 ? plot.getPlotMembers().get(i).getName() : plot.getPlotMembers().get(i).getName() + ", ");
}
LangUtil.broadcast(LangPaths.Message.Info.FINISHED_PLOT, String.valueOf(plot.getID()), sb.toString());
}
if (getPlayer(sender) != null)
getPlayer(sender).playSound(getPlayer(sender).getLocation(), Utils.FinishPlotSound, 1, 1);
} else {
sender.sendMessage(Utils.getErrorMessageFormat(LangUtil.get(sender, LangPaths.Message.Error.CAN_ONLY_SUBMIT_UNFINISHED_PLOTS)));
}
} else {
sender.sendMessage(Utils.getErrorMessageFormat(LangUtil.get(sender, LangPaths.Message.Error.PLAYER_IS_NOT_ALLOWED)));
}
} catch (SQLException ex) {
sender.sendMessage(Utils.getErrorMessageFormat(LangUtil.get(sender, LangPaths.Message.Error.ERROR_OCCURRED)));
Bukkit.getLogger().log(Level.SEVERE, "A SQL error occurred!", ex);
}
}
use of com.alpsbte.plotsystem.core.system.plot.Plot in project Plot-System by AlpsBTE.
the class CMD_Plot_UndoSubmit method onCommand.
@Override
public void onCommand(CommandSender sender, String[] args) {
try {
Plot plot;
if (args.length > 0 && Utils.TryParseInt(args[0]) != null) {
int plotID = Integer.parseInt(args[0]);
if (PlotManager.plotExists(plotID)) {
plot = new Plot(plotID);
} else {
sender.sendMessage(Utils.getErrorMessageFormat(LangUtil.get(sender, LangPaths.Message.Error.PLOT_DOES_NOT_EXIST)));
return;
}
} else if (getPlayer(sender) != null && PlotManager.isPlotWorld(getPlayer(sender).getWorld())) {
plot = PlotManager.getPlotByWorld(getPlayer(sender).getWorld());
} else {
sendInfo(sender);
return;
}
if (plot.getStatus() == Status.unreviewed) {
PlotHandler.undoSubmit(plot);
sender.sendMessage(Utils.getInfoMessageFormat(LangUtil.get(sender, LangPaths.Message.Info.UNDID_SUBMISSION, plot.getID() + "")));
if (getPlayer(sender) != null)
getPlayer(sender).playSound(getPlayer(sender).getLocation(), Utils.FinishPlotSound, 1, 1);
} else {
sender.sendMessage(Utils.getErrorMessageFormat(LangUtil.get(sender, LangPaths.Message.Error.CAN_ONLY_UNDO_SUBMISSIONS_UNREVIEWED_PLOTS)));
}
} catch (SQLException ex) {
sender.sendMessage(Utils.getErrorMessageFormat(LangUtil.get(sender, LangPaths.Message.Error.ERROR_OCCURRED)));
Bukkit.getLogger().log(Level.SEVERE, "A SQL error occurred!", ex);
}
}
use of com.alpsbte.plotsystem.core.system.plot.Plot in project Plot-System by AlpsBTE.
the class CMD_EditPlot method onCommand.
@Override
public boolean onCommand(CommandSender sender, Command cmd, String s, String[] args) {
if (PlotSystem.getPlugin().getConfigManager().getCommandsConfig().getBoolean(ConfigPaths.EDITPLOT_ENABLED)) {
if (sender.hasPermission(getPermission())) {
try {
Plot plot;
if (args.length > 0 && Utils.TryParseInt(args[0]) != null) {
int plotID = Integer.parseInt(args[0]);
if (PlotManager.plotExists(plotID)) {
plot = new Plot(plotID);
} else {
sender.sendMessage(Utils.getErrorMessageFormat(LangUtil.get(sender, LangPaths.Message.Error.PLOT_DOES_NOT_EXIST)));
return true;
}
} else if (getPlayer(sender) != null && PlotManager.isPlotWorld(getPlayer(sender).getWorld())) {
plot = PlotManager.getPlotByWorld(getPlayer(sender).getWorld());
} else {
sendInfo(sender);
return true;
}
if (plot.getPermissions().hasReviewerPerms()) {
plot.getPermissions().removeReviewerPerms().save();
sender.sendMessage(Utils.getInfoMessageFormat(LangUtil.get(sender, LangPaths.Message.Info.DISABLED_PLOT_PERMISSIONS, plot.getID() + "")));
} else {
plot.getPermissions().addReviewerPerms().save();
sender.sendMessage(Utils.getInfoMessageFormat(LangUtil.get(sender, LangPaths.Message.Info.ENABLED_PLOT_PERMISSIONS, plot.getID() + "")));
}
} catch (SQLException ex) {
sender.sendMessage(Utils.getErrorMessageFormat(LangUtil.get(sender, LangPaths.Message.Error.ERROR_OCCURRED)));
Bukkit.getLogger().log(Level.SEVERE, "A SQL error occurred!", ex);
}
} else {
sender.sendMessage(Utils.getErrorMessageFormat(LangUtil.get(sender, LangPaths.Message.Error.PLAYER_HAS_NO_PERMISSIONS)));
}
} else {
sender.sendMessage(Utils.getErrorMessageFormat(LangUtil.get(sender, LangPaths.Message.Error.COMMAND_DISABLED)));
}
return true;
}
use of com.alpsbte.plotsystem.core.system.plot.Plot in project Plot-System by AlpsBTE.
the class CMD_SendFeedback method onCommand.
@Override
public boolean onCommand(CommandSender sender, Command cmd, String s, String[] args) {
if (sender.hasPermission(getPermission())) {
try {
if (args.length > 1 && Utils.TryParseInt(args[0]) != null) {
int plotID = Integer.parseInt(args[0]);
if (PlotManager.plotExists(plotID)) {
Plot plot = new Plot(Integer.parseInt(args[0]));
if (plot.isReviewed() || plot.isRejected()) {
if (getPlayer(sender) == null || sender.hasPermission("plotsystem.admin") || plot.getReview().getReviewer().getUUID().equals(((Player) sender).getUniqueId())) {
StringBuilder feedback = new StringBuilder();
for (int i = 2; i <= args.length; i++) {
feedback.append(args.length == 2 ? "" : " ").append(args[i - 1]);
}
plot.getReview().setFeedback(feedback.toString());
sender.sendMessage(Utils.getInfoMessageFormat(LangUtil.get(sender, LangPaths.Message.Info.UPDATED_PLOT_FEEDBACK, plot.getID() + "")));
} else {
sender.sendMessage(Utils.getErrorMessageFormat(LangUtil.get(sender, LangPaths.Message.Error.CANNOT_SEND_FEEDBACK)));
}
} else {
sender.sendMessage(Utils.getErrorMessageFormat(LangUtil.get(sender, LangPaths.Message.Error.PLOT_EITHER_UNCLAIMED_OR_UNREVIEWED)));
}
} else {
sender.sendMessage(Utils.getErrorMessageFormat(LangUtil.get(sender, LangPaths.Message.Error.PLOT_DOES_NOT_EXIST)));
}
} else {
sendInfo(sender);
}
} catch (SQLException ex) {
sender.sendMessage(Utils.getErrorMessageFormat(LangUtil.get(sender, LangPaths.Message.Error.ERROR_OCCURRED)));
Bukkit.getLogger().log(Level.SEVERE, "A SQL error occurred!", ex);
}
} else {
sender.sendMessage(Utils.getErrorMessageFormat(LangUtil.get(sender, LangPaths.Message.Error.PLAYER_HAS_NO_PERMISSIONS)));
}
return true;
}
Aggregations