devnull
16.04.10 New Version:
- Uses Message Groups and Event Filters
- Uses WoWAce Localization feature
- Added LDB support
/dev/null makes your life in WoW more pleasant by ignoring various chat annoyances.
Thanks to Jncl for all his work on this addon.
When you enter a capital city:
It will ignore people who /yell. It will ignore spammy NPCs (ie. Ironforge bread vendor, Topper McNab in Stormwind etc). It will ignore duel spam (A has defeated B in a duel). It will ignore emotes except those directed at yourself. It will ignore drunk spam (X looks tipsy). It will ignore tradeskill spam.
When you enter an instance or battleground: It will mute the general channel.
All features can be toggled with the slash command /devnull.
<party zones in>
devnull: Instance mode enabled
<party pulls some mob that fears>
<player gets feared>
devnull: Instance mode enabled
<player gets feared later in the same fight>
devnull: Instance mode enabled
It's due to the use of PLAYER_CONTROL_LOST/PLAYER_CONTROL_GAINED events, and assuming that the player is always on a taxi when those fire. The fact that UnitOnTaxi() doesn't immediately return correct values isn't helping, but that's Blizzard's bug.
I'm testing this change:
--- devnull.lua.orig 2010-11-09 13:23:19.062500000 -0500
+++ devnull.lua 2010-11-10 17:17:09.312500000 -0500
@@ -705,14 +705,14 @@
end
-- if flying then disable events
- if event == "PLAYER_CONTROL_LOST" then
+ if event == "PLAYER_CONTROL_LOST" and not InCombatLockdown() then
self:UnregisterAllEvents()
self:RegisterEvent("PLAYER_CONTROL_GAINED", "CheckMode")
onTaxi = true
self.DBObj.text = updateDBtext()
return
-- if finished flying then enable events
- elseif event == "PLAYER_CONTROL_GAINED" then
+ elseif event == "PLAYER_CONTROL_GAINED" and not InCombatLockdown() then
self:UnregisterEvent(event)
enableEvents()
onTaxi = false
(dunno how that's going to format in these comments)
Players in combat can't take taxis, and all PLAYER_CONTROL_* events other than taxis take place in combat. So the idea is to avoid any taxi-related code during a fight.
That's solved the redundant spam problem, but I want to make sure it's not going to misbehave in other places.
Fixed the localization error, sorry about that.
Also added an achievement filter to allow Guild/Party/Raid achievements to be seen if required.
Date: 2010-11-03 06:34:56
ID: 1
Error occured in: Global
Count: 1
Message: AceLocale-3.0: devnull: Missing entry for '[Yy]ou'
Debug:
(tail call): ?
...AckisRecipeList\libs\AceLocale-3.0\AceLocale-3.0.lua:31:
...AckisRecipeList\libs\AceLocale-3.0\AceLocale-3.0.lua:29
devnull\devnull.lua:181: filterFunc()
..\FrameXML\ChatFrame.lua:2715: ChatFrame_MessageEventHandler()
..\FrameXML\ChatFrame.lua:2538:
..\FrameXML\ChatFrame.lua:2531
[C]: pcall()
Stubby\Stubby.lua:379:
Stubby\Stubby.lua:325
(tail call): ?
[string "*:OnEvent"]:1:
[string "*:OnEvent"]:1
AddOns:
Swatter, v3.1.16 (<%codename%>)
AckisRecipeList, v2.0.4
Atlas, v1.17.2
AtlasBattlegrounds, v1.17.2
AtlasDungeonLocs, v1.17.2
AtlasOutdoorRaids, v1.17.2
AtlasTransportation, v1.17.2
AtlasLoot, vv5.11.07
AucAdvanced, v5.9.4960 (WhackyWallaby)
AucFilterBasic, v5.9.4960 (WhackyWallaby)
AucFilterOutlier, v5.9.4960.2531
AucMatchUndercut, v5.0.PRE.2467 (BillyGoat)
AucScanData, v5.9.4960 (WhackyWallaby)
AucStatHistogram, v5.9.4960 (WhackyWallaby)
AucStatiLevel, v5.9.4960 (WhackyWallaby)
AucStatPurchased, v5.9.4960 (WhackyWallaby)
AucStatSales, v5.9.4960.2842
AucStatSimple, v5.9.4960 (WhackyWallaby)
AucStatStdDev, v5.9.4960 (WhackyWallaby)
AucStatWOWEcon, v5.9.4960.2530
AucUtilAHWindowControl, v5.9.4960.3311
AucUtilAppraiser, v5.9.4960.2530
AucUtilAskPrice, v5.9.4960.3175
AucUtilAutoMagic, v5.9.4960.3142
AucUtilCompactUI, v5.9.4960.2530
AucUtilEasyBuyout, v5.9.4960.3583
AucUtilGlypher, v5.9.4960.2545
AucUtilItemSuggest, v5.9.4960.3108
AucUtilPriceLevel, v5.9.4960.2545
AucUtilScanButton, v5.9.4960.2530
AucUtilScanFinish, v5.9.4960.2530
AucUtilScanProgress, v5.9.4960.2530
AucUtilScanStart, v5.9.4960.4819
AucUtilSearchUI, v5.9.4960.3655
AucUtilSimpleAuction, v5.9.4960.4546
AucUtilVendMarkup, v5.9.4960.2530
Babylonian, v5.1.DEV.130
BeanCounter, v5.9.4960 (WhackyWallaby)
BonusScanner, v5.3.1
Configator, v5.1.DEV.282
DBMBossModStudio, v
DBMCore, v
DebugLib, v5.1.DEV.275
Decursive, v2.5.2.2
devnull, vb2.13205.1
EventAlert, v4.5.4
Finklestein, v18
Gatherer, v3.1.16
GathererDBWowhead, v1.0.2009-12-09
GearScore, v3.1.20 - Release
HealBot, v4.0.1.2
Informant, v5.9.4960 (WhackyWallaby)
NoDuel, v2.2
nUI, v5.07.06 (Development)
nUICenteredHUD, v5.06.19
nUIConfigGUI, v30300.1
nUIInfoPanelStats, v1.02.02
nUIPluginTempMovers, v1.06.00
Omen, v3.0.11
Recount, v
SlideBar, v3.1.16 (<%codename%>)
SpamMeNot, v4.0
Stubby, v5.9.4960 (WhackyWallaby)
Titan, v4.3.9.40000 - Revision 386
TitanBag, v4.3.9.40000
TitanClock, v4.3.9.40000
TitanCoords, v4.3.9.40000
TitanGoldTracker, v4.3.9.40000
TitanItemBonuses, v4.1.6.30000
TitanLootType, v4.3.9.40000
TitanRepair, v4.3.9.40000
TitanXP, v4.3.9.40000
BlizRuntimeLib_enUS v4.0.1.40000 <us>
(ck=8e6)
Message: AceLocale-3.0: devnull: Missing entry for '[Yy]ou'
Time: 10/28/10 22:30:57
Count: 1
Stack: Interface\AddOns\devnull\devnull.lua:181: in function `filterFunc'
Interface\FrameXML\ChatFrame.lua:2715: in function `ChatFrame_MessageEventHandler'
Interface\FrameXML\ChatFrame.lua:2538: in function `ChatFrame_OnEvent'
[string "*:OnEvent"]:1: in function <[string "*:OnEvent"]:1>
Locals: <none>
Date: 2010-10-28 21:29:13
ID: 1
Error occured in: Global
Count: 1
Message: AceLocale-3.0: devnull: Missing entry for '[Yy]ou'
Debug:
...nterface\AddOns\Ace3\AceLocale-3.0\AceLocale-3.0.lua:31:
...nterface\AddOns\Ace3\AceLocale-3.0\AceLocale-3.0.lua:29
devnull\devnull.lua:181: filterFunc()
Prat-3.0\services\chatsections.lua:59:
Prat-3.0\services\chatsections.lua:52
Prat-3.0\services\chatsections.lua:321: SplitChatMessage()
Prat-3.0\addon\addon.lua:569:
Prat-3.0\addon\addon.lua:545
(tail call): ?
..\FrameXML\ChatFrame.lua:2538: ChatFrame_OnEvent()
[string "*:OnEvent"]:1:
[string "*:OnEvent"]:1
AddOns:
Swatter, v3.1.16 (<%codename%>)
Ace3, v
Achieved, v0.4
AckisRecipeList, v2.0.4
ACP, v3.3.8
Atlas, v1.17.2
AtlasBattlegrounds, v1.17.2
AtlasDungeonLocs, v1.17.2
AtlasOutdoorRaids, v1.17.2
AtlasTransportation, v1.17.2
AtlasLoot, vv5.11.07
AtlasLootFu, vv5.11.07
Auctionator, v2.6.8
Babylonian, v5.1.DEV.130
BadBoy, v6.154
BadBoyCCleaner, v3.12
BadBoyLevels, v2.75
Bagnon, v2.14.0
BagnonForever, v1.1.2
BagnonTooltips, v
Bartender4, v4.4.13
BonusScanner, v5.3.1
Btex, v2.9.3
ButtonFacade, v4.0.340
ButtonFacadeDarion, v3.0.3.2
ButtonFacadeDek2, v3.0.47
ButtonFacadeElegance, v3.3.0
ButtonFacadeRenaitre, vv4.0.1
ButtonFacadeSleek, v4.0.0
ButtonFacadeTrinity, v40000.1
Chinchilla, vv2.2.2
Configator, v5.1.DEV.278
DBMCore, v
devnull, vb2.13205.1
Gatherer, v3.1.16
GatherMate, vv.1.24
GearScore, v3.1.20 - Release
HealBot, v4.0.1.2
Mapster, v1.3.11
MikScrollingBattleText, v5.5.88
MinimapButtonFrame, v3.1.4
MinimapButtonFrameSkinPack, v3.0
NotesUNeed, v6.64.40000
OmniCC, v3.1.4
Postal, v3.4.4
Prat30, v3.4.6
Prat30Libraries, v
Quartz, v3.0.4
Recount, v
Routes, vv1.3.0
SlideBar, v3.1.16 (<%codename%>)
spellstealer, v1.3
TidyPlates, v5.13.6 (R39)
TidyPlatesGrey, v
TidyPlatesNeon, v
TidyPlatesThreatPlates, v4.0-a
TipTac, v10.10.27
TipTacItemRef, v10.10.19
TipTacTalents, v10.10.27
Titan, v4.3.9.40000 - Revision 386
TitanBag, v4.3.9.40000
TitanClock, v4.3.9.40000
TitanCoords, v4.3.9.40000
TitanGoldTracker, v4.3.9.40000
TitanHealBot, v4.0.1.0
TitanLootType, v4.3.9.40000
TitanNotesUNeed, v3.3
TitanPerformance, v4.3.9.40000
TitanRepair, v4.3.9.40000
TitanVolume, v4.3.9.40000
TitanXP, v4.3.9.40000
XLoot, v0.91.1
XLootGroup, v0.61
Xparky, v1.4
XPerl, v3.1.1
XPerlArcaneBar, v
XPerlParty, v
XPerlPartyPet, v
XPerlPlayer, v
XPerlPlayerBuffs, v
XPerlPlayerPet, v
XPerlRaidAdmin, v
XPerlRaidFrames, v
XPerlRaidHelper, v
XPerlRaidMonitor, v
XPerlRaidPets, v
XPerlTarget, v
XPerlTargetTarget, v
BlizRuntimeLib_enUS v4.0.1.40000 <us>
(ck=83f)
@JLBurnett04: - it will filter ALL Achievement messages if you turn them off
- most Instance/Battleground messages are left as is, the General, LocalDefense & WorldDefense channels are removed from ChatFrame1 when you enter an Instance/Battleground, what messages would you like filtering ?
Player1 has joined the raid.
Player2 has joined the raid.
Player3 has joined the raid.
Player4 has joined the raid.
Player5 has joined the raid.
I'd like to see:
Player1, Player2, Player3, Player4, Player5 have joined the raid.
Same thing really with achievements. I dont want all of them filtered from my party or guild chat. That makes it really confusing when someone in guild says "grats" to someone and I have no idea why. I just want them grped. Instead of seeing lines and lines of names like with joining/leaving a raid, I'd like to just see one message listing everyone who got the achievement.
HOWEVER, I would like the random achievements of people standing next to me in the AH or the mailbox to be filtered. If they're not in my guild or in my party I don't need to know that they have a plethora of pets.
Also, I dont need to see everyone in my raid or party looting their Emblems of Frost. I only want to see that I got mine, and I dont care about their spam. I don't need to see their Stone Keeper's Shards or Emblems of Triumph or Crusader Mark or Badge of Justice.
Had to yell it :D
And what about badge spam?
- Uses Message Groups and Event Filters
- Uses WoWAce Localization feature
- Added LDB support
I hope you like it
Just posted a new update:
Updated to use Ace3 libraries
Won't suppress Emotes directed at the player, I hope
Pet Info (e.g. eating) can be suppressed now
Dalaran & Area52 are now quieter
Anyways, it seems jncl has more or less taken over devnull. Maybe I'll add code to it again some time if/when I get back into WoW. Which I'm afraid might happen soon. My sister is bugging me non-stop to try out WoW 3.0 :)