mirror of
https://github.com/YouHaveTrouble/PreventStabby.git
synced 2026-05-11 21:06:55 +00:00
implement PlayerTogglePvpEvent
This commit is contained in:
@@ -1,42 +1,49 @@
|
||||
package me.youhavetrouble.preventstabby.api.event;
|
||||
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.OfflinePlayer;
|
||||
import org.bukkit.event.Event;
|
||||
import org.bukkit.event.HandlerList;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
/**
|
||||
* NOT IMPLEMENTED YET
|
||||
* Fired when player gets their personal pvp state toggled.
|
||||
*/
|
||||
@Deprecated
|
||||
public class PlayerTogglePvpEvent extends Event {
|
||||
|
||||
private static final HandlerList HANDLERS = new HandlerList();
|
||||
private final Player player;
|
||||
private boolean newState, sendMessage;
|
||||
private final OfflinePlayer player;
|
||||
private final boolean newState;
|
||||
private boolean sendMessage;
|
||||
|
||||
public PlayerTogglePvpEvent(Player player, boolean newState, boolean sendMessage) {
|
||||
public PlayerTogglePvpEvent(OfflinePlayer player, boolean newState, boolean sendMessage) {
|
||||
this.player = player;
|
||||
this.newState = newState;
|
||||
this.sendMessage = sendMessage;
|
||||
}
|
||||
|
||||
public Player getPlayer() {
|
||||
public OfflinePlayer getPlayer() {
|
||||
return player;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the state player's pvp state was toggled to.
|
||||
* @return The state player's pvp state was toggled to.
|
||||
*/
|
||||
public boolean newState() {
|
||||
return newState;
|
||||
}
|
||||
|
||||
public void setNewState(boolean newState) {
|
||||
this.newState = newState;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns true if the state message will be sent to the player, false otherwise
|
||||
* @return True if the state message will be sent to the player, false otherwise
|
||||
*/
|
||||
public boolean isSendMessage() {
|
||||
return sendMessage;
|
||||
}
|
||||
|
||||
/**
|
||||
* If this is true at the end of event pipeline, message with the current state will be sent to player.
|
||||
*/
|
||||
public void setSendMessage(boolean sendMessage) {
|
||||
this.sendMessage = sendMessage;
|
||||
}
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package me.youhavetrouble.preventstabby.commands;
|
||||
|
||||
import me.youhavetrouble.preventstabby.PreventStabby;
|
||||
import me.youhavetrouble.preventstabby.api.event.PlayerTogglePvpEvent;
|
||||
import me.youhavetrouble.preventstabby.config.PreventStabbyPermission;
|
||||
import me.youhavetrouble.preventstabby.util.CombatTimer;
|
||||
import me.youhavetrouble.preventstabby.util.PluginMessages;
|
||||
@@ -25,12 +26,17 @@ public class PvpToggleCommand {
|
||||
return;
|
||||
}
|
||||
boolean currentState = PreventStabby.getPlugin().getPlayerManager().togglePlayerPvpState(player.getUniqueId());
|
||||
|
||||
if (currentState) {
|
||||
PluginMessages.sendMessage(sender, PreventStabby.getPlugin().getConfigCache().getPvp_enabled());
|
||||
} else {
|
||||
PluginMessages.sendMessage(sender, PreventStabby.getPlugin().getConfigCache().getPvp_disabled());
|
||||
}
|
||||
PlayerTogglePvpEvent toggleEvent = new PlayerTogglePvpEvent(player, currentState, true);
|
||||
Bukkit.getScheduler().runTask(PreventStabby.getPlugin(), () -> {
|
||||
Bukkit.getPluginManager().callEvent(toggleEvent);
|
||||
if (toggleEvent.isSendMessage()) {
|
||||
if (currentState) {
|
||||
PluginMessages.sendMessage(sender, PreventStabby.getPlugin().getConfigCache().getPvp_enabled());
|
||||
} else {
|
||||
PluginMessages.sendMessage(sender, PreventStabby.getPlugin().getConfigCache().getPvp_disabled());
|
||||
}
|
||||
}
|
||||
});
|
||||
} else {
|
||||
PluginMessages.sendMessage(sender, "Try /pvp toggle <player>");
|
||||
}
|
||||
@@ -53,6 +59,18 @@ public class PvpToggleCommand {
|
||||
return;
|
||||
}
|
||||
boolean currentState = PreventStabby.getPlugin().getPlayerManager().togglePlayerPvpState(player.getUniqueId());
|
||||
PlayerTogglePvpEvent toggleEvent = new PlayerTogglePvpEvent(player, currentState, false);
|
||||
Bukkit.getScheduler().runTask(PreventStabby.getPlugin(), () -> {
|
||||
Bukkit.getPluginManager().callEvent(toggleEvent);
|
||||
if (toggleEvent.isSendMessage()) {
|
||||
if (currentState) {
|
||||
PluginMessages.sendMessage(player, PreventStabby.getPlugin().getConfigCache().getPvp_enabled());
|
||||
} else {
|
||||
PluginMessages.sendMessage(player, PreventStabby.getPlugin().getConfigCache().getPvp_disabled());
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
String message;
|
||||
if (currentState) {
|
||||
message = PreventStabby.getPlugin().getConfigCache().getPvp_enabled_other();
|
||||
@@ -77,7 +95,13 @@ public class PvpToggleCommand {
|
||||
return;
|
||||
}
|
||||
PreventStabby.getPlugin().getPlayerManager().setPlayerPvpState(player.getUniqueId(), true);
|
||||
PluginMessages.sendMessage(sender, PreventStabby.getPlugin().getConfigCache().getPvp_enabled());
|
||||
PlayerTogglePvpEvent toggleEvent = new PlayerTogglePvpEvent(player, true, true);
|
||||
Bukkit.getScheduler().runTask(PreventStabby.getPlugin(), () -> {
|
||||
Bukkit.getPluginManager().callEvent(toggleEvent);
|
||||
if (toggleEvent.isSendMessage()) {
|
||||
PluginMessages.sendMessage(sender, PreventStabby.getPlugin().getConfigCache().getPvp_enabled());
|
||||
}
|
||||
});
|
||||
} else {
|
||||
PluginMessages.sendMessage(sender, "Try /pvp enable <player>");
|
||||
}
|
||||
@@ -101,6 +125,13 @@ public class PvpToggleCommand {
|
||||
String message = PreventStabby.getPlugin().getConfigCache().getPvp_enabled_other();
|
||||
PluginMessages.sendMessage(sender, PluginMessages.parsePlayerName(player, message));
|
||||
PreventStabby.getPlugin().getPlayerManager().setPlayerPvpState(player.getUniqueId(), true);
|
||||
PlayerTogglePvpEvent toggleEvent = new PlayerTogglePvpEvent(player, true, false);
|
||||
Bukkit.getScheduler().runTask(PreventStabby.getPlugin(), () -> {
|
||||
Bukkit.getPluginManager().callEvent(toggleEvent);
|
||||
if (toggleEvent.isSendMessage()) {
|
||||
PluginMessages.sendMessage(player, PreventStabby.getPlugin().getConfigCache().getPvp_enabled());
|
||||
}
|
||||
});
|
||||
} else {
|
||||
if (PreventStabbyPermission.COMMAND_TOGGLE_OTHERS.doesCommandSenderHave(sender)) {
|
||||
PluginMessages.sendMessage(sender, "Try /pvp enable <player>");
|
||||
@@ -123,7 +154,13 @@ public class PvpToggleCommand {
|
||||
return;
|
||||
}
|
||||
PreventStabby.getPlugin().getPlayerManager().setPlayerPvpState(player.getUniqueId(), false);
|
||||
PluginMessages.sendMessage(sender, PreventStabby.getPlugin().getConfigCache().getPvp_disabled());
|
||||
PlayerTogglePvpEvent toggleEvent = new PlayerTogglePvpEvent(player, false, true);
|
||||
Bukkit.getScheduler().runTask(PreventStabby.getPlugin(), () -> {
|
||||
Bukkit.getPluginManager().callEvent(toggleEvent);
|
||||
if (toggleEvent.isSendMessage()) {
|
||||
PluginMessages.sendMessage(sender, PreventStabby.getPlugin().getConfigCache().getPvp_disabled());
|
||||
}
|
||||
});
|
||||
} else {
|
||||
PluginMessages.sendMessage(sender, "Try /pvp disable <player>");
|
||||
}
|
||||
@@ -146,7 +183,14 @@ public class PvpToggleCommand {
|
||||
}
|
||||
String message = PreventStabby.getPlugin().getConfigCache().getPvp_disabled_other();
|
||||
PluginMessages.sendMessage(sender, PluginMessages.parsePlayerName(player, message));
|
||||
PreventStabby.getPlugin().getPlayerManager().setPlayerPvpState(player.getUniqueId(), true);
|
||||
PreventStabby.getPlugin().getPlayerManager().setPlayerPvpState(player.getUniqueId(), false);
|
||||
PlayerTogglePvpEvent toggleEvent = new PlayerTogglePvpEvent(player, false, false);
|
||||
Bukkit.getScheduler().runTask(PreventStabby.getPlugin(), () -> {
|
||||
Bukkit.getPluginManager().callEvent(toggleEvent);
|
||||
if (toggleEvent.isSendMessage()) {
|
||||
PluginMessages.sendMessage(player, PreventStabby.getPlugin().getConfigCache().getPvp_disabled());
|
||||
}
|
||||
});
|
||||
|
||||
} else {
|
||||
if (PreventStabbyPermission.COMMAND_TOGGLE_OTHERS.doesCommandSenderHave(sender)) {
|
||||
|
||||
Reference in New Issue
Block a user