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

Commit

Permalink
Add game-achievement notification
Browse files Browse the repository at this point in the history
  • Loading branch information
cnaude committed Mar 2, 2014
1 parent ca402dd commit d47a287
Show file tree
Hide file tree
Showing 5 changed files with 71 additions and 1 deletion.
@@ -0,0 +1,43 @@
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package com.cnaude.purpleirc.GameListeners;

import com.cnaude.purpleirc.PurpleBot;
import com.cnaude.purpleirc.PurpleIRC;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerAchievementAwardedEvent;

/**
*
* @author cnaude
*/
public class GamePlayerPlayerAchievementAwardedListener implements Listener {

private final PurpleIRC plugin;

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

/**
*
* @param event
*/
@EventHandler(priority = EventPriority.LOWEST)
public void onPlayerAchievementAwardedEvent(PlayerAchievementAwardedEvent event) {
plugin.logDebug("ACHIEVEMENT: " + event.getPlayer().getName() + " => " + event.getAchievement());
for (PurpleBot ircBot : plugin.ircBots.values()) {
if (ircBot.isConnected()) {
ircBot.gameAchievement(event.getPlayer(), event.getAchievement());
}
}
}
}
23 changes: 23 additions & 0 deletions src/main/java/com/cnaude/purpleirc/PurpleBot.java
Expand Up @@ -34,6 +34,7 @@
import com.titankingdoms.dev.titanchat.core.participant.Participant;
import java.io.IOException;
import java.nio.charset.Charset;
import org.bukkit.Achievement;
import org.bukkit.ChatColor;
import org.bukkit.command.CommandSender;
import org.bukkit.configuration.InvalidConfigurationException;
Expand Down Expand Up @@ -1193,6 +1194,28 @@ public void gameQuit(Player player, String message) {
}
}
}

/**
*
* @param player
* @param achievement
*/
public void gameAchievement(Player player, Achievement achievement) {
String message = achievement.toString();
if (!bot.isConnected()) {
return;
}
for (String channelName : botChannels) {
if (enabledMessages.get(channelName).contains(TemplateName.GAME_ACHIEVEMENT)) {
if (!isPlayerInValidWorld(player, channelName)) {
return;
}
asyncIRCMessage(channelName, plugin.tokenizer
.gameChatToIRCTokenizer(player, plugin.getMsgTemplate(
botNick, TemplateName.GAME_ACHIEVEMENT), message));
}
}
}

/**
*
Expand Down
2 changes: 2 additions & 0 deletions src/main/java/com/cnaude/purpleirc/PurpleIRC.java
Expand Up @@ -8,6 +8,7 @@
import com.cnaude.purpleirc.GameListeners.GamePlayerDeathListener;
import com.cnaude.purpleirc.GameListeners.GamePlayerJoinListener;
import com.cnaude.purpleirc.GameListeners.GamePlayerKickListener;
import com.cnaude.purpleirc.GameListeners.GamePlayerPlayerAchievementAwardedListener;
import com.cnaude.purpleirc.GameListeners.GamePlayerQuitListener;
import com.cnaude.purpleirc.GameListeners.GameServerCommandListener;
import com.cnaude.purpleirc.GameListeners.HeroChatListener;
Expand Down Expand Up @@ -162,6 +163,7 @@ public void onEnable() {
logError(ex.getMessage());
}
}
getServer().getPluginManager().registerEvents(new GamePlayerPlayerAchievementAwardedListener(this), this);
getServer().getPluginManager().registerEvents(new GamePlayerChatListener(this), this);
getServer().getPluginManager().registerEvents(new GamePlayerCommandPreprocessingListener(this), this);
getServer().getPluginManager().registerEvents(new GamePlayerDeathListener(this), this);
Expand Down
1 change: 1 addition & 0 deletions src/main/java/com/cnaude/purpleirc/TemplateName.java
Expand Up @@ -5,6 +5,7 @@
* @author cnaude
*/
public class TemplateName {
public final static String GAME_ACHIEVEMENT = "game-achievement";
public final static String GAME_ACTION = "game-action";
public final static String GAME_AFK = "game-afk";
public final static String GAME_CHAT = "game-chat";
Expand Down
3 changes: 2 additions & 1 deletion src/main/resources/config.yml
Expand Up @@ -37,8 +37,9 @@ channel-check-interval: 100
# %JOBS% - Player jobs
# %JOBS% - Player jobs shortened
message-format:
# Message templates for game to IRC messages
# Message templates for game to IRC messages
console-chat: '[&5Server] %MESSAGE%'
game-achievement: '[&2%WORLD%] %NAME% has just earned the achievement [%MESSAGE%]'
game-action: '[&2%WORLD%] ***%NAME% %MESSAGE%'
game-pchat: '[&2%WORLD%]<%NAME%> %MESSAGE%'
# death-messages - http://dev.bukkit.org/bukkit-plugins/death-messages
Expand Down

0 comments on commit d47a287

Please sign in to comment.