mirror of
https://github.com/glest/glest-source.git
synced 2025-09-26 07:28:59 +02:00
- build fix for poor distros who have a hard time with libircclient (now we just include this small lib in the source tree) so no longer required as an external lib
This commit is contained in:
@@ -0,0 +1,157 @@
|
||||
/*
|
||||
* Copyright (C) 2009 Nathan Ollerenshaw chrome@stupendous.net
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU Lesser General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or (at your
|
||||
* option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
|
||||
* License for more details.
|
||||
*/
|
||||
|
||||
#import "IRCClientChannel.h"
|
||||
#import "IRCClientSession.h"
|
||||
#import "NSObject+DDExtensions.h"
|
||||
|
||||
@implementation IRCClientChannel
|
||||
|
||||
@synthesize delegate;
|
||||
@synthesize name;
|
||||
@synthesize encoding;
|
||||
@synthesize session;
|
||||
@synthesize topic;
|
||||
@synthesize modes;
|
||||
@synthesize names;
|
||||
|
||||
-(id)init
|
||||
{
|
||||
return [self initWithName:nil];
|
||||
}
|
||||
|
||||
-(id)initWithName:(NSString *)aName
|
||||
{
|
||||
if ((self = [super init])) {
|
||||
[self setName:aName];
|
||||
topic = [[NSString alloc] init];
|
||||
encoding = NSASCIIStringEncoding;
|
||||
}
|
||||
|
||||
return self;
|
||||
}
|
||||
|
||||
-(void)dealloc
|
||||
{
|
||||
[super dealloc];
|
||||
}
|
||||
|
||||
- (int)part
|
||||
{
|
||||
return irc_cmd_part([session session], [name cStringUsingEncoding:NSASCIIStringEncoding]);
|
||||
}
|
||||
|
||||
- (int)invite:(NSString *)nick
|
||||
{
|
||||
return irc_cmd_invite([session session], [nick cStringUsingEncoding:NSASCIIStringEncoding], [name cStringUsingEncoding:NSASCIIStringEncoding]);
|
||||
}
|
||||
|
||||
- (int)refreshNames
|
||||
{
|
||||
return irc_cmd_names([session session], [name cStringUsingEncoding:NSASCIIStringEncoding]);
|
||||
}
|
||||
|
||||
- (void)setTopic:(NSString *)aTopic
|
||||
{
|
||||
irc_cmd_topic([session session], [name cStringUsingEncoding:NSASCIIStringEncoding], [topic cStringUsingEncoding:encoding]);
|
||||
}
|
||||
|
||||
- (int)setMode:(NSString *)mode params:(NSString *)params
|
||||
{
|
||||
return irc_cmd_channel_mode([session session], [name cStringUsingEncoding:NSASCIIStringEncoding], [mode cStringUsingEncoding:NSASCIIStringEncoding]);
|
||||
}
|
||||
|
||||
- (int)message:(NSString *)message
|
||||
{
|
||||
return irc_cmd_msg([session session], [name cStringUsingEncoding:NSASCIIStringEncoding], [message cStringUsingEncoding:encoding]);
|
||||
}
|
||||
|
||||
- (int)action:(NSString *)action
|
||||
{
|
||||
return irc_cmd_me([session session], [name cStringUsingEncoding:NSASCIIStringEncoding], [action cStringUsingEncoding:encoding]);
|
||||
}
|
||||
|
||||
- (int)notice:(NSString *)notice
|
||||
{
|
||||
return irc_cmd_notice([session session], [name cStringUsingEncoding:NSASCIIStringEncoding], [notice cStringUsingEncoding:encoding]);
|
||||
}
|
||||
|
||||
- (int)kick:(NSString *)nick reason:(NSString *)reason
|
||||
{
|
||||
return irc_cmd_kick([session session], [nick cStringUsingEncoding:NSASCIIStringEncoding], [name cStringUsingEncoding:NSASCIIStringEncoding], [reason cStringUsingEncoding:encoding]);
|
||||
}
|
||||
|
||||
- (int)ctcpRequest:(NSString *)request
|
||||
{
|
||||
return irc_cmd_ctcp_request([session session], [name cStringUsingEncoding:NSASCIIStringEncoding], [request cStringUsingEncoding:encoding]);
|
||||
}
|
||||
|
||||
|
||||
// event handlers
|
||||
//
|
||||
// These farm events out to the delegate on the main thread.
|
||||
|
||||
- (void)onJoin:(NSString *)nick
|
||||
{
|
||||
if ([delegate respondsToSelector:@selector(onJoin:)])
|
||||
[[delegate dd_invokeOnMainThread] onJoin:nick];
|
||||
}
|
||||
|
||||
- (void)onPart:(NSString *)nick reason:(NSString *)reason
|
||||
{
|
||||
if ([delegate respondsToSelector:@selector(onPart:reason:)])
|
||||
[[delegate dd_invokeOnMainThread] onPart:nick reason:reason];
|
||||
}
|
||||
|
||||
- (void)onMode:(NSString *)mode params:(NSString *)params nick:(NSString *)nick
|
||||
{
|
||||
if ([delegate respondsToSelector:@selector(onMode:params:nick:)])
|
||||
[[delegate dd_invokeOnMainThread] onMode:mode params:params nick:nick];
|
||||
}
|
||||
|
||||
- (void)onTopic:(NSString *)aTopic nick:(NSString *)nick
|
||||
{
|
||||
[topic release];
|
||||
topic = [NSString stringWithString:aTopic];
|
||||
|
||||
if ([delegate respondsToSelector:@selector(onTopic:nick:)])
|
||||
[[delegate dd_invokeOnMainThread] onTopic:aTopic nick:nick];
|
||||
}
|
||||
|
||||
- (void)onKick:(NSString *)nick reason:(NSString *)reason byNick:(NSString *)byNick
|
||||
{
|
||||
if ([delegate respondsToSelector:@selector(onKick:reason:byNick:)])
|
||||
[[delegate dd_invokeOnMainThread] onKick:nick reason:reason byNick:byNick];
|
||||
}
|
||||
|
||||
- (void)onPrivmsg:(NSString *)message nick:(NSString *)nick
|
||||
{
|
||||
if ([delegate respondsToSelector:@selector(onPrivmsg:nick:)])
|
||||
[[delegate dd_invokeOnMainThread] onPrivmsg:message nick:nick];
|
||||
}
|
||||
|
||||
- (void)onNotice:(NSString *)notice nick:(NSString *)nick
|
||||
{
|
||||
if ([delegate respondsToSelector:@selector(onNotice:nick:)])
|
||||
[[delegate dd_invokeOnMainThread] onNotice:notice nick:nick];
|
||||
}
|
||||
|
||||
- (void)onAction:(NSString *)action nick:(NSString *)nick
|
||||
{
|
||||
if ([delegate respondsToSelector:@selector(onAction:nick:)])
|
||||
[[delegate dd_invokeOnMainThread] onAction:action nick:nick];
|
||||
}
|
||||
|
||||
|
||||
@end
|
Reference in New Issue
Block a user