Skip to content

Commit

Permalink
Attempt to fix aban notify
Browse files Browse the repository at this point in the history
  • Loading branch information
BoomEaro committed Mar 25, 2024
1 parent f597688 commit 7a53c39
Show file tree
Hide file tree
Showing 13 changed files with 207 additions and 24 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -128,13 +128,21 @@ public CommonEvent callEvent(String name, Object... args) {
case "PlayerBanEvent":
event = new PlayerBanEvent((PlayerBanData) args[0], (boolean) args[1]);
break;
case "PlayerABanEvent":
event = new PlayerABanEvent((PlayerBanData) args[0], (boolean) args[1]);
break;
case "PlayerBannedEvent":
event = new PlayerBannedEvent((PlayerBanData) args[0], (boolean) args[1]);
break;
case "PlayerABannedEvent":
event = new PlayerABannedEvent((PlayerBanData) args[0], (boolean) args[1]);
break;
case "PlayerUnbanEvent":
event = new PlayerUnbanEvent((PlayerBanData) args[0], (PlayerData) args[1], (String) args[2]);
break;

case "PlayerAUnbanEvent":
event = new PlayerAUnbanEvent((PlayerBanData) args[0], (PlayerData) args[1], (String) args[2]);
break;
case "IpBanEvent":
event = new IpBanEvent((IpBanData) args[0], (boolean) args[1]);
break;
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
package me.confuser.banmanager.bukkit.api.events;

import lombok.Getter;
import me.confuser.banmanager.common.data.PlayerBanData;


public class PlayerABanEvent extends SilentCancellableEvent {

@Getter
private PlayerBanData ban;

public PlayerABanEvent(PlayerBanData ban, boolean isSilent) {
super(isSilent, true);
this.ban = ban;
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
package me.confuser.banmanager.bukkit.api.events;

import lombok.Getter;
import me.confuser.banmanager.common.data.PlayerBanData;


public class PlayerABannedEvent extends SilentEvent {

@Getter
private PlayerBanData ban;

public PlayerABannedEvent(PlayerBanData ban, boolean isSilent) {
super(isSilent, true);
this.ban = ban;
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
package me.confuser.banmanager.bukkit.api.events;

import lombok.Getter;
import me.confuser.banmanager.common.data.PlayerBanData;
import me.confuser.banmanager.common.data.PlayerData;


public class PlayerAUnbanEvent extends CustomCancellableEvent {

@Getter
private PlayerBanData ban;
@Getter
private PlayerData actor;
@Getter
private String reason;

public PlayerAUnbanEvent(PlayerBanData ban, PlayerData actor, String reason) {
super(true);

this.ban = ban;
this.actor = actor;
this.reason = reason;
}

}
Original file line number Diff line number Diff line change
@@ -1,24 +1,12 @@
package me.confuser.banmanager.bukkit.listeners;


import me.confuser.banmanager.bukkit.api.events.IpBannedEvent;
import me.confuser.banmanager.bukkit.api.events.IpRangeBannedEvent;
import me.confuser.banmanager.bukkit.api.events.NameBannedEvent;
import me.confuser.banmanager.bukkit.api.events.PlayerBannedEvent;
import me.confuser.banmanager.bukkit.api.events.*;
import me.confuser.banmanager.common.BanManagerPlugin;
import me.confuser.banmanager.common.CommonPlayer;
import me.confuser.banmanager.common.commands.CommonSender;
import me.confuser.banmanager.common.data.*;
import me.confuser.banmanager.common.listeners.CommonBanListener;
import me.confuser.banmanager.common.util.DateUtils;
import me.confuser.banmanager.common.util.IPUtils;
import me.confuser.banmanager.common.util.Message;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;

import java.util.List;

public class BanListener implements Listener {

private final CommonBanListener listener;
Expand All @@ -32,6 +20,11 @@ public void notifyOnBan(PlayerBannedEvent event) {
listener.notifyOnBan(event.getBan(), event.isSilent());
}

@EventHandler(priority = EventPriority.MONITOR)
public void notifyOnABan(PlayerABannedEvent event) {
listener.notifyOnABan(event.getBan(), event.isSilent());
}

@EventHandler(priority = EventPriority.MONITOR)
public void notifyOnIpBan(IpBannedEvent event) {
listener.notifyOnBan(event.getBan(), event.isSilent());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,11 +24,24 @@ public void onBan(final PlayerBannedEvent event) {
listener.onBan(event.getBan(), false);
}

@EventHandler(priority = EventPriority.MONITOR)
public void onABan(final PlayerABanEvent event) {
listener.onBan(event.getBan(), true);
}

@EventHandler(priority = EventPriority.MONITOR)
public void onABan(final PlayerABannedEvent event) {
listener.onBan(event.getBan(), false);
}

@EventHandler(priority = EventPriority.MONITOR)
public void onUnban(final PlayerUnbanEvent event) {
listener.onUnban(event.getBan(), event.getActor(), event.getReason());
}

@EventHandler(priority = EventPriority.MONITOR)
public void onAUnban(final PlayerAUnbanEvent event) {
listener.onUnban(event.getBan(), event.getActor(), event.getReason());
}
@EventHandler(priority = EventPriority.MONITOR)
public void onMute(final PlayerMuteEvent event) {
listener.onMute(event.getMute(), true);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -113,13 +113,21 @@ public CommonEvent callEvent(String name, Object... args) {
case "PlayerBanEvent":
event = new PlayerBanEvent((PlayerBanData) args[0], (boolean) args[1]);
break;
case "PlayerABanEvent":
event = new PlayerABanEvent((PlayerBanData) args[0], (boolean) args[1]);
break;
case "PlayerBannedEvent":
event = new PlayerBannedEvent((PlayerBanData) args[0], (boolean) args[1]);
break;
case "PlayerABannedEvent":
event = new PlayerABannedEvent((PlayerBanData) args[0], (boolean) args[1]);
break;
case "PlayerUnbanEvent":
event = new PlayerUnbanEvent((PlayerBanData) args[0], (PlayerData) args[1], (String) args[2]);
break;

case "PlayerAUnbanEvent":
event = new PlayerAUnbanEvent((PlayerBanData) args[0], (PlayerData) args[1], (String) args[2]);
break;
case "IpBanEvent":
event = new IpBanEvent((IpBanData) args[0], (boolean) args[1]);
break;
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
package me.confuser.banmanager.bungee.api.events;

import lombok.Getter;
import me.confuser.banmanager.common.data.PlayerBanData;


public class PlayerABanEvent extends SilentCancellableEvent {

@Getter
private PlayerBanData ban;

public PlayerABanEvent(PlayerBanData ban, boolean isSilent) {
super(isSilent);
this.ban = ban;
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
package me.confuser.banmanager.bungee.api.events;

import lombok.Getter;
import me.confuser.banmanager.common.data.PlayerBanData;


public class PlayerABannedEvent extends SilentEvent {

@Getter
private PlayerBanData ban;

public PlayerABannedEvent(PlayerBanData ban, boolean isSilent) {
super(isSilent);
this.ban = ban;
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
package me.confuser.banmanager.bungee.api.events;

import lombok.Getter;
import me.confuser.banmanager.common.data.PlayerBanData;
import me.confuser.banmanager.common.data.PlayerData;


public class PlayerAUnbanEvent extends CustomCancellableEvent {

@Getter
private PlayerBanData ban;
@Getter
private PlayerData actor;
@Getter
private String reason;

public PlayerAUnbanEvent(PlayerBanData ban, PlayerData actor, String reason) {
super();

this.ban = ban;
this.actor = actor;
this.reason = reason;
}

}
Original file line number Diff line number Diff line change
@@ -1,10 +1,7 @@
package me.confuser.banmanager.bungee.listeners;


import me.confuser.banmanager.bungee.api.events.IpBannedEvent;
import me.confuser.banmanager.bungee.api.events.IpRangeBannedEvent;
import me.confuser.banmanager.bungee.api.events.NameBannedEvent;
import me.confuser.banmanager.bungee.api.events.PlayerBannedEvent;
import me.confuser.banmanager.bungee.api.events.*;
import me.confuser.banmanager.common.BanManagerPlugin;
import me.confuser.banmanager.common.listeners.CommonBanListener;
import net.md_5.bungee.api.plugin.Listener;
Expand All @@ -24,6 +21,11 @@ public void notifyOnBan(PlayerBannedEvent event) {
listener.notifyOnBan(event.getBan(), event.isSilent());
}

@EventHandler(priority = EventPriority.HIGHEST)
public void notifyOnABan(PlayerABannedEvent event) {
listener.notifyOnABan(event.getBan(), event.isSilent());
}

@EventHandler(priority = EventPriority.HIGHEST)
public void notifyOnIpBan(IpBannedEvent event) {
listener.notifyOnBan(event.getBan(), event.isSilent());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,47 @@ public void notifyOnBan(PlayerBanData data, boolean silent) {
}
}

public void notifyOnABan(PlayerBanData data, boolean silent) {
String broadcastPermission;
Message message;

if (data.getExpires() == 0) {
broadcastPermission = "bm.notify.aban";
message = Message.get("aban.notify");
} else {
broadcastPermission = "bm.notify.atempban";
message = Message.get("atempban.notify");
message.set("expires", DateUtils.getDifferenceFormat(data.getExpires()));
}

message
.set("id", data.getId())
.set("player", data.getPlayer().getName())
.set("playerId", data.getPlayer().getUUID().toString())
.set("actor", data.getActor().getName())
.set("reason", data.getReason());

if (!silent) {
plugin.getServer().broadcast(message.toString(), broadcastPermission);
} else if (plugin.getPlayerStorage().getConsole().getUUID().equals(data.getActor().getUUID())) {
plugin.getServer().getConsoleSender().sendMessage(message);
return;
}

// Check if the sender is online and does not have the
// broadcastPermission
CommonPlayer player = plugin.getServer().getPlayer(data.getActor().getUUID());

if (player == null || !player.isOnline()) {
return;
}

if (silent || !player.hasPermission(broadcastPermission)) {
message.sendTo(player);
}
}


public void notifyOnBan(IpBanData data, boolean silent) {
String broadcastPermission;
Message message;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -180,7 +180,7 @@ public PlayerBanData getBan(UUID uuid) {
public void addBan(PlayerBanData ban) {
bans.put(ban.getPlayer().getUUID(), ban);

plugin.getServer().callEvent("PlayerBannedEvent", ban, ban.isSilent() || !plugin.getConfig().isBroadcastOnSync());
plugin.getServer().callEvent("PlayerABannedEvent", ban, ban.isSilent() || !plugin.getConfig().isBroadcastOnSync());
}

public void removeBan(PlayerBanData ban) {
Expand All @@ -202,7 +202,7 @@ public PlayerBanData getBan(String playerName) {
}

public boolean ban(PlayerBanData ban) throws SQLException {
CommonEvent event = plugin.getServer().callEvent("PlayerBanEvent", ban, ban.isSilent());
CommonEvent event = plugin.getServer().callEvent("PlayerABanEvent", ban, ban.isSilent());

if (event.isCancelled()) {
return false;
Expand All @@ -211,7 +211,7 @@ public boolean ban(PlayerBanData ban) throws SQLException {
create(ban);
bans.put(ban.getPlayer().getUUID(), ban);

plugin.getServer().callEvent("PlayerBannedEvent", ban, event.isSilent());
plugin.getServer().callEvent("PlayerABannedEvent", ban, event.isSilent());

return true;
}
Expand All @@ -225,7 +225,7 @@ public boolean unban(PlayerBanData ban, PlayerData actor, String reason) throws
}

public boolean unban(PlayerBanData ban, PlayerData actor, String reason, boolean delete) throws SQLException {
CommonEvent event = plugin.getServer().callEvent("PlayerUnbanEvent", ban, actor, reason);
CommonEvent event = plugin.getServer().callEvent("PlayerAUnbanEvent", ban, actor, reason);

if (event.isCancelled()) {
return false;
Expand Down

0 comments on commit 7a53c39

Please sign in to comment.