GithubHelp home page GithubHelp logo

irctransport's Introduction

[CHAT] IRCTransport 0.13.0 - Minecraft Chat/IRC Integration

This Bukkit plugin replaces minecraft chat system with a connection to an IRC Server. All IRC Connections happen Bukkit server side, so either run your own IRC server, or make sure that you are allowed to use mutiple connections on the IRC server of your choice.

Available settings:

Put these in IRCTransport/config.yml file with appropriate values.

	verbose: false
	suppress:
	  initial_userlist: false
	  initial_topic: false
	server:
	  address: localhost
	  port: 6667
	  ssl:
		enabled: false
		trust: false
	  nicksize: 16
      webirc_password: p@$$w0rd
	default:
	  prefix: '[MC]'
	  suffix: 
	  channels:
		- channel: '#minecraft'
	messages:
      chat-irc: '&9[&b${CHANNEL}&9] &3${NICK}: &f${MESSAGE}'
      quit: '&3${NICK} &fleft'
      private: '&2${NICK}&f to you: &f${MESSAGE}'
      part: '&3${NICK} &fleft'
      rename: '&3${OLDNICK} &fis now &3${NEWNICK}'
      kick: '&3${NICK} &ckicked by &3${OP}: &${REASON}'
      join: '&3${NICK} &fjoined &b${CHANNEL}'
      list: 'On &9[&b${CHANNEL}&9]: &3${LIST}'
      topic: '&9[&b${CHANNEL}&9] &3Topic: &f${TOPIC}'
      action: '* &3${NICK} &a${ACTION}'
    translations:
      hit the ground too hard: hit the ground

The server address setting is mandatory. All other settings are optional.

Normal Settings

Your config.yml will look a lot like this:

server:
  address: irc.example.com
default:
  channels:
    - channel: '#minecraft' 

Available commands:

/join #channel [key]
/leave #channel
/channel #channel -- changes your active channel
/msg user -- send a private message to a user
/nick new_name  -- change your display name.
/names -- shows users in your channel
/me action to perform -- performs an irc action
/topic -- get or set the channel topic
/whois -- gets information about a nick
/irc_listbots -- lists all connected users on the system terminal

Download
Source

Features:

  • Minecraft chat is replaced with an IRC session.
  • Private messaging works in game.
  • IRC channels are joinable in game.

Changelog:

Version 0.13.0

  • Leaving a channel sets another channel active.
  • Disabling IRC <-> Minecraft color code mapping (for now).
  • Added message customization support.
  • Added basic translation support.
  • Added trust all SSL option.
  • Fixed bog on player join.
  • Added WebIRC support.
  • Added Metrics

Version 0.12.0

  • Works with Bukkit 1.1 (and 1.2)
  • Fixed bug in DeathMessage
  • Leaving a channel sets another channel active.
  • Added server.nicksize to truncate nick intelligently
  • Added basic translation support

Version 0.11.2

  • Fixed /msg showing usage everytime.

Version 0.11.1

  • Fixed nullUSERNAMEnull bug.

Version 0.11

  • Fixed a potential reload bug.
  • Changed from using server.properties to using IRCTransport/config.yml
  • Added /whois support.
  • Added nick persistance.

Version 0.10

  • Added nickname prefix and suffix options.
  • Fixed Automatic reconnect after plugin is disabled or server is stopped.
  • Added Error message for nick name already in use.
  • Fixed a null exception when the console tries to use irc commands.
  • Channel parts (leaving a channel) are now announced.
  • Channel kicks is now announced.
  • Added some handling for "Connection reset" errors.

Version 0.9

  • Fixed PlayerJoinEvent/PlayerQuitEvent changes
  • Added channel key support.
  • Added auto join key support.
  • Made system messages yellow.

Version 0.8

  • Actually fixed bug that 0.7 was supposed to fix.
  • Added irc.password and irc.port configuration options.

Version 0.7

  • Fixed bug where IRC agent would reconnect after player disconnected.

Version 0.6

  • Attempts to reconnect to IRC server on connection failure/disconnect.
  • Minecraft color to IRC color support in chat.
  • Color conversion code refactored.

Version 0.5

  • Fixed a nickname change bug.
  • IRC color to minecraft color support in chat.
  • Removed TSLPC.
  • Channel topic support

Version 0.4

  • Added /me support
  • Added /names support.
  • Added channel is invite only error message.
  • Changed output messages to use logging.
  • Fixed bug in nickname changing.

Version 0.3

  • Renamed PlayerBot to IrcAgent.
  • Fixed join message detection.
  • Changed package name to hef.IRCTransport as per request.
  • Changed build system to Maven.

Version 0.2

  • Player's name displays correctly when their name is changed.
  • Nick change notification added.
  • Nick already in use handling changed.
  • Active channel is switched on channel join.
  • Channel join messages.
  • Channel autojoin now a setting.

Version 0.1

  • Basic irc features are functional in Minecraft.

irctransport's People

Contributors

dutchy- avatar hef avatar

Stargazers

 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

irctransport's Issues

Set IP address of clients

On the server I connect to, they only allow 4 concurrent connections from the same address at the same time. I've gotten one of my IP addresses onto their whitelist to get around this problem except the IP is not the default IP address that pircbot is connecting to.

I've had to modify pircbot myself to add the functionality required, I'm curious if pircbotx that you're using in one of your branches might have this capability, and if so, can we get a configuration variable to allow me to set the IP address it tries to bind to?

IRC Whois or another global command?

I have just installed your plugin, but i see that players can change nick as they want, so when someone new comes you cannot check what is the player real name from game or from irc channel.

Can you add:
-some extra info about player (login?) in /whois in some fields
-add /whois command or global /irc command that pass evrything to serwer?
-add some commands to identify yourself in nickserv :) (or use global /irc msg nickserv id PASS)

Multiple prefixes/nicknames on used?

Ability to put multiple pre/sufixes to be able to use that nick even when someone else use it.

For example, you have name "test" but user named "test" is already online on irc, so like any other irc client it will use alternative for example test_ or test_sufix.

(because i'm connecting to my friend irc server, and sometimes i'm left with nick used and then players gets "ircBot" name instead and even don't join channel, and they don't usually know how to fix it.

Or maybe option to set autojoin on invite :)

Call stack error

2012-07-09 14:40:35 [INFO] locknlol [/192.168.0.135:42564] logged in with entity id 19 at ([proxy] 1036.0410946211587, 5.0, 1238.9338339231497)
2012-07-09 14:40:35 [INFO] [VanishNoPacket] locknlol disappeared.
2012-07-09 14:40:36 [INFO] [IRCTransport] Created agent for Player ID: 19 name: locknlol
2012-07-09 14:40:36 [SEVERE] Exception in thread "bot2-output"
2012-07-09 14:40:36 [SEVERE] java.lang.RuntimeException: Trying to send message when no longer connected
2012-07-09 14:40:36 [SEVERE] at org.pircbotx.OutputThread.failIfNotConnected(OutputThread.java:90)
2012-07-09 14:40:36 [SEVERE] at org.pircbotx.OutputThread.run(OutputThread.java:102)
2012-07-09 14:40:36 [SEVERE] Exception in thread "bot2-output"
2012-07-09 14:40:36 [SEVERE] java.lang.RuntimeException: Trying to send message when no longer connected
2012-07-09 14:40:36 [SEVERE] at org.pircbotx.OutputThread.failIfNotConnected(OutputThread.java:90)
2012-07-09 14:40:36 [SEVERE] at org.pircbotx.OutputThread.run(OutputThread.java:102)
2012-07-09 14:40:36 [SEVERE] Exception in thread "bot2-output"
2012-07-09 14:40:36 [SEVERE] java.lang.RuntimeException: Trying to send message when no longer connected
2012-07-09 14:40:36 [SEVERE] at org.pircbotx.OutputThread.failIfNotConnected(OutputThread.java:90)
2012-07-09 14:40:36 [SEVERE] at org.pircbotx.OutputThread.run(OutputThread.java:102)

Input not sanitised from IRC when relayed to minecraft clients, leading to denial of service

So, this plugin just blindly sends privmsg's from irc to minecraft clients, without sanitisation for when the § character (0xa7) is at the end of a line.

Also, as the & character is replaced with 0x00a7, denial of service can be caused by 0x26 at the end of a line too.

This is a bigger issue because IRC is converting to UTF-8, and.. a lot of UTF-8 encoded characters end in 0xa7 -- here is an incomplete list of characters, which when UTF-8 encoded end in 0xa7: ç, ħ, ŧ, Ƨ, ǧ, ȧ, ɧ, ʧ, ˧, ̧,, ͧ, Χ, ϧ, Ч, ѧ, ҧ, ӧ, ԧ -- and there are probably plenty, PLENTY more, especially when 0x26 is taken into account. When §, &, or any of these aforementioned characters are at the end of a line, the minecraft server will crash when receiving them (therefore causing denial of service), and obviously this can be in PM as well as in a channel, and therefore in a PM it would be pretty well undetectable as to whom is causing denial of service.

private mssageing

it returns a failure.

Also, it would be nice if messanging players could work like channels

bad behavior on invalid nickname

from http://dev.bukkit.org/server-mods/irctransport/?comment=17:

There seems to be some random and unknown derp happening where a user's nickname gets changed to something that can't be used.

[SEVERE] Could not log into the IRC server: :irc.something.net 432 69SAAAA3G 69SAAAA29 :Erroneous Nickname

I don't know what's causing this. It has happened twice in many months so thankfully it doesn't happen often. Deleting IRCTransport.db fixes this.

Accented characters not working correctly.

From the forum.

I have a big issue with your plugin (it's big for me but probably not a problem for most of users).

When I type accentuated characters in IRC, minecraft users get nothing (the char is deleted), and when minecraft >users type accentuated characters IRC gets "?" .

Can you help me solve this please ?

quit messages

They are bland.

look into grabbing the reason a player left a server and making that the quit message. (socket error, user was flying, etc)

Ghost users

On user disconnect, the reconnection code reconnects the agent. This happens with 0.7

Server Pseudo-client

Add a Server pseudo client that would take privmsg bukkit console commands.
not sure, if it is possible
not sure, if it is possible, if started with --noconsole
But if it was possible it would be awesome to have that.

Add a /rawirc command.

For those who are advanced users of IRC, allow them to use /rawirc.
Basically allows them to send a raw IRC command, e.g. if they have an oline:
/rawirc oper blah pass

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.