1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
|
parse_line(Sock, [_,"376"|_]) ->
lists:foreach(fun(X) -> gen_tcp:send(Sock, "JOIN :" ++ X ++ "\r\n") end, ?channels);
parse_line(Sock, ["PING"|Rest]) ->
gen_tcp:send(Sock, "PONG " ++ Rest ++ "\r\n");
parse_line(Sock, [User, "JOIN", "#stairs_at_mycenaeOOC" | _]) ->
irc_send(Sock, "#stairs_at_mycenaeOOC", select_salutation(parse_user(User)));
parse_line(Sock, [User, "PRIVMSG", ?nickname, "&op", Channel | _]) ->
U = parse_user(User),
T = lists:member(U, ?oplist),
if
T ->
irc_mode(Sock, Channel, "+o", U),
irc_send(Sock, U, "Done.");
true ->
irc_send(Sock, U, "Unauthorised.")
end;
parse_line(Sock, [User, "PRIVMSG", ?nickname, "&deop", Channel | _]) ->
U = parse_user(User),
T = lists:member(U, ?oplist),
if
T ->
irc_mode(Sock, Channel, "-o", U),
irc_send(Sock, U, "Done.");
true ->
irc_send(Sock, U, "Unauthorised.")
end;
parse_line(Sock, [User, "PRIVMSG", Channel, "&op" | _]) ->
U = parse_user(User),
T = lists:member(U, ?oplist),
if
T ->
irc_mode(Sock, Channel, "+o", U),
irc_send(Sock, Channel, U ++ ": Done.");
true ->
irc_send(Sock, Channel, U ++ ": Unauthorised.")
end;
parse_line(Sock, [User, "PRIVMSG", Channel, "&deop" | _]) ->
U = parse_user(User),
T = lists:member(U, ?oplist),
if
T ->
irc_mode(Sock, Channel, "-o", U),
irc_send(Sock, Channel, U ++ ": Done.");
true ->
irc_send(Sock, Channel, U ++ ": Unauthorised.")
end;
parse_line(Sock, [User, "PRIVMSG", Channel, "&dibs" | _]) ->
irc_gen(Sock, "TOPIC", Channel, parse_user(User) ++ " has the stick!");
parse_line(Sock, [User, "PRIVMSG", Channel, "&pass", NewUser | _]) ->
irc_gen(Sock, "TOPIC", Channel, NewUser ++ " has the stick!"),
irc_send(Sock, Channel, parse_user(User) ++ " passes the stick to " ++ NewUser ++ ".");
parse_line(Sock, [User, "PRIVMSG", Channel, "&topic" | Message]) ->
irc_gen(Sock, "TOPIC", Channel, recombine(Message)),
irc_send(Sock, Channel, parse_user(User) ++ ": Done.");
parse_line(Sock, [User, "PRIVMSG", ?nickname, "&help", "roll" | _]) ->
irc_send(Sock, parse_user(User), "Simple. &roll <notation>, or &100.");
parse_line(Sock, [User, "PRIVMSG", ?nickname, "&help", "notation" | _]) ->
irc_send(Sock, parse_user(User), "Currently <number>d<number>.");
parse_line(Sock, [User, "PRIVMSG", ?nickname, "&help" | _]) ->
irc_send(Sock, parse_user(User), "Be more specific: '&help roll' or '&help notation'.");
parse_line(Sock, [User, "PRIVMSG", Channel, "&help", "roll" | _]) ->
irc_send(Sock, Channel, parse_user(User) ++ ": Simple. &roll <notation>.");
parse_line(Sock, [User, "PRIVMSG", Channel, "&help", "notation" | _]) ->
irc_send(Sock, Channel, parse_user(User) ++ ": Currently <number>d<number>.");
parse_line(Sock, [User, "PRIVMSG", Channel, "&help" | _]) ->
irc_send(Sock, Channel, parse_user(User) ++ ": Be more specific: '&help roll' or '&help notation'.");
parse_line(Sock, [User, "PRIVMSG", ?nickname, "&roll", N | _]) ->
irc_send(Sock, parse_user(User), makeroll(N));
parse_line(Sock, [User, "PRIVMSG", Channel, "&roll", N | _]) ->
irc_send(Sock, Channel, parse_user(User) ++ ": " ++ makeroll(N));
parse_line(Sock, [User, "PRIVMSG", ?nickname, "&100" | _]) ->
irc_send(Sock, parse_user(User), makeroll("d100"));
parse_line(Sock, [User, "PRIVMSG", Channel, "&100" | _]) ->
irc_send(Sock, Channel, parse_user(User) ++ ": " ++ makeroll("d100"));
parse_line(Sock, [User, "PRIVMSG", ?nickname, "&vs", N | _]) ->
irc_send(Sock, parse_user(User), makevs(N));
parse_line(Sock, [User, "PRIVMSG", Channel, "&vs", N | _]) ->
irc_send(Sock, Channel, parse_user(User) ++ ": " ++ makevs(N));
parse_line(Sock, [User, "PRIVMSG", ?nickname, "&coin" | _]) ->
irc_send(Sock, parse_user(User), makecoin());
parse_line(Sock, [User, "PRIVMSG", Channel, "&coin" | _]) ->
irc_send(Sock, Channel, parse_user(User) ++ ": " ++ makecoin());
parse_line(_, _) -> 0.
|