Add option to force plot chat in plot areas.

This commit is contained in:
dordsor21 2020-04-16 16:55:14 +01:00
parent 6d9d0fff10
commit 3ee29297e0
3 changed files with 19 additions and 6 deletions

View File

@ -935,11 +935,15 @@ public class PlayerEvents extends PlotListener implements Listener {
PlotPlayer plotPlayer = BukkitUtil.getPlayer(event.getPlayer()); PlotPlayer plotPlayer = BukkitUtil.getPlayer(event.getPlayer());
Location location = plotPlayer.getLocation(); Location location = plotPlayer.getLocation();
PlotArea area = location.getPlotArea(); PlotArea area = location.getPlotArea();
if (area == null || !area.isPlotChat() || !plotPlayer.getAttribute("chat")) { if (area == null) {
return; return;
} }
Plot plot = area.getPlot(location); Plot plot = area.getPlot(location);
if (plot == null || !plot.getFlag(ChatFlag.class)) { if (plot == null) {
return;
}
if (!((plot.getFlag(ChatFlag.class) && area.isPlotChat() && plotPlayer.getAttribute("chat"))
|| area.isForcingPlotChat())) {
return; return;
} }
if (plot.isDenied(plotPlayer.getUUID())) { if (plot.isDenied(plotPlayer.getUUID())) {

View File

@ -25,18 +25,24 @@
*/ */
package com.plotsquared.core.command; package com.plotsquared.core.command;
import com.plotsquared.core.configuration.Captions;
import com.plotsquared.core.player.PlotPlayer; import com.plotsquared.core.player.PlotPlayer;
import com.plotsquared.core.util.MainUtil;
@CommandDeclaration(command = "chat", @CommandDeclaration(command = "chat",
description = "Toggle plot chat on or off", description = "Toggles plot chat on or off",
usage = "/plot chat [on|off]", usage = "/plot chat",
permission = "plots.chat", permission = "plots.chat",
category = CommandCategory.CHAT, category = CommandCategory.CHAT,
requiredType = RequiredType.PLAYER) requiredType = RequiredType.PLAYER)
public class Chat extends SubCommand { public class Chat extends SubCommand {
@Override public boolean onCommand(PlotPlayer player, String[] args) { @Override public boolean onCommand(PlotPlayer player, String[] args) {
MainCommand.getInstance().toggle.chat(this, player, new String[0], null, null); if (player.getPlotAreaAbs().isForcingPlotChat()) {
MainUtil.sendMessage(player, Captions.PLOT_CHAT_FORCED);
return true;
}
MainCommand.getInstance().toggle.chat(this, player, args, null, null);
return true; return true;
} }
} }

View File

@ -100,7 +100,8 @@ public abstract class PlotArea {
@Getter private boolean mobSpawning = false; @Getter private boolean mobSpawning = false;
@Getter private boolean mobSpawnerSpawning = false; @Getter private boolean mobSpawnerSpawning = false;
@Getter private BiomeType plotBiome = BiomeTypes.FOREST; @Getter private BiomeType plotBiome = BiomeTypes.FOREST;
@Getter private boolean plotChat = false; @Getter private boolean plotChat = true;
@Getter private boolean forcingPlotChat = false;
@Getter private boolean schematicClaimSpecify = false; @Getter private boolean schematicClaimSpecify = false;
@Getter private boolean schematicOnClaim = false; @Getter private boolean schematicOnClaim = false;
@Getter private String schematicFile = "null"; @Getter private String schematicFile = "null";
@ -276,6 +277,7 @@ public abstract class PlotArea {
} }
} }
this.plotChat = config.getBoolean("chat.enabled"); this.plotChat = config.getBoolean("chat.enabled");
this.forcingPlotChat = config.getBoolean("chat.forced");
this.worldBorder = config.getBoolean("world.border"); this.worldBorder = config.getBoolean("world.border");
this.maxBuildHeight = config.getInt("world.max_height"); this.maxBuildHeight = config.getInt("world.max_height");
this.minBuildHeight = config.getInt("world.min_height"); this.minBuildHeight = config.getInt("world.min_height");
@ -389,6 +391,7 @@ public abstract class PlotArea {
options.put("economy.prices.merge", 100); options.put("economy.prices.merge", 100);
options.put("economy.prices.sell", 100); options.put("economy.prices.sell", 100);
options.put("chat.enabled", this.isPlotChat()); options.put("chat.enabled", this.isPlotChat());
options.put("chat.forced", this.isForcingPlotChat());
options.put("flags.default", null); options.put("flags.default", null);
options.put("event.spawn.egg", this.isSpawnEggs()); options.put("event.spawn.egg", this.isSpawnEggs());
options.put("event.spawn.custom", this.isSpawnCustom()); options.put("event.spawn.custom", this.isSpawnCustom());