mirror of
https://github.com/deavmi/birchwood
synced 2024-09-20 15:02:53 +02:00
Merge branch 'master' into ircv3
This commit is contained in:
commit
246e3d1474
@ -71,23 +71,19 @@ public class Client : Thread
|
|||||||
//TODO: Do something here, tare downs
|
//TODO: Do something here, tare downs
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// TODO: Investigate
|
||||||
public ConnectionInfo getConnInfo()
|
public ConnectionInfo getConnInfo()
|
||||||
{
|
{
|
||||||
return connInfo;
|
return connInfo;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* User overridable handler functions below
|
|
||||||
*/
|
|
||||||
|
|
||||||
// TODO: comment
|
|
||||||
/**
|
/**
|
||||||
|
* Called on reception of a channel message
|
||||||
*
|
*
|
||||||
* Params:
|
* Params:
|
||||||
* fullMessage =
|
* fullMessage = the channel message in its entirety
|
||||||
* channel =
|
* channel = the channel
|
||||||
* msgBody =
|
* msgBody = the body of the message
|
||||||
*/
|
*/
|
||||||
public void onChannelMessage(Message fullMessage, string channel, string msgBody)
|
public void onChannelMessage(Message fullMessage, string channel, string msgBody)
|
||||||
{
|
{
|
||||||
@ -95,11 +91,13 @@ public class Client : Thread
|
|||||||
logger.log("Channel("~channel~"): "~msgBody);
|
logger.log("Channel("~channel~"): "~msgBody);
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: comment
|
|
||||||
/**
|
/**
|
||||||
|
* Called on reception of a direct message
|
||||||
*
|
*
|
||||||
* Params:
|
* Params:
|
||||||
* message =
|
* fullMessage = the direct message in its entirety
|
||||||
|
* nickname = the sender
|
||||||
|
* msgBody = the body of the message
|
||||||
*/
|
*/
|
||||||
public void onDirectMessage(Message fullMessage, string nickname, string msgBody)
|
public void onDirectMessage(Message fullMessage, string nickname, string msgBody)
|
||||||
{
|
{
|
||||||
@ -107,11 +105,11 @@ public class Client : Thread
|
|||||||
logger.log("DirectMessage("~nickname~"): "~msgBody);
|
logger.log("DirectMessage("~nickname~"): "~msgBody);
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: comment
|
|
||||||
/**
|
/**
|
||||||
|
* Called on generic commands
|
||||||
*
|
*
|
||||||
* Params:
|
* Params:
|
||||||
* commandReply =
|
* commandReply = the generic message
|
||||||
*/
|
*/
|
||||||
public void onGenericCommand(Message message)
|
public void onGenericCommand(Message message)
|
||||||
{
|
{
|
||||||
@ -119,11 +117,11 @@ public class Client : Thread
|
|||||||
logger.log("Generic("~message.getCommand()~", "~message.getFrom()~"): "~message.getParams());
|
logger.log("Generic("~message.getCommand()~", "~message.getFrom()~"): "~message.getParams());
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: comment
|
|
||||||
/**
|
/**
|
||||||
|
* Called on command replies
|
||||||
*
|
*
|
||||||
* Params:
|
* Params:
|
||||||
* commandReply =
|
* commandReply = the command's reply
|
||||||
*/
|
*/
|
||||||
public void onCommandReply(Message commandReply)
|
public void onCommandReply(Message commandReply)
|
||||||
{
|
{
|
||||||
@ -135,8 +133,6 @@ public class Client : Thread
|
|||||||
* User operations (request-response type)
|
* User operations (request-response type)
|
||||||
*/
|
*/
|
||||||
|
|
||||||
// TODO: Add joinChannels(strung[])
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Joins the requested channel
|
* Joins the requested channel
|
||||||
*
|
*
|
||||||
@ -168,6 +164,75 @@ public class Client : Thread
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Joins the requested channels
|
||||||
|
*
|
||||||
|
* Params:
|
||||||
|
* channels = the channels to join
|
||||||
|
* Throws:
|
||||||
|
* BirchwoodException on invalid channel name
|
||||||
|
*/
|
||||||
|
public void joinChannel(string[] channels)
|
||||||
|
{
|
||||||
|
/* If single channel */
|
||||||
|
if(channels.length == 1)
|
||||||
|
{
|
||||||
|
/* Join the channel */
|
||||||
|
joinChannel(channels[0]);
|
||||||
|
}
|
||||||
|
/* If multiple channels */
|
||||||
|
else if(channels.length > 1)
|
||||||
|
{
|
||||||
|
string channelLine = channels[0];
|
||||||
|
|
||||||
|
/* Ensure valid characters in first channel */
|
||||||
|
if(isValidText(channelLine))
|
||||||
|
{
|
||||||
|
//TODO: Add check for #
|
||||||
|
|
||||||
|
/* Append on a trailing `,` */
|
||||||
|
channelLine ~= ",";
|
||||||
|
|
||||||
|
for(ulong i = 1; i < channels.length; i++)
|
||||||
|
{
|
||||||
|
string currentChannel = channels[i];
|
||||||
|
|
||||||
|
/* Ensure the character channel is valid */
|
||||||
|
if(isValidText(currentChannel))
|
||||||
|
{
|
||||||
|
//TODO: Add check for #
|
||||||
|
|
||||||
|
if(i == channels.length-1)
|
||||||
|
{
|
||||||
|
channelLine~=currentChannel;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
channelLine~=currentChannel~",";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
throw new BirchwoodException(BirchwoodException.ErrorType.ILLEGAL_CHARACTERS);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Join multiple channels */
|
||||||
|
Message joinMessage = new Message("", "JOIN", channelLine);
|
||||||
|
sendMessage(joinMessage);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
throw new BirchwoodException(BirchwoodException.ErrorType.ILLEGAL_CHARACTERS);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/* If no channels provided at all (error) */
|
||||||
|
else
|
||||||
|
{
|
||||||
|
throw new BirchwoodException(BirchwoodException.ErrorType.EMPTY_PARAMS);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Parts from a list of channel(s) in one go
|
* Parts from a list of channel(s) in one go
|
||||||
*
|
*
|
||||||
@ -662,25 +727,6 @@ public class Client : Thread
|
|||||||
receiver.rq(message);
|
receiver.rq(message);
|
||||||
}
|
}
|
||||||
|
|
||||||
// /**
|
|
||||||
// * Sends a message to the server by enqueuing it on
|
|
||||||
// * the client-side send queue
|
|
||||||
// *
|
|
||||||
// * Params:
|
|
||||||
// * messageOut = the message to send
|
|
||||||
// */
|
|
||||||
// private void sendMessage(string messageOut)
|
|
||||||
// {
|
|
||||||
// // TODO: Do message splits here
|
|
||||||
|
|
||||||
|
|
||||||
// /* Encode the mesage */
|
|
||||||
// ubyte[] encodedMessage = encodeMessage(messageOut);
|
|
||||||
|
|
||||||
// /* Enqueue the message to the send queue */
|
|
||||||
// sender.sq(encodedMessage);
|
|
||||||
// }
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sends a message to the server by enqueuing it on
|
* Sends a message to the server by enqueuing it on
|
||||||
* the client-side send queue.
|
* the client-side send queue.
|
||||||
@ -930,9 +976,11 @@ public class Client : Thread
|
|||||||
client.joinChannel("#birchwood");
|
client.joinChannel("#birchwood");
|
||||||
// TODO: Add a joinChannels(string[])
|
// TODO: Add a joinChannels(string[])
|
||||||
client.joinChannel("#birchwood2");
|
client.joinChannel("#birchwood2");
|
||||||
client.joinChannel("#birchwoodLeave1");
|
|
||||||
client.joinChannel("#birchwoodLeave2");
|
client.joinChannel(["#birchwoodLeave1", "#birchwoodLeave2", "#birchwoodLeave3"]);
|
||||||
client.joinChannel("#birchwoodLeave3");
|
// client.joinChannel("#birchwoodLeave1");
|
||||||
|
// client.joinChannel("#birchwoodLeave2");
|
||||||
|
// client.joinChannel("#birchwoodLeave3");
|
||||||
|
|
||||||
Thread.sleep(dur!("seconds")(2));
|
Thread.sleep(dur!("seconds")(2));
|
||||||
client.command(new Message("", "NAMES", "")); // TODO: add names commdn
|
client.command(new Message("", "NAMES", "")); // TODO: add names commdn
|
||||||
|
@ -53,6 +53,13 @@ public final class ReceiverThread : Thread
|
|||||||
}
|
}
|
||||||
|
|
||||||
// TODO: Rename to `receiveQ`
|
// TODO: Rename to `receiveQ`
|
||||||
|
/**
|
||||||
|
* Enqueues the raw message into the receieve queue
|
||||||
|
* for eventual processing
|
||||||
|
*
|
||||||
|
* Params:
|
||||||
|
* encodedMessage = the message to enqueue
|
||||||
|
*/
|
||||||
public void rq(ubyte[] encodedMessage)
|
public void rq(ubyte[] encodedMessage)
|
||||||
{
|
{
|
||||||
/* Lock queue */
|
/* Lock queue */
|
||||||
|
@ -48,6 +48,13 @@ public final class SenderThread : Thread
|
|||||||
}
|
}
|
||||||
|
|
||||||
// TODO: Rename to `sendQ`
|
// TODO: Rename to `sendQ`
|
||||||
|
/**
|
||||||
|
* Enqueues the raw message into the send queue
|
||||||
|
* for eventual sending
|
||||||
|
*
|
||||||
|
* Params:
|
||||||
|
* encodedMessage = the message to enqueue
|
||||||
|
*/
|
||||||
public void sq(ubyte[] encodedMessage)
|
public void sq(ubyte[] encodedMessage)
|
||||||
{
|
{
|
||||||
/* Lock queue */
|
/* Lock queue */
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
module birchwood.protocol;
|
module birchwood.protocol;
|
||||||
|
|
||||||
public import birchwood.protocol.messages : Message;
|
public import birchwood.protocol.messages : Message;
|
||||||
|
public import birchwood.protocol.constants : ReplyType;
|
||||||
|
|
||||||
// TODO: Look how to neaten up (if any)
|
// TODO: Look how to neaten up (if any)
|
||||||
public import birchwood.protocol.formatting;
|
public import birchwood.protocol.formatting;
|
Loading…
Reference in New Issue
Block a user