Skip to content

Commit

Permalink
🐛 Bug fixes
Browse files Browse the repository at this point in the history
  • Loading branch information
PainOchoco committed Sep 23, 2022
1 parent a650ccb commit 8e99ddd
Show file tree
Hide file tree
Showing 2 changed files with 28 additions and 34 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -56,12 +56,11 @@ public void onMessage(AsyncChatHookEvent event) {
// From Discord to Minecraft
@Override
public void broadcastMessageToChannel(String channelId, Component message) {
System.out.println("aaaaa");

// get the destination channel
Channel destinationChannel = null;

for (Channel channel : channelManager.getChannels().values()) {
System.out.println(channel.getId());
if (channel.getId().equals(channelId)) {
destinationChannel = channel;
break;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,10 +11,12 @@
import com.palmergames.bukkit.towny.object.Resident;
import com.palmergames.bukkit.towny.object.Town;

import org.bukkit.entity.Player;
import org.bukkit.Bukkit;
import org.bukkit.OfflinePlayer;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
import org.jetbrains.annotations.Nullable;

import net.laboulangerie.townychat.TownyChat;
import net.laboulangerie.townychat.channels.Channel;
Expand All @@ -34,13 +36,11 @@ public TownyListener() {

@EventHandler(priority = EventPriority.MONITOR)
public void onTownRemoveResident(TownRemoveResidentEvent event) {
Player player = event.getResident().getPlayer();
ChatPlayer chatPlayer = residentToChatPlayer(event.getResident());

if (!player.isOnline())
if (chatPlayer == null)
return;

ChatPlayer chatPlayer = chatPlayerManager.getChatPlayer(player);

Channel currentChannel = chatPlayer.getCurrentChannel();

if (currentChannel.getType() == ChannelTypes.TOWN) {
Expand All @@ -55,14 +55,11 @@ public void onTownLeaveNation(NationPreTownLeaveEvent event) {
Town town = event.getTown();

for (Resident resident : town.getResidents()) {
ChatPlayer chatPlayer = residentToChatPlayer(resident);

Player player = resident.getPlayer();

if (!player.isOnline())
if (chatPlayer == null)
return;

ChatPlayer chatPlayer = chatPlayerManager.getChatPlayer(player);

Channel currentChannel = chatPlayer.getCurrentChannel();

if (currentChannel.getType() == ChannelTypes.NATION) {
Expand All @@ -78,14 +75,11 @@ public void onTownDelete(PreDeleteTownEvent event) {
Town town = event.getTown();

for (Resident resident : town.getResidents()) {
ChatPlayer chatPlayer = residentToChatPlayer(resident);

Player player = resident.getPlayer();

if (!player.isOnline())
if (chatPlayer == null)
return;

ChatPlayer chatPlayer = chatPlayerManager.getChatPlayer(player);

Channel currentChannel = chatPlayer.getCurrentChannel();

if (currentChannel.getType() == ChannelTypes.TOWN) {
Expand All @@ -104,13 +98,11 @@ public void onNationDelete(PreDeleteNationEvent event) {

for (Resident resident : nation.getResidents()) {

Player player = resident.getPlayer();
ChatPlayer chatPlayer = residentToChatPlayer(resident);

if (!player.isOnline())
if (chatPlayer == null)
return;

ChatPlayer chatPlayer = chatPlayerManager.getChatPlayer(player);

Channel currentChannel = chatPlayer.getCurrentChannel();

if (currentChannel.getType() == ChannelTypes.NATION) {
Expand All @@ -130,14 +122,11 @@ public void onNewTown(NewTownEvent event) {
channelManager.addChannel(town, newTownChannel);

// The mayor is the only player in the town on town creation
Player player = town.getMayor().getPlayer();
ChatPlayer chatPlayer = residentToChatPlayer(town.getMayor());

// Should be online but just in case (admin commands)
if (!player.isOnline())
if (chatPlayer == null)
return;

ChatPlayer chatPlayer = chatPlayerManager.getChatPlayer(player);

chatPlayer.addChannel(ChannelTypes.TOWN, newTownChannel);
}

Expand All @@ -149,25 +138,22 @@ public void onNewNation(NewNationEvent event) {
channelManager.addChannel(nation, newNationChannel);

for (Resident resident : nation.getResidents()) {
Player player = resident.getPlayer();
ChatPlayer chatPlayer = residentToChatPlayer(resident);

if (!player.isOnline())
if (chatPlayer == null)
return;

ChatPlayer chatPlayer = chatPlayerManager.getChatPlayer(player);

chatPlayer.addChannel(ChannelTypes.NATION, newNationChannel);
}
}

@EventHandler(priority = EventPriority.MONITOR)
public void onTownAddResident(TownAddResidentEvent event) {
Player player = event.getResident().getPlayer();

if (!player.isOnline())
return;
ChatPlayer chatPlayer = residentToChatPlayer(event.getResident());

ChatPlayer chatPlayer = chatPlayerManager.getChatPlayer(player);
if (chatPlayer == null)
return;

Town town = event.getTown();
Channel townChannel = channelManager.getChannel(town);
Expand All @@ -181,4 +167,13 @@ public void onTownAddResident(TownAddResidentEvent event) {

}
}

private @Nullable ChatPlayer residentToChatPlayer(Resident resident) {
OfflinePlayer offlinePlayer = Bukkit.getOfflinePlayer(resident.getUUID());

if (!offlinePlayer.isOnline())
return null;

return chatPlayerManager.getChatPlayer(offlinePlayer.getPlayer());
}
}

0 comments on commit 8e99ddd

Please sign in to comment.