GithubHelp home page GithubHelp logo

fjaros / wowchat Goto Github PK

View Code? Open in Web Editor NEW
137.0 137.0 94.0 977 KB

WoWChat is a clientless Discord integration chat bot for old versions of World of Warcraft.

License: GNU General Public License v3.0

Scala 99.85% Batchfile 0.08% Shell 0.07%

wowchat's People

Contributors

dependabot[bot] avatar fjaros avatar road-block avatar zebouski avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

wowchat's Issues

error login character

hello,
there is error when logging with character, im already using 1.3.6 version on server warmane 3.3.5.
screenshot attached.

thanks
error

What is the reason for this error?

http://prntscr.com/uutks1

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}"

ERROR

image

Could you help me with this problem?

Building Isssue

Do we need updated scala version for this? I cannot build it anymore with my old setup

Thank you

Problem with Russian symbols

Hello. I found problem with Russian symbols.

In Game:
g1

In discord:
discord

The problem is only with chat text, name of users is ok

Add timeout config option

It would be nice to have a timout config option, for when bots are hosted far away from wow server or proxy setups.

Thanks

Add channel ID support for public channels

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.

How to compile source

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?

Warmane 2.4.3 - Disconnection

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.

java.io.IOException: Connection reset by peer

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!

Bot sends message many times

I've tested situation, when I invite my bot to 3 different servers. And when I send some message from 1 of them, in wow bot sends this message multiple times (for every server)

3231334

2123321

netty related exception for qualified who queries

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)

Discord Bot Status

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

?who command

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

Vip channel in system message.

[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?

[Newbie] Unable to acces jarfile wowchat.jar

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.

cannot build app using maven

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

A help / suggestion to improve this great work.

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..

Twinstar Ads

Not sure if this is the right place but cant you change twinstar resolver to wowhead?

Catch server system arena broadcast messages

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 ?

Replace WoW icons with discord analogs

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)

222222

Gm messages not sended to discord

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

ERROR !

image
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)
  ]
}

Problem with brackets in wowconf file.

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!

Bots don't update player names after rename

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

No configuration setting found for key 'discord'

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.

enable_commands_channels does not work

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

Unable to proceed from realm connection

image

My bot can no longer proceed to character selection after logging in. This happened since 2 days ago.
I updated to 1.3.6 still the same. I'm using the same config as I had before.

Also, my bot account is banned. Managed to login using the wow wotlk client.

Any idea how this happened?

Server Shutdown Message

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"
  }
}

I can't write from Discord to WoW

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" ##

Suggestion: support i18n

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!

Filter not working for Green System Messages

Unable to filter messages in Green color
image
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
image

Bot taking ownership of public channels

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.
screenshot_1

Mists of Pandaria 18019

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...

Cleaner Disconnect Messages

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!

Sent /script commands

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

Discord Markup

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.

Bot not reading ingame messages

The bot is not reading ingame messages, but is sending messages from the discord channel to the ingame channel, this worked before today.

Was working fine but suddenly stopped working

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

Adding functionality for command like behavior

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!

Stuck on Connected Websocket

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

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.