Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/zachbr/Dis4IRC
A modern Discord <-> IRC bridge
https://github.com/zachbr/Dis4IRC
bridge configurate discord irc java-discord-api jda kittehircclientlib kotlin
Last synced: 11 days ago
JSON representation
A modern Discord <-> IRC bridge
- Host: GitHub
- URL: https://github.com/zachbr/Dis4IRC
- Owner: zachbr
- License: mit
- Created: 2018-10-10T04:28:54.000Z (about 6 years ago)
- Default Branch: master
- Last Pushed: 2024-10-16T02:09:36.000Z (24 days ago)
- Last Synced: 2024-10-17T14:24:35.048Z (22 days ago)
- Topics: bridge, configurate, discord, irc, java-discord-api, jda, kittehircclientlib, kotlin
- Language: Kotlin
- Homepage:
- Size: 1010 KB
- Stars: 50
- Watchers: 4
- Forks: 17
- Open Issues: 15
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE.md
Awesome Lists containing this project
- awesome - zachbr/Dis4IRC - A modern Discord <-> IRC bridge (Kotlin)
README
Dis4IRC
=======
A modern Discord <-> IRC BridgePublished under the [MIT License](https://github.com/zachbr/Dis4IRC/blob/master/LICENSE.md).
Features
--------
* Markdown and Modern IRC Client Features
* Paste support for long messages
* Channel Join/Quit broadcasts
* Discord webhook support
* Non-prefixed messages for other IRC bots to handle
* IRC anti-ping zero width character in usernames
* User, channel, role, and emote mentions
* Sticker and emote support (as images or animated viewer)
* Reply bridging with contextGetting Started
---------------
Please see the [Getting Started page](https://github.com/zachbr/Dis4IRC/blob/master/docs/Getting-Started.md).Downloads
---------
* Release versions can be found on [GitHub releases](https://github.com/zachbr/Dis4IRC/releases).
* The latest build from source can be found as a GitHub actions artifact.
* Users authenticated with GitHub can access builds [here](https://github.com/zachbr/Dis4IRC/actions?query=event%3Apush+is%3Asuccess+branch%3Amaster).
* Unauthenticated users can access the [latest version here](https://nightly.link/zachbr/Dis4IRC/workflows/gradle/master/dis4irc-jar).Example Config
--------------
```hocon
# Dis4IRC Configuration File# A list of bridges that Dis4IRC should start up
# Each bridge can bridge multiple channels between a single IRC and Discord Server
bridges {
# A bridge is a single bridged connection operating in its own space away from all the other bridges
# Most people will only need this one default bridge
default {
# Relay joins, quits, parts, and kicks
announce-joins-and-quits=false
# Relay extra verbose information you don't really need like topics and mode changes.
announce-extras=false
# Mappings are the channel <-> channel bridging configurations
channel-mappings {
"712345611123456811"="#bridgedChannel"
}
# Your discord API key you registered your bot with
discord-api-key="NTjhWZj1MTq0L10gMDU0MSQ1.Zpj02g.4QiWlNw9W5xd150qXsC3e-oc156"
# Match a channel id to a webhook URL to enable webhooks for that channel
discord-webhooks {
"712345611123456811"="https://discordapp.com/api/webhooks/712345611123456811/blahblahurl"
}
# Discord-specific configuration options
discord-options {
# Descriptor text to show in the client. An empty string will show nothing. This may not update immediately.
activity-desc=IRC
# Activity type to report to Discord clients. Acceptable values are DEFAULT, LISTENING, STREAMING, WATCHING, COMPETING
activity-type=DEFAULT
# Additional URL field used by certain activity types. Restricted to certain URLs depending on the activity type.
activity-url=""
# Online status indicator. Acceptable values are ONLINE, IDLE, DO_NOT_DISTURB, INVISIBLE
online-status=ONLINE
}
commands {
pinned {
enabled="true"
}
stats {
enabled="true"
}
}
# Configuration for connecting to the IRC server
irc {
anti-ping=true
nickname=TestBridge2
# Messages that match this regular expression will be passed to IRC without a user prefix
no-prefix-regex="^\\.[A-Za-z0-9]"
# Sets the max context length to use for messages that are Discord replies. 0 to disable.
discord-reply-context-limit=90
# A list of __raw__ irc messages to send
init-commands-list=[
"PRIVMSG NICKSERV info",
"PRIVMSG NICKSERV help"
]
port="6697"
realname=BridgeBot
send-discord-embeds=true
server="irc.esper.net"
# Controls whether bridged nicknames will use color
use-nickname-colors=true
use-ssl=true
username=BridgeBot
}
mutators {
paste-service {
max-message-length=450
max-new-lines=4
# Number of days before paste expires. Use 0 to never expire.
paste-expiration-in-days=7
}
}
}
}
debug-logging=true```
Obligatory
----------
![xkcd #1782](https://imgs.xkcd.com/comics/team_chat.png)The Name
--------
The name is a typo of a typo of a bad idea of a misspoken phrase.
Let's just not go there :pBuilt using
-----------
* [KittehIRCClientLib](https://github.com/KittehOrg/KittehIRCClientLib)
* [JDA (Java Discord API)](https://github.com/DV8FromTheWorld/JDA)
* [Configurate](https://github.com/SpongePowered/configurate)