Skip to content

Commit

Permalink
Added more events to players when they change bypass mode, team chat …
Browse files Browse the repository at this point in the history
…and change their names
  • Loading branch information
OmerBenGera committed Aug 5, 2022
1 parent c255a2e commit acd17d7
Show file tree
Hide file tree
Showing 7 changed files with 196 additions and 2 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
package com.bgsoftware.superiorskyblock.api.events;

import com.bgsoftware.superiorskyblock.api.wrappers.SuperiorPlayer;
import org.bukkit.Bukkit;
import org.bukkit.event.Event;
import org.bukkit.event.HandlerList;

/**
* PlayerChangeNameEvent is called when a player has his name changed.
*/
public class PlayerChangeNameEvent extends Event {

private static final HandlerList handlers = new HandlerList();

private final SuperiorPlayer superiorPlayer;
private final String newName;

/**
* The constructor of the event.
*
* @param superiorPlayer The player that had his name changed.
* @param newName The new name of the player.
*/
public PlayerChangeNameEvent(SuperiorPlayer superiorPlayer, String newName) {
super(!Bukkit.isPrimaryThread());
this.superiorPlayer = superiorPlayer;
this.newName = newName;
}

/**
* Get the player that had his name changed.
*/
public SuperiorPlayer getPlayer() {
return superiorPlayer;
}

/**
* Get the new name of the player.
*/
public String getNewName() {
return newName;
}

@Override
public HandlerList getHandlers() {
return handlers;
}

public static HandlerList getHandlerList() {
return handlers;
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
package com.bgsoftware.superiorskyblock.api.events;

import com.bgsoftware.superiorskyblock.api.wrappers.SuperiorPlayer;
import org.bukkit.Bukkit;
import org.bukkit.event.Cancellable;
import org.bukkit.event.Event;
import org.bukkit.event.HandlerList;

/**
* PlayerToggleBypassEvent is called when a player toggles his bypass mode.
*/
public class PlayerToggleBypassEvent extends Event implements Cancellable {

private static final HandlerList handlers = new HandlerList();

private final SuperiorPlayer superiorPlayer;

private boolean cancelled = false;

/**
* The constructor of the event.
*
* @param superiorPlayer The player that toggled the bypass mode.
*/
public PlayerToggleBypassEvent(SuperiorPlayer superiorPlayer) {
super(!Bukkit.isPrimaryThread());
this.superiorPlayer = superiorPlayer;
}

/**
* Get the player that toggled the bypass mode.
*/
public SuperiorPlayer getPlayer() {
return superiorPlayer;
}

@Override
public boolean isCancelled() {
return cancelled;
}

@Override
public void setCancelled(boolean cancelled) {
this.cancelled = cancelled;
}

@Override
public HandlerList getHandlers() {
return handlers;
}

public static HandlerList getHandlerList() {
return handlers;
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
package com.bgsoftware.superiorskyblock.api.events;

import com.bgsoftware.superiorskyblock.api.wrappers.SuperiorPlayer;
import org.bukkit.Bukkit;
import org.bukkit.event.Cancellable;
import org.bukkit.event.Event;
import org.bukkit.event.HandlerList;

/**
* PlayerToggleTeamChatEvent is called when a player toggles his team chat.
*/
public class PlayerToggleTeamChatEvent extends Event implements Cancellable {

private static final HandlerList handlers = new HandlerList();

private final SuperiorPlayer superiorPlayer;

private boolean cancelled = false;

/**
* The constructor of the event.
*
* @param superiorPlayer The player that toggled the team chat.
*/
public PlayerToggleTeamChatEvent(SuperiorPlayer superiorPlayer) {
super(!Bukkit.isPrimaryThread());
this.superiorPlayer = superiorPlayer;
}

/**
* Get the player that toggled the team chat.
*/
public SuperiorPlayer getPlayer() {
return superiorPlayer;
}

@Override
public boolean isCancelled() {
return cancelled;
}

@Override
public void setCancelled(boolean cancelled) {
this.cancelled = cancelled;
}

@Override
public HandlerList getHandlers() {
return handlers;
}

public static HandlerList getHandlerList() {
return handlers;
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@

import com.bgsoftware.superiorskyblock.SuperiorSkyblockPlugin;
import com.bgsoftware.superiorskyblock.api.wrappers.SuperiorPlayer;
import com.bgsoftware.superiorskyblock.core.messages.Message;
import com.bgsoftware.superiorskyblock.commands.ISuperiorCommand;
import com.bgsoftware.superiorskyblock.core.messages.Message;
import org.bukkit.command.CommandSender;

import java.util.Collections;
Expand Down Expand Up @@ -50,6 +50,9 @@ public boolean canBeExecutedByConsole() {
public void execute(SuperiorSkyblockPlugin plugin, CommandSender sender, String[] args) {
SuperiorPlayer superiorPlayer = plugin.getPlayers().getSuperiorPlayer(sender);

if (!plugin.getEventsBus().callPlayerToggleBypassEvent(superiorPlayer))
return;

if (superiorPlayer.hasBypassModeEnabled()) {
Message.TOGGLED_BYPASS_OFF.send(superiorPlayer);
} else {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -65,11 +65,15 @@ public void execute(SuperiorSkyblockPlugin plugin, CommandSender sender, String[
SuperiorPlayer superiorPlayer = arguments.getSuperiorPlayer();

if (args.length == 1) {
if (!plugin.getEventsBus().callPlayerToggleTeamChatEvent(superiorPlayer))
return;

if (superiorPlayer.hasTeamChatEnabled()) {
Message.TOGGLED_TEAM_CHAT_OFF.send(superiorPlayer);
} else {
Message.TOGGLED_TEAM_CHAT_ON.send(superiorPlayer);
}

superiorPlayer.toggleTeamChat();
} else {
String message = CommandArguments.buildLongString(args, 1, superiorPlayer.hasPermissionWithoutOP("superior.chat.color"));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -88,13 +88,17 @@
import com.bgsoftware.superiorskyblock.api.events.MissionResetEvent;
import com.bgsoftware.superiorskyblock.api.events.PlayerChangeBorderColorEvent;
import com.bgsoftware.superiorskyblock.api.events.PlayerChangeLanguageEvent;
import com.bgsoftware.superiorskyblock.api.events.PlayerChangeNameEvent;
import com.bgsoftware.superiorskyblock.api.events.PlayerChangeRoleEvent;
import com.bgsoftware.superiorskyblock.api.events.PlayerCloseMenuEvent;
import com.bgsoftware.superiorskyblock.api.events.PlayerOpenMenuEvent;
import com.bgsoftware.superiorskyblock.api.events.PlayerReplaceEvent;
import com.bgsoftware.superiorskyblock.api.events.PlayerToggleBlocksStackerEvent;
import com.bgsoftware.superiorskyblock.api.events.PlayerToggleBorderEvent;
import com.bgsoftware.superiorskyblock.api.events.PlayerToggleBypassEvent;
import com.bgsoftware.superiorskyblock.api.events.PlayerToggleFlyEvent;
import com.bgsoftware.superiorskyblock.api.events.PlayerTogglePanelEvent;
import com.bgsoftware.superiorskyblock.api.events.PlayerToggleTeamChatEvent;
import com.bgsoftware.superiorskyblock.api.events.PluginInitializeEvent;
import com.bgsoftware.superiorskyblock.api.events.PluginInitializedEvent;
import com.bgsoftware.superiorskyblock.api.events.PreIslandCreateEvent;
Expand Down Expand Up @@ -654,6 +658,12 @@ public boolean callPlayerChangeLanguageEvent(SuperiorPlayer superiorPlayer, Loca
return callEvent(() -> new PlayerChangeLanguageEvent(superiorPlayer, language), "playerchangelanguageevent");
}

public void callPlayerChangeNameEvent(SuperiorPlayer superiorPlayer, String newName) {
if (!plugin.getSettings().getDisabledEvents().contains("playerchangenameevent")) {
callEvent(new PlayerChangeNameEvent(superiorPlayer, newName));
}
}

public boolean callPlayerChangeRoleEvent(SuperiorPlayer superiorPlayer, PlayerRole newPlayer) {
return callEvent(() -> new PlayerChangeRoleEvent(superiorPlayer, newPlayer), "playerchangeroleevent");
}
Expand Down Expand Up @@ -682,8 +692,12 @@ public boolean callPlayerToggleBorderEvent(SuperiorPlayer superiorPlayer) {
return callEvent(() -> new PlayerToggleBorderEvent(superiorPlayer), "playertoggleborderevent");
}

public boolean callPlayerToggleBypassEvent(SuperiorPlayer superiorPlayer) {
return callEvent(() -> new PlayerToggleBypassEvent(superiorPlayer), "playertogglebypassevent");
}

public boolean callPlayerToggleFlyEvent(SuperiorPlayer superiorPlayer) {
return callEvent(() -> new PlayerToggleBorderEvent(superiorPlayer), "playertoggleflyevent");
return callEvent(() -> new PlayerToggleFlyEvent(superiorPlayer), "playertoggleflyevent");
}

public boolean callPlayerTogglePanelEvent(SuperiorPlayer superiorPlayer) {
Expand All @@ -694,6 +708,10 @@ public boolean callPlayerToggleSpyEvent(SuperiorPlayer superiorPlayer) {
return callEvent(() -> new PlayerTogglePanelEvent(superiorPlayer), "playertogglespyevent");
}

public boolean callPlayerToggleTeamChatEvent(SuperiorPlayer superiorPlayer) {
return callEvent(() -> new PlayerToggleTeamChatEvent(superiorPlayer), "playertoggleteamchatevent");
}

public void callPluginInitializedEvent(SuperiorSkyblock plugin) {
callEvent(new PluginInitializedEvent(plugin));
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -98,6 +98,7 @@ private void onPlayerJoin(PlayerJoinEvent e) {

// Updating the name of the player.
if (!superiorPlayer.getName().equals(e.getPlayer().getName())) {
plugin.getEventsBus().callPlayerChangeNameEvent(superiorPlayer, e.getPlayer().getName());
superiorPlayer.updateName();
}

Expand Down Expand Up @@ -573,6 +574,9 @@ private void onPlayerAsyncChat(AsyncPlayerChatEvent e) {

if (superiorPlayer.hasTeamChatEnabled()) {
if (island == null) {
if (!plugin.getEventsBus().callPlayerToggleTeamChatEvent(superiorPlayer))
return;

superiorPlayer.toggleTeamChat();
return;
}
Expand Down

0 comments on commit acd17d7

Please sign in to comment.