Skip to content
This repository has been archived by the owner on Jul 27, 2019. It is now read-only.

Commit

Permalink
Code merge from PurpleIRC-spigot
Browse files Browse the repository at this point in the history
  • Loading branch information
cnaude committed Feb 14, 2017
1 parent 211f5b8 commit 09f43fc
Show file tree
Hide file tree
Showing 15 changed files with 300 additions and 72 deletions.
10 changes: 10 additions & 0 deletions src/main/java/com/cnaude/purpleirc/Events/VentureChatEvent.java
Expand Up @@ -33,6 +33,7 @@ public class VentureChatEvent extends Event {
private final AsyncPlayerChatEvent event;
private final PurpleBot bot;
private final String ircChannel;
private final String format;

/**
*
Expand All @@ -44,6 +45,7 @@ public VentureChatEvent(AsyncPlayerChatEvent event, PurpleBot bot, String ircCha
this.event = event;
this.bot = bot;
this.ircChannel = ircChannel;
this.format = event.getFormat();
}

/**
Expand Down Expand Up @@ -94,4 +96,12 @@ public HandlerList getHandlers() {
public static HandlerList getHandlerList() {
return HANDLERS;
}

/**
*
* @return
*/
public String getFormat() {
return format;
}
}
@@ -0,0 +1,54 @@
/*
* Copyright (C) 2014 cnaude
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.cnaude.purpleirc.GameListeners;

import com.cnaude.purpleirc.PurpleBot;
import com.cnaude.purpleirc.PurpleIRC;
import com.cnaude.purpleirc.TemplateName;
import net.memmove.bukkit.deathmsg.DeathMessagePreparedEvent;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;

/**
*
* @author Chris Naude
*/
public class DeathMessagesPrimeListener implements Listener {

private final PurpleIRC plugin;

/**
*
* @param plugin the PurpleIRC plugin
*/
public DeathMessagesPrimeListener(PurpleIRC plugin) {
this.plugin = plugin;
}

/**
*
* @param event
*/
@EventHandler
public void onDeathMessageEvent(DeathMessagePreparedEvent event) {
String message = event.getMessage().duplicate().toLegacyText();
plugin.logDebug("onDeathMessageBroadcastEvent caught: " + message);
for (PurpleBot ircBot : plugin.ircBots.values()) {
ircBot.gameDeath(event.getPlayer(), message, TemplateName.DEATH_MESSAGES);
}
}
}
Expand Up @@ -18,10 +18,13 @@

import com.cnaude.purpleirc.PurpleBot;
import com.cnaude.purpleirc.PurpleIRC;
import com.scarsz.discordsrv.DiscordSRV;
import com.scarsz.discordsrv.api.DiscordSRVListener;
import com.scarsz.discordsrv.api.events.ProcessChatEvent;
import com.scarsz.discordsrv.jda.events.message.MessageReceivedEvent;
import org.bukkit.event.EventHandler;
import com.scarsz.discordsrv.jda.entities.TextChannel;
import com.scarsz.discordsrv.jda.events.Event;
import com.scarsz.discordsrv.jda.events.message.guild.GuildMessageReceivedEvent;
import java.util.HashMap;
import java.util.Map;

/**
*
Expand All @@ -39,32 +42,18 @@ public DiscordListener(PurpleIRC plugin) {
this.plugin = plugin;
}

/**
*
* @param event
*/
@EventHandler
public void onProcessChatEvent(ProcessChatEvent event) {

}

@Override
public void onDiscordMessageReceived(MessageReceivedEvent event) {
plugin.logDebug("onDiscordMessageReceived: " + event.getMessage().getContent());
for (PurpleBot ircBot : plugin.ircBots.values()) {
ircBot.discordChat(event.getMessage().getAuthor().getUsername(),
event.getMessage().getChannelId(),
event.getMessage().getContent());
public void onRawDiscordEventReceived(Event event) {
if (event instanceof GuildMessageReceivedEvent) {

GuildMessageReceivedEvent guildMessageEvent = (GuildMessageReceivedEvent) event;
for (PurpleBot ircBot : plugin.ircBots.values()) {
ircBot.discordChat(guildMessageEvent.getMessage().getAuthor().getUsername(),
guildMessageEvent.getChannel().getName(),
guildMessageEvent.getMessage().getContent());
}
}
}

/*
@Override
public void onProcessChat(ProcessChatEvent event) {
plugin.logDebug("onProcessChat: " + event.message);
for (PurpleBot ircBot : plugin.ircBots.values()) {
ircBot.discordChat(event.sender, event.channel, event.message);
}
}
*/

}
Expand Up @@ -48,6 +48,12 @@ public GamePlayerChatListener(PurpleIRC plugin) {
*/
@EventHandler(priority = EventPriority.HIGHEST)
public void onAsyncPlayerChat(AsyncPlayerChatEvent event) {
if (plugin.essentialsChatHook != null) {
if (plugin.essentialsChatHook.isMuted(event.getPlayer())) {
plugin.logDebug("Ignore chat message due to Essentials mute: " + event.getMessage());
return;
}
}
String message = event.getMessage();
plugin.logDebug("ChatFormat [" + event.isCancelled() + "]: " + event.getFormat());
if (message.startsWith(PurpleIRC.TOWNYTAG)) {
Expand Down
Expand Up @@ -45,13 +45,19 @@ public GamePlayerKickListener(PurpleIRC plugin) {
*/
@EventHandler(priority = EventPriority.LOWEST)
public void onPlayerKickEvent(PlayerKickEvent event) {
plugin.logDebug("KICK: " + event.getPlayer().getName());
if (!plugin.kickedPlayers.contains(event.getPlayer().getName())) {
plugin.kickedPlayers.add(event.getPlayer().getName());
plugin.logDebug("KICK: " + event.getPlayer().getName());
if (plugin.kickedPlayers.contains(event.getPlayer().getName())) {
plugin.logDebug("Player "
+ event.getPlayer().getName()
+ " is in the recently kicked list. Not sending kick message.");
return;
}
for (PurpleBot ircBot : plugin.ircBots.values()) {
ircBot.gameKick(event.getPlayer(), event.getLeaveMessage(), event.getReason());
}
if (!plugin.kickedPlayers.contains(event.getPlayer().getName())) {
plugin.kickedPlayers.add(event.getPlayer().getName());
}
}

}
Expand Up @@ -16,9 +16,12 @@
*/
package com.cnaude.purpleirc.GameListeners;

import be.bendem.orebroadcast.OreBroadcastEvent;
import be.smexhy.spigot.orebroadcast.OreBroadcast;
import be.smexhy.spigot.orebroadcast.OreBroadcastEvent;
import com.cnaude.purpleirc.PurpleBot;
import com.cnaude.purpleirc.PurpleIRC;
import org.bukkit.ChatColor;
import org.bukkit.Material;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;

Expand All @@ -29,24 +32,42 @@
public class OreBroadcastListener implements Listener {

private final PurpleIRC plugin;
public final OreBroadcast ob;

/**
*
* @param plugin the PurpleIRC plugin
*/
public OreBroadcastListener(PurpleIRC plugin) {
this.plugin = plugin;
this.ob = (OreBroadcast) plugin.getServer().getPluginManager().getPlugin("OreBroadcast");
}

/**
*
* @param event
* @param e
*/
@EventHandler
public void onOreBroadcastEvent(OreBroadcastEvent event) {
public void onOreBroadcastEvent(OreBroadcastEvent e) {

String blockName;
if (e.getBlockMined().getType().equals(Material.GLOWING_REDSTONE_ORE)) {
blockName = "redstone";
} else {
blockName = e.getBlockMined().getType().name().toLowerCase().replace("_ore", "");
}
String color = ob.getConfig().getString("colors." + blockName, "white").toUpperCase();
ChatColor oreColor = ChatColor.valueOf(color);
String oreName = ChatColor.translateAlternateColorCodes('&', translateOre(blockName, color));

plugin.logDebug("onOreBroadcastEvent caught");
for (PurpleBot ircBot : plugin.ircBots.values()) {
ircBot.gameOreBroadcast(event.getPlayer(), event.getMessage());
ircBot.gameOreBroadcast(e.getSource(), blockName, oreName, oreColor, e.getVein(), e.getBlockMined().getLocation());
}
}

private String translateOre(String ore, String color) {
return "&" + ChatColor.valueOf(color).getChar() + ob.getConfig().getString(new StringBuilder("ore-translations.").append(ore).toString(), ore);
}

}
Expand Up @@ -20,6 +20,8 @@
import com.cnaude.purpleirc.PurpleBot;
import com.cnaude.purpleirc.PurpleIRC;
import com.cnaude.purpleirc.TemplateName;
import java.util.Set;
import mineverse.Aust1n46.chat.MineverseChat;
import mineverse.Aust1n46.chat.api.MineverseChatAPI;
import mineverse.Aust1n46.chat.api.MineverseChatPlayer;
import mineverse.Aust1n46.chat.channel.ChatChannel;
Expand All @@ -35,13 +37,15 @@
public class VentureChatListener implements Listener {

final PurpleIRC plugin;
final MineverseChat vcPlugin;

/**
*
* @param plugin the PurpleIRC plugin
*/
public VentureChatListener(PurpleIRC plugin) {
this.plugin = plugin;
this.vcPlugin = (MineverseChat)plugin.getServer().getPluginManager().getPlugin("VentureChat");
}

/**
Expand All @@ -51,21 +55,23 @@ public VentureChatListener(PurpleIRC plugin) {
@EventHandler(ignoreCancelled = true, priority = EventPriority.NORMAL)
public void onVentureChatEvent(VentureChatEvent event) {
plugin.logDebug("Entering onVentureChatEvent: " + event.getMessage());
ventureChat(event.getPlayer(), event.getMessage(), event.getBot(), event.getIrcChannel());
ventureChat(event.getPlayer(), event.getMessage(), event.getFormat(), event.getBot(), event.getIrcChannel());
}

/**
* VentureChat from game to IRC
*
* @param player the player
* @param message the message
* @param format
* @param bot the calling bot
* @param channelName destination IRC channel
*/
public void ventureChat(Player player, String message, PurpleBot bot, String channelName) {
public void ventureChat(Player player, String message, String format, PurpleBot bot, String channelName) {
MineverseChatPlayer mcp = MineverseChatAPI.getMineverseChatPlayer(player);
ChatChannel eventChannel = mcp.getCurrentChannel();
if (mcp.isQuickChat()) { //for single message chat detection
Set<String>vcChannels = vcPlugin.getConfig().getConfigurationSection("channels").getKeys(false);
if (mcp.isQuickChat()) { //for single message chat detection (not alias commands)
eventChannel = mcp.getQuickChannel();
}
if (!bot.isConnected()) {
Expand All @@ -80,7 +86,12 @@ public void ventureChat(Player player, String message, PurpleBot bot, String cha
if (!bot.isPlayerInValidWorld(player, channelName)) {
return;
}
plugin.logDebug("VC Channel: " + vcChannel);
for (String vcc : vcChannels) {
if (format.contains(vcc)) {
vcChannel = vcc;
}
}
plugin.logDebug("VC [format: " + format + "] [channel " + vcChannel + "]");
String channelTemplateName = "venture-" + vcChannel + "-chat";
if (bot.isMessageEnabled(channelName, channelTemplateName)
|| bot.isMessageEnabled(channelName, TemplateName.VENTURE_CHAT)) {
Expand Down
8 changes: 6 additions & 2 deletions src/main/java/com/cnaude/purpleirc/Hooks/DiscordSRVHook.java
Expand Up @@ -48,11 +48,15 @@ public void removeListener() {

public void sendMessage(String channelName, String message) {
TextChannel textChannel = DiscordSRV.getTextChannelFromChannelName(channelName);
TextChannel chatChannel = DiscordSRV.chatChannel;
plugin.logDebug("DiscordSRVHook: Message to be sent: " + message);
if (textChannel != null) {
plugin.logDebug("DiscordSRVHook[" + channelName + "]: " + message);
plugin.logDebug("DiscordSRVHook: Sending mssage to channel " + channelName);
textChannel.sendMessage(message);
} else {
plugin.logDebug("DiscordSRVHook: " + message);
plugin.logDebug("DiscordSRVHook: Unable to find channel: " + channelName);
plugin.logDebug("DiscordSRVHook: Channel list: " + DiscordSRV.channels.keySet());
plugin.logDebug("DiscordSRVHook: Sending message to ChatChannel instead: " + chatChannel.getName());
DiscordSRV.sendMessageToChatChannel(message);
}

Expand Down
52 changes: 52 additions & 0 deletions src/main/java/com/cnaude/purpleirc/Hooks/EssentialsHook.java
@@ -0,0 +1,52 @@
/*
* Copyright (C) 2017 cnaude
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.cnaude.purpleirc.Hooks;

import com.cnaude.purpleirc.PurpleIRC;
import com.earth2me.essentials.Essentials;
import com.earth2me.essentials.User;
import org.bukkit.entity.Player;

/**
*
* @author cnaude
*/
public class EssentialsHook {

private final PurpleIRC plugin;
private final Essentials essentials;

/**
*
* @param plugin the PurpleIRC plugin
*/
public EssentialsHook(PurpleIRC plugin) {
this.plugin = plugin;
this.essentials = (Essentials) plugin.getServer().getPluginManager().getPlugin(plugin.PL_ESSENTIALS);
}

public boolean isMuted(Player player) {
if (essentials != null) {
User user = essentials.getUser(player);
if (user != null) {
return user.isMuted();
}
}
return false;
}

}

0 comments on commit 09f43fc

Please sign in to comment.