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;
|
package me.youhavetrouble.preventstabby.api.event;
|
||||||
|
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.OfflinePlayer;
|
||||||
import org.bukkit.event.Event;
|
import org.bukkit.event.Event;
|
||||||
import org.bukkit.event.HandlerList;
|
import org.bukkit.event.HandlerList;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* NOT IMPLEMENTED YET
|
* Fired when player gets their personal pvp state toggled.
|
||||||
*/
|
*/
|
||||||
@Deprecated
|
|
||||||
public class PlayerTogglePvpEvent extends Event {
|
public class PlayerTogglePvpEvent extends Event {
|
||||||
|
|
||||||
private static final HandlerList HANDLERS = new HandlerList();
|
private static final HandlerList HANDLERS = new HandlerList();
|
||||||
private final Player player;
|
private final OfflinePlayer player;
|
||||||
private boolean newState, sendMessage;
|
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.player = player;
|
||||||
this.newState = newState;
|
this.newState = newState;
|
||||||
this.sendMessage = sendMessage;
|
this.sendMessage = sendMessage;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Player getPlayer() {
|
public OfflinePlayer getPlayer() {
|
||||||
return player;
|
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() {
|
public boolean newState() {
|
||||||
return 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() {
|
public boolean isSendMessage() {
|
||||||
return sendMessage;
|
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) {
|
public void setSendMessage(boolean sendMessage) {
|
||||||
this.sendMessage = sendMessage;
|
this.sendMessage = sendMessage;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
package me.youhavetrouble.preventstabby.commands;
|
package me.youhavetrouble.preventstabby.commands;
|
||||||
|
|
||||||
import me.youhavetrouble.preventstabby.PreventStabby;
|
import me.youhavetrouble.preventstabby.PreventStabby;
|
||||||
|
import me.youhavetrouble.preventstabby.api.event.PlayerTogglePvpEvent;
|
||||||
import me.youhavetrouble.preventstabby.config.PreventStabbyPermission;
|
import me.youhavetrouble.preventstabby.config.PreventStabbyPermission;
|
||||||
import me.youhavetrouble.preventstabby.util.CombatTimer;
|
import me.youhavetrouble.preventstabby.util.CombatTimer;
|
||||||
import me.youhavetrouble.preventstabby.util.PluginMessages;
|
import me.youhavetrouble.preventstabby.util.PluginMessages;
|
||||||
@@ -25,12 +26,17 @@ public class PvpToggleCommand {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
boolean currentState = PreventStabby.getPlugin().getPlayerManager().togglePlayerPvpState(player.getUniqueId());
|
boolean currentState = PreventStabby.getPlugin().getPlayerManager().togglePlayerPvpState(player.getUniqueId());
|
||||||
|
PlayerTogglePvpEvent toggleEvent = new PlayerTogglePvpEvent(player, currentState, true);
|
||||||
if (currentState) {
|
Bukkit.getScheduler().runTask(PreventStabby.getPlugin(), () -> {
|
||||||
PluginMessages.sendMessage(sender, PreventStabby.getPlugin().getConfigCache().getPvp_enabled());
|
Bukkit.getPluginManager().callEvent(toggleEvent);
|
||||||
} else {
|
if (toggleEvent.isSendMessage()) {
|
||||||
PluginMessages.sendMessage(sender, PreventStabby.getPlugin().getConfigCache().getPvp_disabled());
|
if (currentState) {
|
||||||
}
|
PluginMessages.sendMessage(sender, PreventStabby.getPlugin().getConfigCache().getPvp_enabled());
|
||||||
|
} else {
|
||||||
|
PluginMessages.sendMessage(sender, PreventStabby.getPlugin().getConfigCache().getPvp_disabled());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
} else {
|
} else {
|
||||||
PluginMessages.sendMessage(sender, "Try /pvp toggle <player>");
|
PluginMessages.sendMessage(sender, "Try /pvp toggle <player>");
|
||||||
}
|
}
|
||||||
@@ -53,6 +59,18 @@ public class PvpToggleCommand {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
boolean currentState = PreventStabby.getPlugin().getPlayerManager().togglePlayerPvpState(player.getUniqueId());
|
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;
|
String message;
|
||||||
if (currentState) {
|
if (currentState) {
|
||||||
message = PreventStabby.getPlugin().getConfigCache().getPvp_enabled_other();
|
message = PreventStabby.getPlugin().getConfigCache().getPvp_enabled_other();
|
||||||
@@ -77,7 +95,13 @@ public class PvpToggleCommand {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
PreventStabby.getPlugin().getPlayerManager().setPlayerPvpState(player.getUniqueId(), true);
|
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 {
|
} else {
|
||||||
PluginMessages.sendMessage(sender, "Try /pvp enable <player>");
|
PluginMessages.sendMessage(sender, "Try /pvp enable <player>");
|
||||||
}
|
}
|
||||||
@@ -101,6 +125,13 @@ public class PvpToggleCommand {
|
|||||||
String message = PreventStabby.getPlugin().getConfigCache().getPvp_enabled_other();
|
String message = PreventStabby.getPlugin().getConfigCache().getPvp_enabled_other();
|
||||||
PluginMessages.sendMessage(sender, PluginMessages.parsePlayerName(player, message));
|
PluginMessages.sendMessage(sender, PluginMessages.parsePlayerName(player, message));
|
||||||
PreventStabby.getPlugin().getPlayerManager().setPlayerPvpState(player.getUniqueId(), true);
|
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 {
|
} else {
|
||||||
if (PreventStabbyPermission.COMMAND_TOGGLE_OTHERS.doesCommandSenderHave(sender)) {
|
if (PreventStabbyPermission.COMMAND_TOGGLE_OTHERS.doesCommandSenderHave(sender)) {
|
||||||
PluginMessages.sendMessage(sender, "Try /pvp enable <player>");
|
PluginMessages.sendMessage(sender, "Try /pvp enable <player>");
|
||||||
@@ -123,7 +154,13 @@ public class PvpToggleCommand {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
PreventStabby.getPlugin().getPlayerManager().setPlayerPvpState(player.getUniqueId(), false);
|
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 {
|
} else {
|
||||||
PluginMessages.sendMessage(sender, "Try /pvp disable <player>");
|
PluginMessages.sendMessage(sender, "Try /pvp disable <player>");
|
||||||
}
|
}
|
||||||
@@ -146,7 +183,14 @@ public class PvpToggleCommand {
|
|||||||
}
|
}
|
||||||
String message = PreventStabby.getPlugin().getConfigCache().getPvp_disabled_other();
|
String message = PreventStabby.getPlugin().getConfigCache().getPvp_disabled_other();
|
||||||
PluginMessages.sendMessage(sender, PluginMessages.parsePlayerName(player, message));
|
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 {
|
} else {
|
||||||
if (PreventStabbyPermission.COMMAND_TOGGLE_OTHERS.doesCommandSenderHave(sender)) {
|
if (PreventStabbyPermission.COMMAND_TOGGLE_OTHERS.doesCommandSenderHave(sender)) {
|
||||||
|
|||||||
Reference in New Issue
Block a user