fjaros / wowchat Goto Github PK
View Code? Open in Web Editor NEWWoWChat is a clientless Discord integration chat bot for old versions of World of Warcraft.
License: GNU General Public License v3.0
WoWChat is a clientless Discord integration chat bot for old versions of World of Warcraft.
License: GNU General Public License v3.0
the token is correct but it keeps saying that it is not valid, is it well added?
# Global Discord Configurations
discord {
# Paste the Discord Token below
# Or set the DISCORD_TOKEN environment variable (this is useful if you want to keep sensitive information out of the config file).
token="${?NzYyODcyMTQzNjcXXXXXXXXXXXXXXXXXXXG7wUgCPcDbxwYJloZvk}"
enable_dot_commands=1
# List of server (dot) commands that are explicitly enabled
# Leaving this as empty means ALL commands are enabled/disabled based on "enable_dot_commands" setting.
# The commands here should reflect exactly how the command is input in game. Do not prepend the dot character.
# We can also accept wildcards like "lookup *" or "pinfo *"
dot_commands_whitelist=[
#"server info"
#"lookup *"
]
# List of Discord channels where commands are enabled. If this is unspecified or empty,
# ALL channels will have command permissions.
enable_commands_channels=[
]
# If a tag matching fails from Discord when someone @ a non-existent or unmatched person or role,
# the bot will whisper back notifying so.
enable_tag_failed_notifications=0
}
# Global WoW Configurations
wow {
# You MUST keep this as Mac on Warden (anticheat) enabled servers. Windows Warden is not implemented.
# Only reason to change this is for servers on which Mac login is not working and also which have Warden disabled.
platform=Mac
# Whether to treat server's MotD message as a server SYSTEM message.
enable_server_motd=1
version=4.3.4
realmlist="comunidad.tsgamerz.com:3727"
realm=Ala Muerte
account="${?txxxz}"
password="${?txxxxz}"
character="${?txxxxxz}"
Do we need updated scala version for this? I cannot build it anymore with my old setup
Thank you
It would be nice to have a timout config option, for when bots are hosted far away from wow server or proxy setups.
Thanks
Joining a public channel (general, trade) without the supplied correct channel ID causes unexpected behavior on some servers. While a server side fix is desirable, I still should extract the information from game files and send the appropriate id for these channels.
Hi, thanks for sharing this project.
But I want to know how to compile this project and get a release with my own changes?
Can make a tutorial about that?
C:\Users\<User>\Downloads\wowchat>java -Dlogback.configurationFile=logback.xml -jar wowchat.jar wowchat.conf
22:51:53.232 INFO n.d.jda.core.JDA - Login Successful!
22:51:54.327 INFO n.d.j.c.r.WebSocketClient - Connected to WebSocket
22:51:55.077 INFO n.d.jda.core.JDA - Finished Loading!
22:51:55.087 INFO w.r.RealmConnector - Logging into realm server logon.warmane.com:3724
22:51:56.389 INFO w.g.GameConnector - Logging into game server Outland (54.36.105.147:8085)
22:51:57.162 INFO w.g.GameConnector - Disconnected from game server! Reconnecting in 10 seconds...
22:52:07.163 INFO w.g.GameConnector - Logging into game server Outland (54.36.105.147:8085)
22:52:07.983 INFO w.g.GameConnector - Disconnected from game server! Reconnecting in 10 seconds...
22:52:17.984 INFO w.g.GameConnector - Logging into game server Outland (54.36.105.147:8085)
22:52:18.745 INFO w.g.GameConnector - Disconnected from game server! Reconnecting in 10 seconds...
I've double checked the config for Warmane TBC server and made sure the discord token is correct.
wow {
version=2.4.3
realmlist=logon.warmane.com
realm=Outland
account=<User>
password=<Pass>
character=<Charname>
}
Tried from another machine in another location around the world but still comes up with the same error message.
Recently the instance I host started to disconnect from game world very often (few times per hour). Minimum interval I've noticed was around 5 minutes. Quick internet search suggests that this may be netty library fault. Any suggestions?
Runtime information
java --version
openjdk 10.0.2 2018-07-17
OpenJDK Runtime Environment (build 10.0.2+13-Ubuntu-1ubuntu0.18.04.4)
OpenJDK 64-Bit Server VM (build 10.0.2+13-Ubuntu-1ubuntu0.18.04.4, mixed mode)
Common error in question
13:52:36.996 WARN i.n.c.DefaultChannelPipeline - An exceptionCaught() event was fired, and it reached at the tail of the pipeline. It usually means the last handler in the pipeline did not handle the exception.
java.io.IOException: Connection reset by peer
at java.base/sun.nio.ch.FileDispatcherImpl.read0(Native Method)
at java.base/sun.nio.ch.SocketDispatcher.read(SocketDispatcher.java:39)
at java.base/sun.nio.ch.IOUtil.readIntoNativeBuffer(IOUtil.java:283)
at java.base/sun.nio.ch.IOUtil.read(IOUtil.java:236)
at java.base/sun.nio.ch.IOUtil.read(IOUtil.java:226)
at java.base/sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:382)
at io.netty.buffer.PooledByteBuf.setBytes(PooledByteBuf.java:247)
at io.netty.buffer.AbstractByteBuf.writeBytes(AbstractByteBuf.java:1147)
at io.netty.channel.socket.nio.NioSocketChannel.doReadBytes(NioSocketChannel.java:347)
at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:148)
at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:700)
at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:635)
at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:552)
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:514)
at io.netty.util.concurrent.SingleThreadEventExecutor$6.run(SingleThreadEventExecutor.java:1044)
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
at java.base/java.lang.Thread.run(Thread.java:844)
13:52:37.004 INFO wowchat.WoWChat$ - Disconnected from server! Reconnecting in 10 seconds...
13:52:47.006 INFO w.r.RealmConnector - Connecting to realm server logon.dalaran-realmlist.org:3724
13:52:57.185 ERROR w.r.RealmConnector - Failed to connect to realm server! io.netty.channel.ConnectTimeoutException: connection timed out: logon.dalaran-realmlist.org/195.154.184.98:3724
13:52:57.187 INFO wowchat.WoWChat$ - Disconnected from server! Reconnecting in 10 seconds...
13:53:07.188 INFO w.r.RealmConnector - Connecting to realm server logon.dalaran-realmlist.org:3724
13:53:10.411 INFO w.r.RealmPacketHandlerTBC - Connected! Sending account login information...
13:53:17.420 INFO w.r.RealmPacketHandlerTBC - Successfully logged into realm server. Looking for realm Algalon - Main Realm
13:53:17.537 INFO w.g.GameConnector - Connecting to game server Algalon - Main Realm (37.187.164.32:8086)
13:53:17.669 INFO w.g.GamePacketHandlerWotLK - Connected! Authenticating...
13:53:18.238 INFO w.g.GamePacketHandlerWotLK - Successfully logged in!
13:53:18.479 INFO w.g.GamePacketHandlerWotLK - Logging in with character MyBotName
13:53:18.705 INFO w.g.GamePacketHandlerWotLK - Successfully joined the world!
Far as I can tell the following exception only happens with ?who term
When term
is not found online.
WARN i.n.c.DefaultChannelPipeline - An exceptionCaught() event was fired, and it reached at the tail of the pipeline. It usually means the last handler in the pipeline did not handle the exception.
java.lang.IndexOutOfBoundsException: readerIndex(8) + length(4) exceeds writerIndex(8): PooledUnsafeDirectByteBuf(ridx: 8, widx: 8, cap: 8)
at io.netty.buffer.AbstractByteBuf.checkReadableBytes0(AbstractByteBuf.java:1405)
at io.netty.buffer.AbstractByteBuf.readIntLE(AbstractByteBuf.java:794)
at wowchat.game.GamePacketHandler.$anonfun$handle_SMSG_WHO$1(GamePacketHandler.scala:630)
at scala.collection.immutable.Range.foreach$mVc$sp(Range.scala:155)
at wowchat.game.GamePacketHandler.handle_SMSG_WHO(GamePacketHandler.scala:627)
at wowchat.game.GamePacketHandler.channelParse(GamePacketHandler.scala:237)
at wowchat.game.GamePacketHandler.channelRead(GamePacketHandler.scala:218)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340)
at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:310)
at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:284)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340)
at io.netty.channel.ChannelInboundHandlerAdapter.channelRead(ChannelInboundHandlerAdapter.java:86)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340)
at io.netty.handler.timeout.IdleStateHandler.channelRead(IdleStateHandler.java:286)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340)
at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1434)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:965)
at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:163)
at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:628)
at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:563)
at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:480)
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:442)
at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:884)
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
How would I go about changing the Status of the Discord Bot, right now it shows "Watching # Guildies Online"
I want to change to "Playing Game" or anything apart from original one?
Thank you
Is there a way to have the command return general online players like in the /who command in-game instead of guild members? Also are there any other ?commands that could be used in general, couldnt find any documentation other than dot commands though
[SYSTEM]: |TInterface\ICONS\Achievement_PVP_H_01:23:23:0:-2|t[VIP]|Hplayer:What|h[What]|h: lol
[SYSTEM]: |TInterface\ICONS\Achievement_PVP_H_01:23:23:0:-2|t[VIP]|Hplayer:What|h[What]|h: cant quit tho, race in progress
[SYSTEM]: |TInterface\ICONS\Achievement_PVP_H_01:23:23:0:-2|t[VIP]|Hplayer:What|h[What]|h: OUR race)
[SYSTEM]: |TInterface\ICONS\Achievement_PVP_H_01:23:23:0:-2|t|Hplayer:Didi|h[Didi]|h: rip
[SYSTEM]: |TInterface\ICONS\Achievement_PVP_H_01:23:23:0:-2|t|Hplayer:Didi|h[Didi]|h: gonna force close the race
[SYSTEM]: |TInterface\ICONS\Achievement_PVP_H_01:23:23:0:-2|t|Hplayer:Didi|h[Didi]|h: vanclef u mind fueling me up with som energy so we can test it :3
[SYSTEM]: |TInterface\ICONS\Achievement_PVP_H_01:23:23:0:-2|t|Hplayer:Didi|h[Didi]|h: ?
[SYSTEM]: [Autobroadcast]: A new command .area has been added. With this you can, for a price, turn an area into an FFA or Sanctuary zone for 2 hours. Time to host your own FFA Events!
[SYSTEM]: |TInterface\ICONS\Achievement_PVP_H_01:23:23:0:-2|t[VIP]|Hplayer:Brroklyn|h[Brroklyn]|h: asd
[SYSTEM]: |TInterface\ICONS\Achievement_PVP_H_01:23:23:0:-2|t[VIP]|Hplayer:Brroklyn|h[Brroklyn]|h: wtf is this shitt?
I am very new in this domain, just found out about this bot (amazing work by the way) and i keep getting this error. I do not know how to proceed or what to do (as I said i am new to coding, so sorry if this seems like a pathetic problem). I've configured wowchat.conf and that should work but i do not understand the .jar error, there's no .jar file inside the project whatsoever.
any help appreciated, it seems http://jcenter.bintray.com/net/dv8tion/JDA/3.8.1_450/JDA-3.8.1_450.pom only now works over https not http.
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 0.944 s
[INFO] Finished at: 2020-04-20T15:11:25+01:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal on project wowchat: Could not resolve dependencies for project wowchat:wowchat:jar:1.3.1: Failed to collect dependencies at net.dv8tion:JDA:jar:3.8.1_450: Failed to read artifact descriptor for net.dv8tion:JDA:jar:3.8.1_450: Could not transfer artifact net.dv8tion:JDA:pom:3.8.1_450 from/to jcenter (http://jcenter.bintray.com): Authorization failed for http://jcenter.bintray.com/net/dv8tion/JDA/3.8.1_450/JDA-3.8.1_450.pom 403 Forbidden -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/DependencyResolutionException
The idea to expand the great utility of this tool is to also add the Warcraft 3 Servers, here I leave how to insert a pvpgn chat for example from an html:
from your website:
chat.txt
chat.txt >> chat.html
Here I leave the complete information:
https://github.com/reillychase/pvpgn-html5-chat-client
I sincerely hope this helps you because what you did was a great job, you left me in love with your chat, you are the best.
Remember that WarCraft 3, Starcraft and Diablo 2 are pvgn Chat, and it works with an IP and a default chat port which is 6112..
Any chance for handling/forwarding of GE_PROMOTION (0x00 pre Cata) and GE_DEMOTION (0x01 pre cata) events, as well as proper handling of GE_REMOVED (0x05 pre Cata)?
Not sure if this is the right place but cant you change twinstar resolver to wowhead?
Whenever a realm is still down and the Bot tries to reconnect, it gets stuck at Logging the character and no timeout happens to relog the character.
World is down
Hello,
On Netherwing [TBC] there is a new system info that let you know when arena team queue up with arena broadcast messages.
You can enable/disable it with .character arenaBroadcast
I want to catch those messages to broadcast them to discord.
I tryed type=System
but it does not catch the arena broadcast messages.
How can I identify the channel for this messages and catch them in order to redirect them to discord ?
Suggestion:
There are some wow icons
{star}, {skull}, {cross}, {circle}, {moon}, {diamond}, {square}, {triangle}.
In discord should be replaced with discord analog emoji
{star} - ⭐
{skull} - 💀
{cross} - ❌ ,
{circle} - ⚫,
{moon } - 🌙,
{diamond} -
{square} - ◼️,
{triangle} - 🔺
or others (maybe serverspecific emojis)
In my guild there are some GM players. And when they type some message, in chat, their message don't show in discord. The problem is that gm messages are sent by SMSG_GM_MESSAGECHAT, not SMSG_MESSAGECHAT. But wowchat doesn't handle this opcode
Sorry to bother you again, I ran run.bat and gave this error.
wowchat.conf:
# Global Discord Configurations
discord {
# Paste the Discord Token below
# Or set the DISCORD_TOKEN environment variable (this is useful if you want to keep sensitive information out of the config file).
token=
enable_dot_commands=1
# List of server (dot) commands that are explicitly enabled
# Leaving this as empty means ALL commands are enabled/disabled based on "enable_dot_commands" setting.
# The commands here should reflect exactly how the command is input in game. Do not prepend the dot character.
# We can also accept wildcards like "lookup *" or "pinfo *"
dot_commands_whitelist=[
#"server info"
#"lookup *"
]
# List of Discord channels where commands are enabled. If this is unspecified or empty,
# ALL channels will have command permissions.
enable_commands_channels=[
]
# If a tag matching fails from Discord when someone @ a non-existent or unmatched person or role,
# the bot will whisper back notifying so.
enable_tag_failed_notifications=1
}
# Global WoW Configurations
wow {
# You MUST keep this as Mac on Warden (anticheat) enabled servers. Windows Warden is not implemented.
# Only reason to change this is for servers on which Mac login is not working and also which have Warden disabled.
platform=Mac
# Whether to treat server's MotD message as a server SYSTEM message.
enable_server_motd=1
version=3.3.5
realmlist=51.79.6.75
realm=Mythic WoW 3.3.5a
account=<>
password=<>
character=<>
# Other example configurations
# version=1.12.1
# realmlist=logon.lightshope.org
# realm=Northdale
# account=<discord bot account>
# password=<discord bot password>
# character=<in game character>
# version=2.4.3
# realmlist=logon.vengeancewow.com
# realm=stonetalon
# account=<discord bot account>
# password=<discord bot password>
# character=<in game character>
# version=3.3.5
# realmlist=wow.gamer-district.org
# realm=Echoes 1x
# account=<discord bot account>
# password=<discord bot password>
# character=<in game character>
# version=4.3.4
# realmlist=login.hades-wow.com
# realm=hades
# account=<discord bot account>
# password=<discord bot password>
# character=<in game character>
# version=5.4.8
# realmlist=hu.logon.tauri.hu
# realm="[en] evermoon"
# account=<discord bot account>
# password=<discord bot password>
# character=<in game character>
}
# guild notifications
guild {
online {
enabled=0
format="`[%user] has come online.`"
}
offline {
enabled=0
format="`[%user] has gone offline.`"
}
promoted {
enabled=1
format="`[%user] has promoted [%target] to [%rank].`"
}
demoted {
enabled=1
format="`[%user] has demoted [%target] to [%rank].`"
}
joined {
enabled=1
format="`[%user] has joined the guild.`"
}
left {
enabled=1
format="`[%user] has left the guild.`"
}
removed {
enabled=1
format="`[%target] has been kicked out of the guild by [%user].`"
}
motd {
enabled=1
format="`Guild Message of the Day: %message`"
}
achievement {
enabled=1
format="%user has earned the achievement %achievement!"
}
}
# chat to redirect
chat {
channels=[
{
direction=both
wow {
type=Guild
format="[%user]: %message"
}
discord {
channel=chat-lichking
format="[%user]: %message"
}
}
{
direction=both
wow {
type=Officer
format="[%user]: %message"
}
discord {
channel=chat-lichking
format="[%user]: %message"
}
}
{
direction=wow_to_discord
wow {
type=Say
format="[%user]: %message"
}
discord {
channel=chat-lichking
format="[%user]: %message"
}
}
{
direction=wow_to_discord
wow {
type=Yell
format="[%user]: %message"
}
discord {
channel=chat-lichking
format="[%user]: %message"
}
}
{
direction=wow_to_discord
wow {
type=Emote
format="%user %message"
}
discord {
channel=chat-lichking
format="%user %message"
}
}
{
direction=wow_to_discord
wow {
type=System
}
discord {
channel=chat-lichking
format="[SYSTEM]: %message"
}
}
# Custom channels
{
direction=wow_to_discord
wow {
type=Channel
channel="General - Orgrimmar"
format="[%user]: %message"
}
discord {
channel=chat-lichking
format="[%target] [%user]: %message"
}
}
{
direction=wow_to_discord
wow {
type=Channel
channel="Trade - City"
format="[%user]: %message"
}
discord {
channel=chat-lichking
format="[%target] [%user]: %message"
}
}
# Class channels
{
direction=both
wow {
type=Channel
channel=Cast
format="[%user]: %message"
}
discord {
channel=mages
format="[%user]: %message"
}
}
{
direction=both
wow {
type=Channel
channel=Chadwarriors
format="[%user]: %message"
}
discord {
channel=warriors
format="[%user]: %message"
}
}
]
}
filters {
enabled=0
# patterns are Java Regexes. Google has the answers you seek.
patterns=[
".*(?i)(?=.*g.?ld)(?=.*level)(?=.*item).*$" # case insensitive filter for messages containing all 3 words g?ld, level, and item in any order
".*(?=.*>>)(?=.*<<).*$" # filter for messages containg >> and << in any order (both must be in the message)
]
}
Professions links create some trash in chat
I think, we need to parse them and replace with link to the DB with skill.
F.e. http://db.logon3.com/?skill=171 for alchemy
Back at it again, sorry.. A new problem has risen right now, i can't seem to get the program working due to some syntax errors (i did not fiddle with anything besides filling the info I should). I kept getting this error on several lines of code:
Exception in thread "main" com.typesafe.config.ConfigException$Parse: wowchat.conf: 19: expecting a close parentheses ')' here, not: ']'.
Found out that just by deleting the square brackets the problem goes away, until this:
Exception in thread "main" com.typesafe.config.ConfigException$Parse: wowchat.conf: 78: expecting a close parentheses ')' here, not: '{'.
I'll leave the entire conf file if this is not enough info.
# Global Discord Configurations
discord {
token=NTgyOTczOTM2NTg1ODAxNzMy.XO5www.WPAIX7lLSYPYMxGNLMCDf4kV-gM
enable_dot_commands=1
# List of server (dot) commands that are explicitly enabled
# Leaving this as empty means ALL commands are enabled/disabled based on "enable_dot_commands" setting.
# The commands here should reflect exactly how the command is input in game. Do not prepend the dot character.
# We can also accept wildcards like "lookup *" or "pinfo *"
dot_commands_whitelist=0
#"server info"
#"lookup *"
# List of Discord channels where commands are enabled. If this is unspecified or empty,
# ALL channels will have command permissions.
enable_commands_channels=0
}
# Global WoW Configurations
wow {
# You MUST keep this as Mac on Warden (anticheat) enabled servers. Windows Warden is not implemented.
# Only reason to change this is for servers on which Mac login is not working and also which have Warden disabled.
platform=Mac
# Whether to treat server's MotD message as a server SYSTEM message.
enable_server_motd=1
version=3.3.5
realmlist=logon.dalaran-server.com
realm=Algalon-Main Realm
account=<>
password=<>
character=<>
}
# guild notifications
guild {
online {
enabled=1
format="`[%user] has come online.`"
}
offline {
enabled=1
format="`[%user] has gone offline.`"
}
promoted {
enabled=1
format="`[%user] has promoted [%target] to [%rank].`"
}
demoted {
enabled=1
format="`[%user] has demoted [%target] to [%rank].`"
}
joined {
enabled=1
format="`[%user] has joined the guild.`"
}
left {
enabled=1
format="`[%user] has left the guild.`"
}
removed {
enabled=1
format="`[%target] has been kicked out of the guild by [%user].`"
}
motd {
enabled=1
format="`Guild Message of the Day: %message`"
}
achievement {
enabled=1
format="%user has earned the achievement %achievement!"
}
}
chat {
channels=general
{
direction=wow_to_discord
wow{
type=Channel
channel="global"
format="[%user]: %message"
}
}
}
filters {
enabled=1
# patterns are Java Regexes. Google has the answers you seek.
patterns=[
".*(?i)(?=.*g.?ld)(?=.*level)(?=.*item).*$" # case insensitive filter for messages containing all 3 words g?ld, level, and item in any order
".*(?=.*>>)(?=.*<<).*$" # filter for messages containg >> and << in any order (both must be in the message)
}
Thanks for your support. You are awesome!
Basically what the title says, would be a useful addition to the bot, thanks for all of your hard work so far :)
If user change his player name and send something in chat - bots will send message with old name. After rename - server sends opcode SMSG_INVALIDATE_PLAYER to all players in world and clients update information about players. But bots don' handle this packet and don't update other player names without logout
Hi,
I updated with the latest version and right now I get this error when I run it from the terminal:
bash run.sh
14:13:16.663 INFO wowchat.WoWChat$ - Running WoWChat - v1.3.4
Exception in thread "main" com.typesafe.config.ConfigException$Missing: system properties: No configuration setting found for key 'discord'
at com.typesafe.config.impl.SimpleConfig.findKeyOrNull(SimpleConfig.java:156)
at com.typesafe.config.impl.SimpleConfig.findOrNull(SimpleConfig.java:174)
at com.typesafe.config.impl.SimpleConfig.find(SimpleConfig.java:188)
at com.typesafe.config.impl.SimpleConfig.find(SimpleConfig.java:193)
at com.typesafe.config.impl.SimpleConfig.getObject(SimpleConfig.java:268)
at com.typesafe.config.impl.SimpleConfig.getConfig(SimpleConfig.java:274)
at com.typesafe.config.impl.SimpleConfig.getConfig(SimpleConfig.java:41)
at wowchat.common.WowChatConfig$.apply(Config.scala:38)
at wowchat.WoWChat$.main(WoWChat.scala:26)
at wowchat.WoWChat.main(WoWChat.scala)
I'm running wowchat on a raspi zero w with raspbian installed. I ran it before this update and it worked, didn't get this error.
Hey,
The config entry
enable_commands_channels=
is not working.
my config:
enable_commands_channels=[commands]
So, in theory only the discord channel called "commands" should send allow messages to be sent ingame.
But, this appears not to be the case, if a player sends a "command" (e.g. .server info ) to another channel synced with discord, the output also works.
Obviously, this is then a security issue if you are expecting commands to only work from a specific channel only
Currently do not see in-game server messages such as: [SYSTEM]: Server restart in 30 minutes.
But I do see: [SYSTEM]: Disconnected from server!
Perhaps this is intended behavior?
My config:
enable_server_motd=0
{
direction=wow_to_discord
wow {
type=System
}
discord {
channel=guild-chat
format="[SYSTEM]: %message"
}
}
Hey there!
Thank you very much for your work.
I have the problem that what I speak in discord I cannot see it in the game, why is it?
I leave my configuration:
I have only one discord channel where I will show all the conversations, the channel is called "chat-juego"
## chat to redirect
chat {
channels=[
{
direction=both
wow {
type=Guild
format="[%user]: %message"
}
discord {
channel=chat-juego
format="[%user]: %message"
}
}
{
direction=both
wow {
type=Officer
format="[%user]: %message"
}
discord {
channel=chat-juego
format="[%user]: %message"
}
}
{
direction=wow_to_discord
wow {
type=Say
format="[%user]: %message"
}
discord {
channel=chat-juego
format="[%user]: %message"
}
}
{
direction=wow_to_discord
wow {
type=Yell
format="[%user]: %message"
}
discord {
channel=chat-juego
format="[%user]: %message"
}
}
{
direction=wow_to_discord
wow {
type=Emote
format="%user %message"
}
discord {
channel=chat-juego
format="%user %message"
}
}
{
direction=wow_to_discord
wow {
type=System
}
discord {
channel=chat-juego
format="[SYSTEM]: %message"
}
}
# Custom channels
{
direction=wow_to_discord
wow {
type=Channel
channel="General - Orgrimmar"
format="[%user]: %message"
}
discord {
channel=chat-juego
format="[%target] [%user]: %message"
}
}
{
direction=wow_to_discord
wow {
type=Channel
channel="General - Stormwind"
format="[%user]: %message"
}
discord {
channel=chat-juego
format="[%target] [%user]: %message"
}
}
# Class channels
{
direction=both
wow {
type=Channel
channel=global
format="[%user]: %message"
}
discord {
channel=chat-juego
format="[%user]: %message"
}
}
{
direction=both
wow {
type=Channel
channel=chat
format="[%user]: %message"
}
discord {
channel=chat-juego
format="[%user]: %message"
}
}
{
direction=both
wow {
type=Channel
channel=gremio
format="[%user]: %message"
}
discord {
channel=chat-juego
format="[%user]: %message" ##
I think like classes,races,area name we can use like json control,or we can read from dbc.
And also item link we can modify in conf. maybe cool!
Unable to filter messages in Green color
Players can now make use of an opt-in feature: Mercenary Mode that allows you to briefly forget your faction allegiance and fight for the enemy. This feature can be toggled within the account settings on the website.
Able to filter Yellow System messages only the green system messages aren't filtered.
Here's my filter setup
Hey,
This is probably server-side related, but I am a bit curious what you are using to join channels. Is it just a simple /join? Because for us, it's taken over the public LFG channel causing the bot to gain ownership of it, which turns it into a private channel causing the whole server to see a flood of joined/left spam.
Just curious what the methods being used to join channels are or if this is unintended.
Hello, I'm trying to connect Wowchat to Mists of Pandaria 18019, but the version error is invalid.
I would like help to make it work on Build 18019.
Waiting for answers...
Any chance you could make the "Disconnected from server!" message only show once?
Currently showing like so:
[SYSTEM]: Disconnected from server!
[SYSTEM]: Disconnected from server!
[SYSTEM]: Disconnected from server!
[SYSTEM]: Disconnected from server!
Hey there!
Thank you very much for your work. We love it in our guild.
I tried to find a way to send "/SCRIPT" commands. For example to set a Gmotd. Is there any way to do that? Or any chance you could include that?
Thank you again!
Suzu
Noticed a minor issue in the new version. (confirmed working in 1.2.10)
Using some Discord markup within the wowchat.conf but it's no longer working:
chat {
channels=[
{
direction=both
wow {
type=Guild
format="[%user]: %message"
}
discord {
channel=guild-chat
format="[**%user**]: %message" <------------ Make username bold in Discord
}
}
Shows up in Discord with the asterisks showing.
Current behaviour: I can type in discord at any channel ?who / ?online and bot will sends me answer in that channel
Suggestion: i can specify in config channel name (or few names with comma), where bot can process this commands and sends answer. If empty - bot will process ? commands in any channels
I'm currently working on this If i can get it functioning ill send a pull request
The bot is not reading ingame messages, but is sending messages from the discord channel to the ingame channel, this worked before today.
Hey. Thanks for creating this wonderful bot. My instance was working fine for many days, but now it isn't registering any messages, be it in-game or in discord.
I did not change any settings from it working. I went on the discord character and checked that it could write in guild, and it did.
My config
wowchat.txt
Probably a shit title, but I'm trying to figure out how I can send a /invite {name} when someone types say "ghetto" in either chat or discord chat (if their name matches)
I thought about looking at how dot commands work, because I assume it would be similar but I can't get that to output any response either, perhaps some guidance would be greatly appreciated!
Hi,
i got stuck on Connected to Websocket, the bot connected to discord but didnt log to game.
your great wowchat code works before, im playing on warmane private server.
please help
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.