mirror of
https://github.com/anope/anope.git
synced 2026-06-17 05:44:47 +02:00
Compare commits
108 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 9ab97ae21a | |||
| 246a2c664b | |||
| ad4180e2d6 | |||
| 01906d0b74 | |||
| 005d3f9558 | |||
| a895077b54 | |||
| 7e10fca23b | |||
| b2d258328a | |||
| ef5c945e0b | |||
| 1e0bfbd15a | |||
| cb73ab9d23 | |||
| ac90a6935a | |||
| 766fe138e4 | |||
| dafccc1821 | |||
| ace25983a4 | |||
| bb7b8e27ee | |||
| 72fa53c20e | |||
| eb0c255fad | |||
| 01994c1ba1 | |||
| ec7bc8dd41 | |||
| 6ee50f852e | |||
| 6cd3b56805 | |||
| 27ad395a56 | |||
| c4247b71b2 | |||
| 5a51984db1 | |||
| b75abf9ba3 | |||
| f39c428ac5 | |||
| 60f0b2ff87 | |||
| 6242a60134 | |||
| dd198b89c0 | |||
| 2cfcf3c512 | |||
| 29bd5a7daa | |||
| 975b0cd374 | |||
| a0ebea2049 | |||
| cc8e88aec8 | |||
| 11d47efc7a | |||
| c7154edb4d | |||
| 5559f91fae | |||
| 3dd71f207d | |||
| 7776fb8548 | |||
| 7954542a86 | |||
| a1c45be517 | |||
| bab5a37970 | |||
| da1162f770 | |||
| abc8b4aa4e | |||
| 60c7b5b10f | |||
| a939b821a7 | |||
| 14150647bc | |||
| 1b265bf291 | |||
| ac279a1637 | |||
| 6ed06539be | |||
| b5242e3be0 | |||
| 84ac00e953 | |||
| 822e75b501 | |||
| e2c6825cd2 | |||
| fdcc5b5ee1 | |||
| 4f438917f1 | |||
| 250aecb683 | |||
| 4ca2b60f91 | |||
| e305db41ce | |||
| 6ad63349c1 | |||
| d0646a37dc | |||
| b80e0cb996 | |||
| 5b65c9ce87 | |||
| f07f92e30d | |||
| 594c161622 | |||
| 0570b57a99 | |||
| 727bcf1fde | |||
| 699bee06c3 | |||
| ab337e8de0 | |||
| 381f74a26e | |||
| 471043c5c4 | |||
| 29c8702c35 | |||
| 0b82d74262 | |||
| 5cb5dc197a | |||
| 664ca1bbf2 | |||
| efa7c81ca8 | |||
| 2874513e0a | |||
| 51d9b5056d | |||
| 3c219be3c7 | |||
| cc8f2117f8 | |||
| 230f9e9a35 | |||
| d468567a12 | |||
| d3d36ff73c | |||
| 4897cdf60f | |||
| ef8db98e5c | |||
| d9e57f5651 | |||
| e50c6a5efb | |||
| a331432030 | |||
| ac338268c9 | |||
| 1354bf8815 | |||
| ed1469d3b1 | |||
| 6b8277f152 | |||
| 2d69fea6d2 | |||
| af916f28f4 | |||
| 7c2db57965 | |||
| b13836f3cf | |||
| 2bd483c273 | |||
| 217a375517 | |||
| 97a42e4f7d | |||
| 113237964d | |||
| a3afe44ca6 | |||
| b60b06ad76 | |||
| 902158671a | |||
| 1873d67093 | |||
| 2629a580a1 | |||
| cfc81d5aca | |||
| 72ae5cacd4 |
@@ -1,5 +1,54 @@
|
||||
Anope Version 1.8 SVN
|
||||
Anope Version 1.8.4
|
||||
-------------------
|
||||
3/10 A Added support for tracking permanent channels [ #00]
|
||||
3/24 A Added logging of deleting and clearing XOP access lists [ #00]
|
||||
2/9 F Fixed marking halfops as deopped, stops unsetting modes by them [#1136]
|
||||
2/18 F Fixed listing unconfirmed nicks with suspended nicks to SA+ [ #00]
|
||||
3/2 F Fixed a bug that could cause access entries to disappear [ #00]
|
||||
3/13 F Fixed maximum hostname checking in HS SET and HS REQUEST [#1138]
|
||||
3/13 F Fixed deleting force dropped nicks from the hs_waiting list [#1139]
|
||||
3/13 F Fixed backing up 3rd party module databases more than once a day [#1140]
|
||||
3/16 F Fixed os_info to display syntax errors if no command is entered [ #00]
|
||||
3/29 F Fixed defcon to only apply its mode parameters when it's on [#1146]
|
||||
3/29 F Fixed numbering of memos when saved in SQL [#1149]
|
||||
3/30 F Fixed module demos to work correctly on TS6 IRCDs [ #00]
|
||||
4/3 F Fixed saving databases in readonly mode when using anoperc [ #00]
|
||||
|
||||
Anope Version 1.8.3
|
||||
-------------------
|
||||
Provided by Anope Dev. <team@anope.org> - 2009
|
||||
10/05 A Added InspIRCd 1.2 support. [ #00]
|
||||
07/31 F Fixed anope sending umode change using channels' syntax. [ #00]
|
||||
07/31 F Fixed TS6 UUID issue while parsing modechanges. [ #00]
|
||||
08/01 F Fixed several memory leaks in HostServ. [ #00]
|
||||
08/01 F Fixed several memory leaks in HostServ. [ #00]
|
||||
08/03 F Fixed TS6 SID issue when introducing new servers. [ #00]
|
||||
08/19 F Fixed NS SASET displaying wrong language. [#1094]
|
||||
08/24 F Fixed entry_match() failing when given no username. [ #00]
|
||||
08/27 F Fixed NS SUSPEND not being shown to services opers. [#1099]
|
||||
08/27 F Fixed NS UNSUSPEND not being shown to services opers. [#1100]
|
||||
08/27 F Fixed services sending no or wrong help to opers. [#1102]
|
||||
08/27 F Fixed services sending no or wrong help to opers. [#1103]
|
||||
08/27 F Fixed services sending no or wrong help to opers. [#1104]
|
||||
08/29 F Fixed defcon failing to set and remove modes. [#1101]
|
||||
08/30 F Fixed MLOCK superseding DEFCON mode lock. [ #00]
|
||||
09/09 F Fixed number of TS6 compatibility issues. [#1096]
|
||||
10/06 F Fixed CS FORBID not clearing excepts & invites. [#1097]
|
||||
11/25 F Fixed a number of major XOP related issues. [ #00]
|
||||
11/25 F Fixed a bug in CLEAR OPS causing incorrect mode removal. [#1114]
|
||||
12/01 F Fixed tracking of users host when they disable their vhost [#1106]
|
||||
12/20 F Fixed nickcores access list being loaded from SQL with RDB [ #00]
|
||||
1/15 F Fixed BotServ from kicking and banning ULined clients [#1135]
|
||||
|
||||
Provided by Han` <Han@mefalcon.org> - 2009
|
||||
07/28 F Updated german language file. [ #00]
|
||||
07/28 F Added german language support to hs_request.c. [ #00]
|
||||
|
||||
Provided by Yusuf Kurekci <ysfm.20@gmail.com> - 2009
|
||||
08/11 F Updated Turkish language file. [ #00]
|
||||
|
||||
Provided by Christopher N. <saka@epiknet.org> - 2009
|
||||
9/20 F Updated French language file. [ #00]
|
||||
|
||||
Anope Version 1.8.2
|
||||
-------------------
|
||||
|
||||
+16
-2
@@ -1,5 +1,19 @@
|
||||
Anope Version 1.8 SVN
|
||||
---------------------
|
||||
Anope Version 1.8.4
|
||||
-------------------
|
||||
** ADDED CONFIGURATION DIRECTIVES **
|
||||
|
||||
** MODIFIED CONFIGURATION DIRECTIVES **
|
||||
|
||||
** DELETED CONFIGURATION DIRECTIVES **
|
||||
|
||||
|
||||
Anope Version 1.8.3
|
||||
-------------------
|
||||
** ADDED CONFIGURATION DIRECTIVES **
|
||||
inspircd12 - IRCDModule
|
||||
** MODIFIED CONFIGURATION DIRECTIVES **
|
||||
|
||||
** DELETED CONFIGURATION DIRECTIVES **
|
||||
|
||||
Anope Version 1.8.2
|
||||
-------------------
|
||||
|
||||
+20
-2
@@ -1,5 +1,23 @@
|
||||
Anope Version 1.8 SVN
|
||||
---------------------
|
||||
Anope Version 1.8.4
|
||||
-------------------
|
||||
*** New Strings:
|
||||
|
||||
*** Mod Strings:
|
||||
NICK_HELP_LIST
|
||||
|
||||
*** Del Strings:
|
||||
|
||||
|
||||
Anope Version 1.8.3
|
||||
-------------------
|
||||
*** New Strings:
|
||||
|
||||
*** Mod Strings:
|
||||
NEWS_HELP_LOGON
|
||||
NEWS_HELP_OPER
|
||||
NEWS_HELP_RANDOM
|
||||
|
||||
*** Del Strings:
|
||||
|
||||
Anope Version 1.8.2
|
||||
-------------------
|
||||
|
||||
+7
-2
@@ -1,5 +1,10 @@
|
||||
Anope Version 1.8 SVN
|
||||
---------------------
|
||||
Anope Version 1.8.4
|
||||
-------------------
|
||||
- NONE
|
||||
|
||||
Anope Version 1.8.3
|
||||
-------------------
|
||||
ALTER TABLE `anope_ns_access` DROP INDEX `display` ;
|
||||
|
||||
Anope Version 1.8.2
|
||||
-------------------
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
#
|
||||
# Configuration script for Services.
|
||||
#
|
||||
# Anope (c) 2003-2007 Anope team
|
||||
# Anope (c) 2003-2010 Anope team
|
||||
# Contact us at team@anope.org
|
||||
#
|
||||
# This program is free but copyrighted software; see the file COPYING for
|
||||
|
||||
+2
-2
@@ -1,6 +1,6 @@
|
||||
# Makefile for Anope.
|
||||
#
|
||||
# (C) 2003-2009 Anope Team
|
||||
# (C) 2003-2010 Anope Team
|
||||
# Contact us at team@anope.org
|
||||
#
|
||||
# This program is free but copyrighted software; see the file COPYING for
|
||||
@@ -44,7 +44,7 @@ spotless:
|
||||
-@erase include\language.h include\version.h *.manifest *~ anope.exe version.sh.exe *.obj anopesmtp.exe
|
||||
-@echo --
|
||||
-@echo NOTICE:
|
||||
-@echo You will need to run cscript /nologo install.js again
|
||||
-@echo You will need to run config.bat again
|
||||
-@echo --
|
||||
|
||||
mypasql:
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
dnl autoconf.in for Services.
|
||||
dnl
|
||||
dnl Anope (c) 2003-2007 Anope team
|
||||
dnl Anope (c) 2003-2010 Anope team
|
||||
dnl Contact us at team@anope.org
|
||||
|
||||
dnl This program is free but copyrighted software; see the file COPYING for
|
||||
|
||||
+15
-2
@@ -80,6 +80,7 @@
|
||||
# DreamForge 4.6.7 - "dreamforge"
|
||||
# Hybrid IRCd 7.0 [experimental] - "hybrid"
|
||||
# InspIRCd 1.1 [beta 8 or later] - "inspircd11"
|
||||
# InspIRCd 1.2 [RC3 or later] - "inspircd12"
|
||||
# Plexus 3.0 [or later] - "plexus3"
|
||||
# Plexus 2.0 [or later] - "plexus2"
|
||||
# PTLink 6.15.0 [experimental] - "ptlink"
|
||||
@@ -347,9 +348,19 @@ NetworkName "LocalNet"
|
||||
|
||||
# Numeric [OPTIONAL]
|
||||
# Many ircd identify themselves with a Numeric ID when using this option
|
||||
# consult your ircds documentation before using this
|
||||
# consult your ircds documentation before using this.
|
||||
#
|
||||
# This option is REQUIRED when linking to InspIRCd 1.2. Then this should
|
||||
# contain the services SID and must be in the following form:
|
||||
# [0-9][A-Z0-9][A-Z0-9]
|
||||
# An example is shown below.
|
||||
|
||||
#Numeric "64"
|
||||
|
||||
# InspIRCd 1.2 compliant:
|
||||
|
||||
#Numeric "3AX"
|
||||
|
||||
# NickLen [RECOMMENDED]
|
||||
# Set this to the maximum allowed nick length on your network. Anope does
|
||||
# not support values larger than 31, so setting them makes no sense. Be
|
||||
@@ -611,13 +622,15 @@ UnRestrictSAdmin
|
||||
# can set channel modes and we will not attempt to take them from them
|
||||
# WARNING: do not put your user servers in this option
|
||||
|
||||
UlineServers "stats.your.network proxy.your.network"
|
||||
UlineServers "stats.your.network"
|
||||
|
||||
# UseTS6 [OPTIONAL]
|
||||
#
|
||||
# Modern hybrid ircd like Ratbox 2.0.x support a protocol called TS6.
|
||||
# However this protocol is optional thus our default support is for without
|
||||
# TS6, if you want to take advantage of TS6, enable this option.
|
||||
#
|
||||
# This option is REQUIRED when linking to InspIRCd 1.2.
|
||||
|
||||
#UseTS6
|
||||
|
||||
|
||||
+1
-2
@@ -226,8 +226,7 @@ CREATE TABLE anope_ns_access (
|
||||
display varchar(255) NOT NULL default '',
|
||||
access text NOT NULL,
|
||||
active tinyint(1) NOT NULL default '1',
|
||||
PRIMARY KEY (na_id),
|
||||
UNIQUE KEY display (display)
|
||||
PRIMARY KEY (na_id)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
|
||||
|
||||
-- --------------------------------------------------------
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
Reported Bugs from Bugzilla: http://bugs.anope.org/
|
||||
Reported Bugs from Tracker: http://bugs.anope.org/
|
||||
---------------------------------------------------
|
||||
|
||||
|
||||
|
||||
+22
-6
@@ -73,7 +73,8 @@ Note: You should also read the README and FAQ files!
|
||||
section 1. There are however a few specific guidelines:
|
||||
|
||||
* IMPORTANT: Back up your old databases!
|
||||
* If you are upgrading to a new major release, ALWAYS restart a
|
||||
* Check Changes.conf for the new version for small config changes.
|
||||
* If you are upgrading to a new major release, create a
|
||||
fresh configuration file from example.conf.
|
||||
|
||||
3) Setting up the IRCd
|
||||
@@ -115,21 +116,34 @@ Note: You should also read the README and FAQ files!
|
||||
Don't forget to /rehash your IRCd to apply changes.
|
||||
|
||||
A new trend in ircd configuration is popping all over the place, good
|
||||
examples are the latest Hybrid, Unreal and Bahamut, which use a more
|
||||
examples are the latest Hybrid, Unreal, Bahamut & InspIRCd, which use a more
|
||||
"readable" form of configuration. For those, use something like:
|
||||
|
||||
|
||||
UnrealIRCd
|
||||
|
||||
link services.localhost.net
|
||||
{
|
||||
username *;
|
||||
hostname localhost;
|
||||
bind-ip *;
|
||||
port 6667;
|
||||
port 7000;
|
||||
hub *;
|
||||
password-connect "mypass";
|
||||
password-receive "mypass";
|
||||
class servers;
|
||||
};
|
||||
|
||||
InspIRCd
|
||||
|
||||
<link name="services.localhost.net"
|
||||
ipaddr="127.0.0.1"
|
||||
port="7000"
|
||||
allowmask="127.0.0.0/8"
|
||||
sendpass="mypass"
|
||||
recvpass="mypass">
|
||||
|
||||
|
||||
Note that this block-style configuration files differ heavily, depending
|
||||
on the IRCd. Consult the interactive link maker (link is below) for more
|
||||
details on the exact configuration used by your IRCd.
|
||||
@@ -137,7 +151,9 @@ Note: You should also read the README and FAQ files!
|
||||
If you're unable to get a link with your IRCd after reading this section,
|
||||
you might try the interactive link maker, which is located at:
|
||||
|
||||
http://anope.org/ilm.php
|
||||
http://www.anope.org/ilm.php
|
||||
|
||||
Or finally, contact your IRCd Support Community to seek advice.
|
||||
|
||||
4) Starting Anope
|
||||
|
||||
@@ -154,8 +170,8 @@ Note: You should also read the README and FAQ files!
|
||||
to launch Anope with ./services -debug -nofork to see any errors that it
|
||||
encounters, and try to correct them.
|
||||
|
||||
If you need help to solve errors, feel free to subscribe to the Anope
|
||||
mailing list and ask there. See the README file for details.
|
||||
If you need help to solve errors, feel free to visit us on IRC at
|
||||
irc.anope.org #anope and ask there. See the README file for further details.
|
||||
|
||||
5) Setting up a crontab
|
||||
|
||||
|
||||
@@ -15,45 +15,11 @@ How To Add IRCd Support
|
||||
|
||||
A) Make a copy of the .c and .h file of the IRCd that matches the ircd
|
||||
that you are attempting to add support for best.
|
||||
B) Make a backup copy of include/services.h, include/sysconf.h.in
|
||||
C) Make a backup copy of Config and configure.in
|
||||
|
||||
First step in this process is to rename the .c and .h file after the IRCd
|
||||
that you are going to be adding support for. Its recommended that you come
|
||||
up with a name that is clear and easy to understand.
|
||||
|
||||
Now that you have the files that you will need to create your own ircd
|
||||
support, starting with Config. This file is a shell script file; scroll
|
||||
down until you find the list of ircs for the user to select. Indicate
|
||||
the based ircd version which is supported such as a series 1.x or 2.2.x,
|
||||
placing in the comment side an exact version that the support is for or
|
||||
"experimental" if you are not the ircd developer. The next step is to
|
||||
decide how the IRCd will be defined, following the existing examples edit
|
||||
'IRCTYPE_DEF="IRC_RATBOX"' to be the descriptive define for your ircd.
|
||||
|
||||
With the Config file ready to go, edit configure.in and find in there the
|
||||
reference to --with-ircd. You should see the various other ircds, and
|
||||
you will want to add yours in there using the same IRC_ name you came up
|
||||
with above. Important in this step is to make sure that you set the
|
||||
IRCDFILE to the name of the .c file you set in step 1. Once you have the
|
||||
configure.in created you can remove the old configure and at the command
|
||||
prompt type "autconf"; this will generate the new configure file.
|
||||
|
||||
Getting close to actually modify code. Open sysconf.h.in and add two
|
||||
lines for your given ircd, which is similar to this:
|
||||
|
||||
/* "First IRCD type" */
|
||||
#undef IRC_RATBOX
|
||||
|
||||
Open services.h and add a line with the rest of the ircd include files to
|
||||
match the name of the .h file you set in step 1.
|
||||
|
||||
#include "ratbox.h"
|
||||
|
||||
Taking the .c and .h file open them and replace the #ifdef IRC_* with the
|
||||
IRC_ name you set in step two. Ensure that the code comments at the top
|
||||
of the file match the ircd that the code will be for.
|
||||
|
||||
You are now ready to start getting into the code.
|
||||
|
||||
2) Modifying the Header File
|
||||
@@ -65,28 +31,10 @@ How To Add IRCd Support
|
||||
|
||||
Open the .h file and find the section of code with
|
||||
|
||||
#define PROTECT_SET_MODE "+"
|
||||
#define PROTECT_UNSET_MODE "-"
|
||||
#define CS_CMD_PROTECT "PROTECT"
|
||||
#define CS_CMD_DEPROTECT "DEPROTECT"
|
||||
#define FANT_PROTECT_ADD "!protect"
|
||||
#define FANT_PROTECT_DEL "!deprotect"
|
||||
#define LEVEL_PROTECT_WORD "AUTOPROTECT"
|
||||
#define LEVELINFO_PROTECT_WORD "PROTECT"
|
||||
#define LEVELINFO_PROTECTME_WORD "PROTECTME"
|
||||
#define UMODE_a 0x00000001
|
||||
#define UMODE_b 0x00000002
|
||||
|
||||
If the ircd supports a protective/admin (not owner) mode, set the
|
||||
PROTECT_SET_MODE and PROTECT_UNSET_MODE to be that mode. On most ircds
|
||||
it's usermode "a" so you will be setting it to "+a" and "-a". The next
|
||||
two are based more on what this mode is called. When you message ChanServ
|
||||
to get this mode, this is the command you will be using. After this are
|
||||
the fantasy commands which can be used in channel to get these modes. The
|
||||
next three relate to the ACCESS LEVEL list system. Again these are the
|
||||
words to gain these levels in the ACCESS LEVEL system. If your ircd does
|
||||
not have these functions, leave them at what ever value is currently set;
|
||||
the core code will ignore the request of the user.
|
||||
|
||||
Now that this is set, you can define the MODES. All user modes are stored
|
||||
This is where you define the MODES. All user modes are stored
|
||||
with UMODE_ followed by a letter matching the modes case; be careful to
|
||||
use the correct case as this will make it clear when you setup MODES in
|
||||
the .c in a few. Use hex values for the modes so starting at 0x00000001
|
||||
@@ -101,7 +49,10 @@ How To Add IRCd Support
|
||||
|
||||
Finally we come to DEFAULT_MLOCK; this is the mode that services will set
|
||||
by default on channels when they are registered. In general you want this
|
||||
to be what is acceptable by the ircd; in most cases this is "+nt"
|
||||
to be what is acceptable by the ircd; in most cases this is "+ntr". This is
|
||||
expressed by:
|
||||
|
||||
#define DEFAULT_MLOCK CMODE_n | CMODE_t | CMODE_r
|
||||
|
||||
3) The Code
|
||||
|
||||
@@ -113,33 +64,6 @@ How To Add IRCd Support
|
||||
|
||||
The first bit of code you will face is:
|
||||
|
||||
const char version_protocol[] = "Ratbox IRCD";
|
||||
|
||||
This the protocol name which will appear in various places; especially
|
||||
when you do -version at the command prompt, this is where you state the
|
||||
server name. The version is not always needed unless you are showing that
|
||||
the support is for one branch of a ircd family, such as Unreal 3.1 and
|
||||
Unreal 3.2.
|
||||
|
||||
Once you have decided on this little piece of code, you will come to
|
||||
flood mode characters being used for setting and removing. If your IRCd
|
||||
does not support flood modes, you can just use ""; we will be setting if
|
||||
your IRCD supports flooding or not in a little bit.
|
||||
|
||||
const char flood_mode_char_set[] = "+f";
|
||||
const char flood_mode_char_remove[] = "-f";
|
||||
|
||||
The next task that you will face is setting whether the IRCD sends time
|
||||
stamps on modes but does not tell us that it will do so. If it does, set
|
||||
UseTSMODE to 1; if it does not set it to be 0. If you're not sure refer
|
||||
to your IRCd's documentation on how MODE is sent.
|
||||
|
||||
int UseTSMODE = 0;
|
||||
|
||||
Now you've come to the part where you setup your ircd. There are two
|
||||
structs which hold this information; This allows you to quickly setup
|
||||
your specific ircd.
|
||||
|
||||
IRCDVar ircd[] = { }
|
||||
|
||||
This struct contains your basic IRCd functions. Your base source file has
|
||||
@@ -273,172 +197,176 @@ How To Add IRCd Support
|
||||
a mode to be set on registration, you should
|
||||
set this to NULL.
|
||||
|
||||
32) Mode on Nick Unregister: What mode to set give users when they cancel
|
||||
32) Mode on Root ID: What modes to set on services roots when they identify
|
||||
|
||||
33) Mode on Admin ID: What modes to set on services admins when they identify
|
||||
|
||||
34) Mode on Oper ID: What modes to set on services opers when they identify
|
||||
|
||||
35) Mode on Nick Unregister: What mode to set give users when they cancel
|
||||
their registration with NickServ. If your
|
||||
IRCd doesn't set a mode for registered users
|
||||
you should set this to NULL.
|
||||
|
||||
33) Mode on Nick Change: What mode to give users when they change their
|
||||
36) Mode on Nick Change: What mode to give users when they change their
|
||||
nick. If your ircd doesn't set a mode, you
|
||||
should set this to NULL.
|
||||
|
||||
34) SGLINE: Does the IRCd support realname (geocs) bans? Use 1 for yes,
|
||||
37) SGLINE: Does the IRCd support realname (geocs) bans? Use 1 for yes,
|
||||
0 for no.
|
||||
|
||||
35) SQLINE: Does the IRCd support nick bans? Use 1 for yes, 0 for no.
|
||||
38) SQLINE: Does the IRCd support nick bans? Use 1 for yes, 0 for no.
|
||||
|
||||
36) SZLINE: Does the IRCd support SZLINES? Use 1 for yes, 0 for no.
|
||||
39) SZLINE: Does the IRCd support SZLINES? Use 1 for yes, 0 for no.
|
||||
|
||||
37) HALFOP: Is channel mode +h for halfop supported by the IRCd? Use 1 for
|
||||
40) HALFOP: Is channel mode +h for halfop supported by the IRCd? Use 1 for
|
||||
yes, 0 for no.
|
||||
|
||||
38) Number of Server Args: When an IRCd connects, this is the number of
|
||||
41) Number of Server Args: When an IRCd connects, this is the number of
|
||||
parameters that are passed.
|
||||
|
||||
39) Join to Set: Services must join a channel to set any modes on that
|
||||
42) Join to Set: Services must join a channel to set any modes on that
|
||||
channel. Use 1 for yes, 0 for no.
|
||||
|
||||
40) Join to Message: Services must join a channel to send any message to
|
||||
43) Join to Message: Services must join a channel to send any message to
|
||||
that channel (cannot override +n). Use 1 for yes,
|
||||
0 for no.
|
||||
|
||||
41) Exceptions: Support for channel exceptions (mode +e). Use 1 for yes,
|
||||
44) Exceptions: Support for channel exceptions (mode +e). Use 1 for yes,
|
||||
0 for no.
|
||||
|
||||
42) TS Topic Forward: Some IRCd's (like UnrealIRCd) like their topic TS
|
||||
45) TS Topic Forward: Some IRCd's (like UnrealIRCd) like their topic TS
|
||||
set forward by +1. Use 1 for yes, 0 for no.
|
||||
|
||||
43) TS Topic Backward: Some IRCd's (mainly older DreamForge-like ones)
|
||||
46) TS Topic Backward: Some IRCd's (mainly older DreamForge-like ones)
|
||||
like their topic TS set back by -1. Use 1 for yes,
|
||||
0 for no.
|
||||
|
||||
44) Protected Umode: UMODE_ define that defines the protected usermod.
|
||||
47) Protected Umode: UMODE_ define that defines the protected usermod.
|
||||
Use 0 for no support, or enter the UMODE_ define.
|
||||
|
||||
45) Admin: Support for channel admins (Mainly used by UltimateIRCd). Use
|
||||
48) Admin: Support for channel admins (Mainly used by UltimateIRCd). Use
|
||||
1 for yes, 0 for no.
|
||||
|
||||
46) SQline Channels: The IRCd's supports banning channel names via
|
||||
49) SQline Channels: The IRCd's supports banning channel names via
|
||||
SQLINES. Use 1 for yes, 0 for no.
|
||||
|
||||
47) Quit On Kill: When we (SVS)KILL a user, does the IRCd send back a
|
||||
50) Quit On Kill: When we (SVS)KILL a user, does the IRCd send back a
|
||||
QUIT message for that user? Use 1 for yes, 0 for no.
|
||||
|
||||
48) SVSMODE -b: We can use SVSMODE to unban hosts from a channel. Use
|
||||
51) SVSMODE -b: We can use SVSMODE to unban hosts from a channel. Use
|
||||
1 for yes, 0 for no.
|
||||
|
||||
49) Protect: Support for channel protect (mode +a, mainly being used by
|
||||
52) Protect: Support for channel protect (mode +a, mainly being used by
|
||||
UnrealIRCd and ViagraIRCd). Use 1 for yes, 0 for no.
|
||||
|
||||
50) Reverse: We can do a reverse check when unbanning. For use with
|
||||
53) Reverse: We can do a reverse check when unbanning. For use with
|
||||
DreamForge based IRCd's. Use 1 for yes, 0 for no.
|
||||
|
||||
51) Register Channels: Supports sending a channelmode for registered
|
||||
54) Register Channels: Supports sending a channelmode for registered
|
||||
channels. Use 1 for yes, 0 for no.
|
||||
|
||||
52) Registered Mode: Channelmode to set on registered channels, see the
|
||||
55) Registered Mode: Channelmode to set on registered channels, see the
|
||||
option above. Use 1 for yes, 0 for no.
|
||||
|
||||
53) vIdent: Support for including a user's ident in their vHost. Use
|
||||
56) vIdent: Support for including a user's ident in their vHost. Use
|
||||
1 for yes, 0 for no.
|
||||
|
||||
54) SVSHOLD: Support for temporarily 'holding' a nick, instead of using
|
||||
57) SVSHOLD: Support for temporarily 'holding' a nick, instead of using
|
||||
a nick enforcer client. Use 1 for yes, 0 for no.
|
||||
|
||||
55) TS on MODE: We need to send a timestamp when modes are being changed.
|
||||
58) TS on MODE: We need to send a timestamp when modes are being changed.
|
||||
Use 1 for yes, 0 for no.
|
||||
|
||||
56) NICKIP: The IP address of new users is being sent along with their
|
||||
59) NICKIP: The IP address of new users is being sent along with their
|
||||
hostname when new users are being introduced on the network.
|
||||
Use 1 for yes, 0 for no.
|
||||
|
||||
57) Umode: We can use OperServ to change a user's mode. Use 1 for yes,
|
||||
60) Omode: We can use OperServ to change a user's mode. Use 1 for yes,
|
||||
0 for no.
|
||||
|
||||
58) O:LINE: We can use OperServ to give some user a temporary O:LINE.
|
||||
Use 1 for yes, 0 for no.
|
||||
|
||||
59) Vhost On Nick: On NICK the IRCd sends the VHOST. Use 1 for yes,
|
||||
61) Umode: We can use OperServ to change a user's mode. Use 1 for yes,
|
||||
0 for no.
|
||||
|
||||
62) Vhost On Nick: On NICK the IRCd sends the VHOST. Use 1 for yes,
|
||||
0 for no.
|
||||
|
||||
60) Change Realname: Change real name. Use 1 for yes, 0 for no.
|
||||
63) Change Realname: Change real name. Use 1 for yes, 0 for no.
|
||||
|
||||
61) Extra Help: If the IRCd has more help for functions in ChanServ than
|
||||
the default help, you should put the language string
|
||||
identifier here. Use 0 for no extra help.
|
||||
64) No Knock: CMODE_ that defines NO KNOCK. Use 0 for no support.
|
||||
|
||||
62) No Knock: CMODE_ that defines NO KNOCK. Use 0 for no support.
|
||||
65) Admin Only: CMODE_ that defines Admin Only. Use 0 for no support.
|
||||
|
||||
63) Admin Only: CMODE_ that defines Admin Only. Use 0 for no support.
|
||||
66) Default MLock: Default channelmodes for MLOCK. Use 0 for no modes.
|
||||
|
||||
64) Default MLock: Default channelmodes for MLOCK. Use 0 for no modes.
|
||||
|
||||
65) Vhost Umode: UMODE_ that indicates if the user currently has a vHost.
|
||||
67) Vhost Umode: UMODE_ that indicates if the user currently has a vHost.
|
||||
Use 0 for no support.
|
||||
|
||||
66) Flood Mode: The IRCd has a channelmode for blocking floods. Use 1 for
|
||||
68) Flood Mode: The IRCd has a channelmode for blocking floods. Use 1 for
|
||||
yes, 0 for no.
|
||||
|
||||
67) Link Mode: The IRCd has a channelmode for linking a channel to some
|
||||
69) Link Mode: The IRCd has a channelmode for linking a channel to some
|
||||
other channel. Use 1 for yes, 0 for no.
|
||||
|
||||
68) CMode F: CMODE_ that defines flood mode. Use 0 for no support.
|
||||
70) CMode F: CMODE_ that defines flood mode. Use 0 for no support.
|
||||
|
||||
69) CMode L: CMODE_ that defines link mode. Use 0 for no support.
|
||||
71) CMode L: CMODE_ that defines link mode. Use 0 for no support.
|
||||
|
||||
70) Check Nick ID: Should we check if a user should remain identified when
|
||||
72) Check Nick ID: Should we check if a user should remain identified when
|
||||
changing their nick? This is for IRCd's that remove
|
||||
their registered-user mode when someone changes their
|
||||
nick (like Bahamut does).
|
||||
Use 1 for yes, 0 for no.
|
||||
|
||||
71) No Knock Requires +i: Does the No Knock channel mode require invite
|
||||
73) No Knock Requires +i: Does the No Knock channel mode require invite
|
||||
only channels? Use 1 for yes, 0 for no.
|
||||
|
||||
72) Chan Modes: If sent in CAPAB/PROTOCOL, we store it in here. This is
|
||||
74) Chan Modes: If sent in CAPAB/PROTOCOL, we store it in here. This is
|
||||
NULL by default.
|
||||
|
||||
73) Tokens: Can we use tokens to talk to the IRCd? Use 1 for yes,
|
||||
75) Tokens: Can we use tokens to talk to the IRCd? Use 1 for yes,
|
||||
0 for no.
|
||||
|
||||
74) Token Case Senstive: Are the IRCd's TOKENS/COMMANDS case sensitive?
|
||||
76) Token Case Senstive: Are the IRCd's TOKENS/COMMANDS case sensitive?
|
||||
Use 1 for yes, 0 for no.
|
||||
|
||||
75) base64 SJOIN TS: Are the timestamps sent with a SJOIN in base64? Use
|
||||
77) base64 SJOIN TS: Are the timestamps sent with a SJOIN in base64? Use
|
||||
1 for yes, 0 for no.
|
||||
|
||||
76) Supports +I: Does the IRCd support channelmode +I? Use 1 for yes,
|
||||
78) Supports +I: Does the IRCd support channelmode +I? Use 1 for yes,
|
||||
0 for no.
|
||||
|
||||
77) SJOIN Ban Char: Character used to identify bans. Use ''.
|
||||
79) SJOIN Ban Char: Character used to identify bans. Use ''.
|
||||
|
||||
78) SJOIN Except Char: Character used to identify exceptions. use ''.
|
||||
80) SJOIN Except Char: Character used to identify exceptions. Use ''.
|
||||
|
||||
79) SVSMODE UCMODE: Can we clear user channel modes with SVSMODE? Use
|
||||
81) SJOIN Invex Char: Character used to identify invexes. Use ''.
|
||||
|
||||
82) SVSMODE UCMODE: Can we clear user channel modes with SVSMODE? Use
|
||||
1 for yes, 0 for no.
|
||||
|
||||
80) SGline Enforce: Does the IRCd enforce SGLINES for us or do we need to
|
||||
83) SGline Enforce: Does the IRCd enforce SGLINES for us or do we need to
|
||||
do so? Use 1 for yes, 0 for no.
|
||||
|
||||
81) Vhost Character: The character used to represent the vHost mode, if
|
||||
84) Vhost Character: The character used to represent the vHost mode, if
|
||||
this is supported by the IRCd.
|
||||
|
||||
82) TS6: Does the IRCd support TS6? Use 1 for yes, 0 for no.
|
||||
85) TS6: Does the IRCd support TS6? Use 1 for yes, 0 for no.
|
||||
|
||||
83) UMode +h: Does the IRCd support usermode +h for helpers?
|
||||
86) UMode +h: Does the IRCd support usermode +h for helpers?
|
||||
Use 1 for yes, 0 for no.
|
||||
|
||||
84) P10: Is this IRCd a P10-style IRCd? Use 1 for yes, 0 for no.
|
||||
87) P10: Is this IRCd a P10-style IRCd? Use 1 for yes, 0 for no.
|
||||
|
||||
85) Character Set: Unreal passes the character set during PROTOCTL,
|
||||
88) Character Set: Unreal passes the character set during PROTOCTL,
|
||||
the value is stored here. Set this NULL to start.
|
||||
|
||||
86) Reports sync: Does the IRCd report when it's in sync (or done bursting,
|
||||
89) Reports sync: Does the IRCd report when it's in sync (or done bursting,
|
||||
depending on how you want to say it)? Remember to set
|
||||
the sync state for servers correctly if it does.
|
||||
Use 1 for yes, 0 for no.
|
||||
|
||||
87) Channel CIDR: Set to 1 if channel bans, excepts and invites
|
||||
90) Channel CIDR: Set to 1 if channel bans, excepts and invites
|
||||
support CIDR masks. Expected syntax: *!*@ip/mask.
|
||||
When set to 1, anope will only parse strict CIDR masks.
|
||||
IRCd's that try to correct invalid CIDR's (like nefarious)
|
||||
@@ -446,10 +374,14 @@ How To Add IRCd Support
|
||||
Contact the anope Dev Team if this is the case.
|
||||
Set to 0 if CIDR's are not supported by your IRCd.
|
||||
|
||||
88) Throttle Mode: The IRCd has a channelmode for throttling joins per-user.
|
||||
91) Throttle Mode: The IRCd has a channelmode for throttling joins per-user.
|
||||
Use 1 for yes, 0 for no.
|
||||
|
||||
89) CMode j: CMODE_ that defines throttle mode. Use 0 for no support.
|
||||
92) CMode j: CMODE_ that defines throttle mode. Use 0 for no support.
|
||||
|
||||
93) Delayed client introduction: Delay the introduction of services pseudo-
|
||||
client till after we have received the uplinks
|
||||
CAPAB.
|
||||
|
||||
So we've had this long list. Now there's a second struct to fill. This
|
||||
struct isn't as long as the previous one though, so we'll handle it quite
|
||||
@@ -533,7 +465,7 @@ How To Add IRCd Support
|
||||
void moduleAddIRCDMsgs(void)
|
||||
{
|
||||
m = createMessage("NICK", anope_event_nick);
|
||||
addCoreMessage(IRCD,m);
|
||||
addCoreMessage(IRCD, m);
|
||||
}
|
||||
|
||||
Each event should have a event handler if its important enough to be
|
||||
@@ -569,30 +501,19 @@ How To Add IRCd Support
|
||||
to read these lines and set itself up to to handle these events better.
|
||||
When adding support for your ircd, take the following steps.
|
||||
|
||||
1) In the ircd.c find the function anope_cmd_capab(); this function will
|
||||
send the CAPAB/PROTOCTL line (consult your ircd documentation for
|
||||
which to send). In a single line type in the tokens that anope must
|
||||
send. Here is an example of Hybrid's capab line:
|
||||
|
||||
/* CAPAB */
|
||||
void anope_cmd_capab()
|
||||
{
|
||||
send_cmd(NULL, "CAPAB TS5 EX IE HOPS HUB AOPS");
|
||||
}
|
||||
|
||||
2) In the ircd.h file make sure to place the defines (see below) that
|
||||
1) In the ircd.h file make sure to place the defines (see below) that
|
||||
match your IRCd's tokens; only use the ones that matter to your ircd.
|
||||
Should your IRCd add new features not covered in the defined, please
|
||||
contact the Anope Dev team before doing so. See README for information
|
||||
on how to contact the Anope team.
|
||||
|
||||
3) Ensure that the CAPAB/PROTOCTL event his handled correctly.
|
||||
2) Ensure that the CAPAB/PROTOCTL event his handled correctly.
|
||||
|
||||
A) In the function "moduleAddIRCDMsgs" making sure that you have the
|
||||
following two lines:
|
||||
|
||||
m = createMessage("CAPAB", anope_event_capab);
|
||||
addCoreMessage(IRCD,m);
|
||||
addCoreMessage(IRCD, m);
|
||||
|
||||
B) Add the function to handle the event
|
||||
|
||||
|
||||
@@ -21,7 +21,7 @@ Highlighted News in Anope 1.8
|
||||
- Charybdis 1.0 or later
|
||||
- DreamForge 4.6.7
|
||||
- Hybrid 7 or later
|
||||
- InspIRCd 1.0 or later (including 1.1)
|
||||
- InspIRCd 1.0 or later (including 1.1 & 1.2)
|
||||
- Plexus 2.0 or later (including 3.0)
|
||||
- PTLink 6.15 or later
|
||||
- RageIRCd 2.0 or later
|
||||
|
||||
+56
-11
@@ -1,7 +1,7 @@
|
||||
Anope -- a set of IRC services for IRC networks
|
||||
-----------------------------------------------
|
||||
Anope - a set of IRC services for IRC networks
|
||||
----------------------------------------------
|
||||
|
||||
Anope is 2003-2009 Anope Team <team@anope.org>.
|
||||
Anope is 2003-2010 Anope Team <team@anope.org>.
|
||||
Based on Epona 2000-2002 PegSoft <epona@pegsoft.net>.
|
||||
Based on Services 1996-1999 Andrew Church <achurch@achurch.org>.
|
||||
|
||||
@@ -19,7 +19,8 @@ Table of Contents
|
||||
3) Installation
|
||||
4) Command Line Options
|
||||
5) Messages Translation
|
||||
6) Contact and Mailing List
|
||||
6) Adding Your Translation Into The Source
|
||||
7) Contact and Mailing List
|
||||
|
||||
1) Credits
|
||||
|
||||
@@ -105,10 +106,12 @@ Table of Contents
|
||||
|
||||
* GeniusDex <geniusdex@anope.org> (nl.l)
|
||||
* Kein <kein-of@yandex.ru> (ru.l)
|
||||
* Stuff <the.stuff@gmx.de> (de.l)
|
||||
* Han` <Han@mefalcon.org> (de.l)
|
||||
* Gabriel Acevedo H. <drstein@anope.org> (es.l)
|
||||
* Janos Kapitany <sarkanyka@cjbchat.hu> (hun.l)
|
||||
* Szymon S'wierkosz <szymek@adres.pl> (pl.l)
|
||||
* Christopher N. <saka@epiknet.org> (fr.l)
|
||||
* Yusuf Kurekci <ysfm.20@gmail.com> (tr.l)
|
||||
|
||||
Anope uses the strlcat() and strlcpy() functions from OpenSSH 2.5.1p2.
|
||||
These functions are copyrighted by Todd C. Miller:
|
||||
@@ -196,7 +199,7 @@ Table of Contents
|
||||
* Charybdis 1.0 or later
|
||||
* DreamForge 4.6.7
|
||||
* Hybrid 7 or later
|
||||
* InspIRCd 1.0 or later (including 1.1)
|
||||
* InspIRCd 1.0 or later (including 1.1 and 1.2)
|
||||
* Plexus 2.0 or later (including 3.0)
|
||||
* PTlink 6.15 or later
|
||||
* RageIRCd 2.0 beta-6 or later
|
||||
@@ -339,10 +342,9 @@ Table of Contents
|
||||
by most speakers of that language ;)).
|
||||
|
||||
* When this is done, you have two solutions: either patch Services
|
||||
source code so they take in account the new language file
|
||||
(basically, you'll have to modify lang/Makefile, language.c and
|
||||
maybe services.h), or send us the translated file so we can make
|
||||
the patch and include your language in the next Anope release.
|
||||
source code so they take in account the new language file (section 6),
|
||||
or send us the translated file so we can make the patch and include
|
||||
your language in the next Anope release.
|
||||
|
||||
* Note that there is a language tool on bin/langtool.pl that can aid
|
||||
the verification process on newly created language files. Try to
|
||||
@@ -358,7 +360,50 @@ Table of Contents
|
||||
credit for it, and will even get future final major releases before
|
||||
anyone else to complete the translation!... ;)
|
||||
|
||||
6) Contact
|
||||
6) Adding Your Translation Into The Source
|
||||
|
||||
First, get the latest svn version of Anope. This can be done by doing
|
||||
'svn co http://anope.svn.sourceforge.net/svnroot/anope/stable ./anope-stable`
|
||||
|
||||
Second, Place your language file in lang/, and type 'svn add file.l`. Where file is
|
||||
your language file.
|
||||
|
||||
Next, edit lang/Makefile and add your file into both the LANGOBJS variable and
|
||||
the LANGSRCS variable (alphabetically please). Then, go down and add an entry for
|
||||
it similar the others, eg:
|
||||
en_us: en_us.l langcomp index
|
||||
./langcomp $@.l
|
||||
(which creates the english language file)
|
||||
|
||||
Now, edit include/services.h and search for "#define LANG_EN_US", and add your language to
|
||||
the bottom of the list, eg:
|
||||
#define LANG_BLAH 16 /* Blah language! */
|
||||
(given the language above its number is 15).
|
||||
Then change the NUM_LANGS to one more than it currently is (in this case, 17)
|
||||
and add one to USED_LANGS.
|
||||
|
||||
Finially, edit src/language.c and add your language to the bottom of the array there, eg:
|
||||
...
|
||||
LANG_HUN, /* Hungarian */
|
||||
LANG_PL, /* Polish */
|
||||
LANG_BLAH, /* Blah language! */
|
||||
};
|
||||
then, go down and add it with the others using load_lang(), eg:
|
||||
...
|
||||
load_lang(LANG_HUN, "hun");
|
||||
load_lang(LANG_PL, "pl");
|
||||
load_lang(LANG_BLAH, "blah");
|
||||
|
||||
Now use 'svn diff > language.diff` to get the changes you made, and if it looks good (test it)
|
||||
email it to team@anope.org!
|
||||
|
||||
Please be aware we will only include a new language if there is sufficient demand for it.
|
||||
|
||||
Please do not be disappointed if we do not include your language within Anope.
|
||||
|
||||
Check Changes.lang in order for your language to continue to work on your copy of Anope upgrades.
|
||||
|
||||
7) Contact
|
||||
|
||||
For announcements and discussions about Anope, please visit our
|
||||
Portal and Forums at http://www.anope.org/ -- make sure you register
|
||||
|
||||
+7
-4
@@ -38,9 +38,12 @@ Anope for Windows
|
||||
http://www.microsoft.com/downloads/details.aspx?FamilyId=0BAF2B35-C656-4969-ACE8-E4C0C0716ADB&displaylang=en
|
||||
|
||||
(NOTE: Although this says for Windows Server 2003, it does infact work on all supported
|
||||
versions of Windows. When installing, you should select the Custom option, and ensure
|
||||
that only the top selection, and the bottom selection are checked. This will cut down
|
||||
install time dramatically)
|
||||
versions of Windows.)
|
||||
|
||||
When installing, you should select the Custom option, and ensure that the top option relating to
|
||||
the registering of environment varibales, is enabled in addition to the default selections.
|
||||
|
||||
If you do not do this, you may run into problems with the PSDK not being found properly during install.
|
||||
|
||||
* MySQL for Windows (only needed if building with MySQL enabled):
|
||||
http://dev.mysql.com/
|
||||
@@ -61,7 +64,7 @@ Anope for Windows
|
||||
|
||||
e.g.
|
||||
|
||||
cd c:\anope-trunk
|
||||
cd c:\anope-stable
|
||||
|
||||
4) You now need to configure Anope to your requirements. At the prompt type:
|
||||
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
/* Declarations for command data.
|
||||
*
|
||||
* (C) 2003-2009 Anope Team
|
||||
* (C) 2003-2010 Anope Team
|
||||
* Contact us at team@anope.org
|
||||
*
|
||||
* Please read COPYING and README for furhter details.
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
/* Services configuration.
|
||||
*
|
||||
* (C) 2003-2009 Anope Team
|
||||
* (C) 2003-2010 Anope Team
|
||||
* Contact us at team@anope.org
|
||||
*
|
||||
* Please read COPYING and README for furhter details.
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
/* Database file descriptor structure and file handling routine prototypes.
|
||||
*
|
||||
* (C) 2003-2009 Anope Team
|
||||
* (C) 2003-2010 Anope Team
|
||||
* Contact us at team@anope.org
|
||||
*
|
||||
* Please read COPYING and README for furhter details.
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
/* Set default values for any constants that should be in include files but
|
||||
*
|
||||
* (C) 2003-2009 Anope Team
|
||||
* (C) 2003-2010 Anope Team
|
||||
* Contact us at team@anope.org
|
||||
*
|
||||
* Please read COPYING and README for furhter details.
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/* depricated.h
|
||||
*
|
||||
* (C) 2003-2009 Anope Team
|
||||
* (C) 2003-2010 Anope Team
|
||||
* Contact us at team@anope.org
|
||||
*
|
||||
* Please read COPYING and README for furhter details.
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
/* Include file for high-level encryption routines.
|
||||
*
|
||||
* (C) 2003-2009 Anope Team
|
||||
* (C) 2003-2010 Anope Team
|
||||
* Contact us at team@anope.org
|
||||
*
|
||||
* Please read COPYING and README for furhter details.
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
/* Prototypes and external variable declarations.
|
||||
*
|
||||
* (C) 2003-2009 Anope Team
|
||||
* (C) 2003-2010 Anope Team
|
||||
* Contact us at team@anope.org
|
||||
*
|
||||
* Please read COPYING and README for furhter details.
|
||||
|
||||
+12
-22
@@ -1,6 +1,6 @@
|
||||
/* Prototypes and external variable declarations.
|
||||
*
|
||||
* (C) 2003-2009 Anope Team
|
||||
* (C) 2003-2010 Anope Team
|
||||
* Contact us at team@anope.org
|
||||
*
|
||||
* Please read COPYING and README for furhter details.
|
||||
@@ -109,6 +109,8 @@ E char *get_throttle(Channel * chan);
|
||||
E void set_throttle(Channel * chan, char *value);
|
||||
E char *get_redirect(Channel * chan);
|
||||
E void set_redirect(Channel * chan, char *value);
|
||||
E char *get_unkwn(Channel * chan);
|
||||
E void set_unkwn(Channel *chan, char *value);
|
||||
|
||||
|
||||
E void get_channel_stats(long *nrec, long *memuse);
|
||||
@@ -215,11 +217,14 @@ E char *cs_get_limit(ChannelInfo * ci);
|
||||
E void cs_set_limit(ChannelInfo * ci, char *value);
|
||||
E char *cs_get_redirect(ChannelInfo * ci);
|
||||
E void cs_set_redirect(ChannelInfo * ci, char *value);
|
||||
E char *cs_get_unkwn(ChannelInfo * ci);
|
||||
E void cs_set_unkwn(ChannelInfo * ci, char *value);
|
||||
|
||||
E int levelinfo_maxwidth;
|
||||
E ChannelInfo *makechan(const char *chan);
|
||||
E int is_identified(User * user, ChannelInfo * ci);
|
||||
E char *get_mlock_modes(ChannelInfo * ci, int complete);
|
||||
E void CleanAccess(ChannelInfo *ci);
|
||||
|
||||
/**** compat.c ****/
|
||||
|
||||
@@ -525,7 +530,6 @@ E int rdb_save_ns_alias(NickAlias * na);
|
||||
E int rdb_save_ns_req(NickRequest * nr);
|
||||
E int rdb_save_cs_info(ChannelInfo * ci);
|
||||
E int rdb_save_bs_core(BotInfo * bi);
|
||||
E int rdb_save_bs_rdb_core(BotInfo * bi);
|
||||
E int rdb_save_hs_core(HostCore * hc);
|
||||
E int rdb_save_os_db(unsigned int maxucnt, unsigned int maxutime,
|
||||
SList * ak, SList * sgl, SList * sql, SList * szl);
|
||||
@@ -569,13 +573,9 @@ E char *DefConOffMessage;
|
||||
E long unsigned int UserKey1;
|
||||
E long unsigned int UserKey2;
|
||||
E long unsigned int UserKey3;
|
||||
/**** converter.c ****/
|
||||
|
||||
E int convert_ircservices_44(void);
|
||||
|
||||
/**** encrypt.c ****/
|
||||
E char *EncModule;
|
||||
E void initEncryption();
|
||||
E int enc_encrypt(const char *src, int len, char *dest, int size);
|
||||
E int enc_encrypt_in_place(char *buf, int size);
|
||||
E int enc_encrypt_check_len(int passlen, int bufsize);
|
||||
@@ -611,6 +611,7 @@ E void set_lastmask(User * u);
|
||||
E void introduce_user(const char *user);
|
||||
E int init_primary(int ac, char **av);
|
||||
E int init_secondary(int ac, char **av);
|
||||
E void init_tertiary();
|
||||
E int servernum;
|
||||
|
||||
/**** ircd.c ****/
|
||||
@@ -667,6 +668,7 @@ E void pmodule_cmd_chg_nick(void (*func) (char *oldnick, char *newnick));
|
||||
E void pmodule_cmd_svsnick(void (*func) (char *source, char *guest, time_t when));
|
||||
E void pmodule_cmd_vhost_on(void (*func) (char *nick, char *vIdent, char *vhost));
|
||||
E void pmodule_cmd_connect(void (*func) (int servernum));
|
||||
E void pmodule_cmd_bob(void (*func) ());
|
||||
E void pmodule_cmd_svshold(void (*func) (char *nick));
|
||||
E void pmodule_cmd_release_svshold(void (*func) (char *nick));
|
||||
E void pmodule_cmd_unsgline(void (*func) (char *mask));
|
||||
@@ -689,6 +691,7 @@ E void pmodule_set_umode(void (*func) (User * user, int ac, char **av));
|
||||
E void pmodule_valid_nick(int (*func) (char *nick));
|
||||
E void pmodule_valid_chan(int (*func) (char *chan));
|
||||
E void pmodule_flood_mode_check(int (*func) (char *value));
|
||||
E void pmodule_jointhrottle_mode_check(int (*func) (char *value));
|
||||
E void pmodule_ircd_var(IRCDVar * ircdvar);
|
||||
E void pmodule_ircd_cap(IRCDCAPAB * cap);
|
||||
E void pmodule_ircd_version(char *version);
|
||||
@@ -707,7 +710,7 @@ E void pmodule_secret_cmode(int mode);
|
||||
E void pmodule_private_cmode(int mode);
|
||||
E void pmodule_key_mode(int mode);
|
||||
E void pmodule_limit_mode(int mode);
|
||||
E void pmodule_jointhrottle_mode_check(int (*func) (char *value));
|
||||
E void pmodule_permchan_mode(int mode);
|
||||
|
||||
E int anope_get_secret_mode();
|
||||
E int anope_get_invite_mode();
|
||||
@@ -716,6 +719,7 @@ E int anope_get_limit_mode();
|
||||
E int anope_get_private_mode();
|
||||
E int anope_get_invis_mode();
|
||||
E int anope_get_oper_mode();
|
||||
E int anope_get_permchan_mode();
|
||||
|
||||
/**** language.c ****/
|
||||
|
||||
@@ -1239,22 +1243,17 @@ E void anope_cmd_376(char *source); /* 376 */
|
||||
E void anope_cmd_391(char *source, char *timestr); /* 391 */
|
||||
E void anope_cmd_401(char *source, char *who); /* 401 */
|
||||
E void anope_cmd_akill(char *user, char *host, char *who, time_t when, time_t expires, char *reason); /* AKILL */
|
||||
E void anope_cmd_capab(); /* CAPAB */
|
||||
E void anope_cmd_chghost(char *nick, char *vhost); /* CHGHOST */
|
||||
E void anope_cmd_chgident(char *nick, char *vIdent); /* CHGIDENT */
|
||||
E void anope_cmd_vhost_on(char *nick, char *vIdent, char *vhost); /* CHGHOST + CHGIDENT */
|
||||
E void anope_cmd_vhost_off(User *u);
|
||||
E void anope_cmd_connect(int servernum); /* Connect */
|
||||
E void anope_cmd_ea(); /* EA */
|
||||
E void anope_cmd_bob();
|
||||
E void anope_cmd_global(char *source, const char *fmt, ...); /* GLOBOPS */
|
||||
E void anope_cmd_invite(char *source, char *chan, char *nick); /* INVITE */
|
||||
E void anope_cmd_join(char *user, char *channel, time_t chantime); /* JOIN */
|
||||
E void anope_cmd_kick(char *source, char *chan, char *user, const char *fmt, ...); /* KICK */
|
||||
E void anope_cmd_mode(char *source, char *dest, const char *fmt, ...); /* MODE */
|
||||
E void anope_cmd_tmode(char *source, char *dest, const char *fmt, ...); /* TMODE */
|
||||
E void anope_cmd_unban(char *name, char *nick); /* MODE -b */
|
||||
E void anope_cmd_bot_chan_mode(char *nick, char *chan); /* MODE BotServ */
|
||||
E void anope_cmd_netinfo(int ac, char **av); /* NETINFO */
|
||||
E void anope_cmd_nick(char *nick, char *name, char *mode); /* NICK */
|
||||
E void anope_cmd_chg_nick(char *oldnick, char *newnick); /* NICK */
|
||||
E void anope_cmd_bot_nick(char *nick, char *user,char *host,char *real,char *modes); /* NICK */
|
||||
@@ -1264,25 +1263,19 @@ E void anope_cmd_notice_ops(char *source, char *dest, const char *fmt, ...);
|
||||
E void anope_cmd_notice2(char *source, char *dest, char *msg); /* NOTICE */
|
||||
E void anope_cmd_serv_notice(char *source, char *dest, char *msg); /* NOTICE */
|
||||
E void anope_cmd_part(char *nick, char *chan, const char *fmt, ...); /* PART */
|
||||
E void anope_cmd_pass(char *pass); /* PASS */
|
||||
E void anope_cmd_pong(char *servname, char *who); /* PONG */
|
||||
E void anope_cmd_privmsg(char *source, char *dest, const char *fmt, ...); /* PRIVMSG */
|
||||
E void anope_cmd_action(char *source, char *dest, const char *fmt, ...); /* PRIVMSG */
|
||||
E void anope_cmd_privmsg2(char *source, char *dest, char *msg); /* PRIVMSG */
|
||||
E void anope_cmd_serv_privmsg(char *source, char *dest, char *msg); /* PRIVMSG */
|
||||
E void anope_cmd_protoctl(); /* PROTOCTL */
|
||||
E void anope_cmd_quit(char *source, const char *fmt, ...); /* QUIT */
|
||||
E void anope_cmd_remove_akill(char *user, char *host); /* RAKILL */
|
||||
E void anope_cmd_server(char *servname, int hop, char *descript); /* SERVER */
|
||||
E void anope_cmd_sgline(char *mask, char *reason); /* SGLINE */
|
||||
E void anope_cmd_sqline(char *mask, char *reason); /* SQLINE */
|
||||
E void anope_cmd_szline(char *mask, char *reason, char *whom); /* SZLINE */
|
||||
E void anope_cmd_squit(char *servname, char *message); /* SQUIT */
|
||||
E void anope_cmd_svinfo(); /* SVINFO */
|
||||
E void anope_cmd_svsadmin(char *server, int set); /* SVSADMIN */
|
||||
E void anope_cmd_svshold(char *nick); /* SVSHOLD */
|
||||
E void anope_cmd_release_svshold(char *nick); /* SVSHOLD */
|
||||
E void anope_cmd_svsinfo(); /* SVSINFO */
|
||||
E void anope_cmd_svsjoin(char *source, char *nick,char *chan, char *param); /* SVSJOIN */
|
||||
E void anope_cmd_svskill(char *source,char *user, const char *fmt, ...); /* SVSKILL */
|
||||
E void anope_cmd_svsmode(User * u, int ac, char **av); /* SVSMODE */
|
||||
@@ -1297,8 +1290,6 @@ E void anope_cmd_unsgline(char *mask); /* UNSGLINE */
|
||||
E void anope_cmd_unsqline(char *user); /* UNSQLINE */
|
||||
E void anope_cmd_unszline(char *mask); /* UNSZLINE */
|
||||
E void anope_cmd_eob(); /* EOB - end of burst */
|
||||
E void anope_cmd_burst(); /* BURST - use eob to send burst 0 */
|
||||
E void anope_cmd_svswatch(char *sender, char *nick, char *parm);
|
||||
E void anope_cmd_ctcp(char *source, char *dest, const char *fmt, ...); /* CTCP */
|
||||
|
||||
EI int anope_event_482(char *source, int ac, char **av);
|
||||
@@ -1346,7 +1337,6 @@ EI int anope_event_eob(char *source, int ac, char **av);
|
||||
EI int anope_event_pass(char *source, int ac, char **av);
|
||||
EI int anope_event_netinfo(char *source, int ac, char **av);
|
||||
EI int anope_event_error(char *source, int ac, char **av);
|
||||
EI int anope_event_eb(char *source, int ac, char **av);
|
||||
EI int anope_event_netctrl(char *source, int ac, char **av);
|
||||
EI int anope_event_notice(char *source, int ac, char **av);
|
||||
EI int anope_event_snotice(char *source, int ac, char **av);
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# Make file for Win32
|
||||
#
|
||||
# (C) 2003-2009 Anope Team
|
||||
# (C) 2003-2010 Anope Team
|
||||
# Contact us at team@anope.org
|
||||
#
|
||||
# Please read COPYING and README for further details.
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
/* Declarations of IRC message structures, variables, and functions.
|
||||
*
|
||||
* (C) 2003-2009 Anope Team
|
||||
* (C) 2003-2010 Anope Team
|
||||
* Contact us at team@anope.org
|
||||
*
|
||||
* Please read COPYING and README for furhter details.
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
/* Modular support
|
||||
*
|
||||
* (C) 2003-2009 Anope Team
|
||||
* (C) 2003-2010 Anope Team
|
||||
* Contact us at team@anope.org
|
||||
*
|
||||
* Please read COPYING and README for furhter details.
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
/* Include extra includes needed by most/all pseudo-clients.
|
||||
*
|
||||
* (C) 2003-2009 Anope Team
|
||||
* (C) 2003-2010 Anope Team
|
||||
* Contact us at team@anope.org
|
||||
*
|
||||
* Please read COPYING and README for furhter details.
|
||||
|
||||
+13
-5
@@ -1,6 +1,6 @@
|
||||
/*
|
||||
*
|
||||
* (C) 2003-2009 Anope Team
|
||||
* (C) 2003-2010 Anope Team
|
||||
* Contact us at team@anope.org
|
||||
*
|
||||
* Please read COPYING and README for furhter details.
|
||||
@@ -265,6 +265,10 @@ typedef enum { false, true } boolean;
|
||||
|
||||
/* Protocol tweaks */
|
||||
|
||||
/* If the IRCd supports TS6 / p10 and it s being used, this selects the uid instead of the nick.. */
|
||||
#define GET_USER(u) ((ircd->p10 || (UseTS6 && ircd->ts6)) ? (u->uid ? u->uid : u->nick) : u->nick)
|
||||
#define GET_BOT(bot) ((ircd->p10 || (UseTS6 && ircd->ts6)) ? (find_uid(bot) ? find_uid(bot)->uid : bot) : bot)
|
||||
|
||||
typedef struct ircdvars_ IRCDVar;
|
||||
typedef struct ircdcapab_ IRCDCAPAB;
|
||||
|
||||
@@ -359,10 +363,11 @@ struct ircdvars_ {
|
||||
char *nickchars; /* character set */
|
||||
int sync; /* reports sync state */
|
||||
int cidrchanbei; /* channel bans/excepts/invites support CIDR (syntax: +b *!*@192.168.0.0/15)
|
||||
* 0 for no support, 1 for strict cidr support, anything else
|
||||
* for ircd specific support (nefarious only cares about first /mask) */
|
||||
int jmode; /* +j join throttle */
|
||||
uint32 chan_jmode; /* Mode */
|
||||
* 0 for no support, 1 for strict cidr support, anything else
|
||||
* for ircd specific support (nefarious only cares about first /mask) */
|
||||
int jmode; /* +j join throttle */
|
||||
uint32 chan_jmode; /* Mode */
|
||||
int delay_cl_intro; /*Delay client introduction till after receiving CAPAB. */
|
||||
};
|
||||
|
||||
struct ircdcapab_ {
|
||||
@@ -865,6 +870,7 @@ struct user_ {
|
||||
char *host; /* User's real hostname */
|
||||
char *hostip; /* User's IP number */
|
||||
char *vhost; /* User's virtual hostname */
|
||||
char *chost; /* User's cloaked hostname */
|
||||
char *vident; /* User's virtual ident */
|
||||
char *realname; /* Realname */
|
||||
Server *server; /* Server user is connected to */
|
||||
@@ -1191,6 +1197,7 @@ typedef struct ircd_proto_ {
|
||||
void (*ircd_cmd_svsnick)(char *source, char *guest, time_t when);
|
||||
void (*ircd_cmd_vhost_on)(char *nick, char *vIdent, char *vhost);
|
||||
void (*ircd_cmd_connect)(int servernum);
|
||||
void (*ircd_cmd_bob)();
|
||||
void (*ircd_cmd_svshold)(char *nick);
|
||||
void (*ircd_cmd_release_svshold)(char *nick);
|
||||
void (*ircd_cmd_unsgline)(char *mask);
|
||||
@@ -1224,6 +1231,7 @@ typedef struct ircd_modes_ {
|
||||
int chan_private;
|
||||
int chan_key;
|
||||
int chan_limit;
|
||||
int chan_perm;
|
||||
} IRCDModes;
|
||||
|
||||
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
/* Header for Services list handler.
|
||||
*
|
||||
* (C) 2003-2009 Anope Team
|
||||
* (C) 2003-2010 Anope Team
|
||||
* Contact us at team@anope.org
|
||||
*
|
||||
* Please read COPYING and README for furhter details.
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
/*
|
||||
*
|
||||
* (C) 2004-2008 Anope Team
|
||||
* (C) 2004-2010 Anope Team
|
||||
* Contact us at team@anope.org
|
||||
*
|
||||
* Please read COPYING and README for furhter details.
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
/* Time-delay routine include stuff.
|
||||
*
|
||||
* (C) 2003-2009 Anope Team
|
||||
* (C) 2003-2010 Anope Team
|
||||
* Contact us at team@anope.org
|
||||
*
|
||||
* Please read COPYING and README for furhter details.
|
||||
|
||||
+1
-1
@@ -27,7 +27,7 @@ fi
|
||||
cat >version.h <<EOF
|
||||
/* Version information for Services.
|
||||
*
|
||||
* (C) 2003-2009 Anope Team
|
||||
* (C) 2003-2010 Anope Team
|
||||
* Contact us at team@anope.org
|
||||
*
|
||||
* Please read COPYING and CREDITS for further details.
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/* version file handler for win32.
|
||||
*
|
||||
* (C) 2003-2009 Anope Team
|
||||
* (C) 2003-2010 Anope Team
|
||||
* Contact us at team@anope.org
|
||||
*
|
||||
* Please read COPYING and README for furhter details.
|
||||
|
||||
+2
-2
@@ -1,7 +1,7 @@
|
||||
//
|
||||
// install.js - Windows Configuration
|
||||
//
|
||||
// (C) 2003-2009 Anope Team
|
||||
// (C) 2003-2010 Anope Team
|
||||
// Contact us at team@anope.org
|
||||
//
|
||||
// This program is free but copyrighted software; see the file COPYING for
|
||||
@@ -191,7 +191,7 @@ var buildPackages = [
|
||||
'incpaths' : [
|
||||
'Program Files\\MySQL\\MySQL Server 5.1\\Include'
|
||||
],
|
||||
'dllfile' : 'Program Files\\MySQL\\MySQL Server 5.1\\bin\\libmsyql.dll',
|
||||
'dllfile' : 'Program Files\\MySQL\\MySQL Server 5.1\\bin\\libmysql.dll',
|
||||
'installedDrive' : 'C'
|
||||
},
|
||||
|
||||
|
||||
+8
-14
@@ -1,6 +1,6 @@
|
||||
# Catalan Language File.
|
||||
#
|
||||
# (C) 2003-2009 Anope Team
|
||||
# (C) 2003-2010 Anope Team
|
||||
# Contact us at team@anope.org
|
||||
#
|
||||
# Please read COPYING and README for furhter details.
|
||||
@@ -707,7 +707,7 @@ NICK_SASET_LANGUAGE_SYNTAX
|
||||
NICK_SASET_LANGUAGE_UNKNOWN
|
||||
Unknown language number %d. Type %R%s HELP SET LANGUAGE for a list of languages.
|
||||
NICK_SASET_LANGUAGE_CHANGED
|
||||
Language changed to Catalan.
|
||||
Language for %s changed to %s.
|
||||
|
||||
|
||||
# ACCESS responses
|
||||
@@ -3428,9 +3428,7 @@ NEWS_HELP_LOGON
|
||||
more news messages, only the most recent will be sent.)
|
||||
NewsCount can be configured in services.conf.
|
||||
|
||||
LOGONNEWS LIST may be used by any IRC operator to list the
|
||||
current news messages. ADD and DEL may only be used by
|
||||
Services admins.
|
||||
LOGONNEWS may only be used by Services admins.
|
||||
|
||||
NEWS_HELP_OPER
|
||||
Syntax: OPERNEWS ADD text
|
||||
@@ -3444,9 +3442,7 @@ NEWS_HELP_OPER
|
||||
more news messages, only the most recent will be sent.)
|
||||
NewsCount can be configured in services.conf.
|
||||
|
||||
OPERNEWS LIST may be used by any IRC operator to list the
|
||||
current oper news messages. ADD and DEL may only be used by
|
||||
Services admins.
|
||||
OPERNEWS may only be used by Services admins.
|
||||
|
||||
NEWS_HELP_RANDOM
|
||||
Sintaxis: RANDOMNEWS ADD text
|
||||
@@ -3457,9 +3453,7 @@ NEWS_HELP_RANDOM
|
||||
Quant un usuari es connecta a la xarxa, un (i nomès un) dels
|
||||
missatges a l'atzar sera escollit i enviat a ells.
|
||||
|
||||
RANDOMNEWS LIST pot ser utilitzat per qualsevol operador
|
||||
d'IRC per llistar la llista de notícies actual. ADD i DEL
|
||||
nomès pot ser utilitzats per administradors de serveis.
|
||||
RANDOMNEWS may only be used by Services admins.
|
||||
|
||||
###########################################################################
|
||||
#
|
||||
@@ -5705,7 +5699,7 @@ OPER_HELP_CMD_SHUTDOWN
|
||||
OPER_HELP_CMD_DEFCON
|
||||
DEFCON Manipulate the DefCon system
|
||||
OPER_HELP_CMD_CHANKILL
|
||||
CHANKILL Kill all users on a specific channel
|
||||
CHANKILL AKILL all users on a specific channel
|
||||
OPER_HELP_CMD_OLINE
|
||||
OLINE Give Operflags to a certain user
|
||||
OPER_HELP_CMD_UMODE
|
||||
@@ -6733,9 +6727,9 @@ HOST_SET_IDENTTOOLONG
|
||||
HOST_NOREG
|
||||
User %s not found in the nickserv db.
|
||||
HOST_SET_SYNTAX
|
||||
Syntax %R%s set <nick> <hostmask>.
|
||||
SET <nick> <hostmask>.
|
||||
HOST_SETALL_SYNTAX
|
||||
Syntax %R%s setall <nick> <hostmask>.
|
||||
SETALL <nick> <hostmask>.
|
||||
HOST_DENIED
|
||||
Access Denied.
|
||||
HOST_NOT_ASSIGNED
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# Deutsches Language file.
|
||||
#
|
||||
# (C) 2003-2009 Anope Team
|
||||
# (C) 2003-2010 Anope Team
|
||||
# Contact us at team@anope.org
|
||||
#
|
||||
# Please read COPYING and README for furhter details.
|
||||
@@ -11,6 +11,9 @@
|
||||
# Translated by chemical <chem@gmx.net>,shine <dh@shinewelt.de> bis 28.02.2003
|
||||
# - Solltest du irgendwelche Rechtschreibfehler oder sonstige
|
||||
# Verbesserungsvorschläge haben, immer her damit!
|
||||
#
|
||||
# INFO ::: Letzte Änderung: 08.08.2009 -- Han` -- Han@mefalcon.org --
|
||||
#
|
||||
##########################################################################
|
||||
#
|
||||
# This program is free but copyrighted software; see the file COPYING for
|
||||
@@ -47,13 +50,6 @@
|
||||
# (including empty lines). This has to be a tab, not spaces.
|
||||
##########################################################################
|
||||
#
|
||||
# INFO ::: Letzte Änderung: 05.07.2009 -- Han` -- Han@mefalcon.org --
|
||||
#
|
||||
##########################################################################
|
||||
|
||||
|
||||
###########################################################################
|
||||
#
|
||||
# Name of this language
|
||||
#
|
||||
###########################################################################
|
||||
@@ -317,10 +313,13 @@ END_OF_ANY_LIST
|
||||
|
||||
# Automatic messages
|
||||
LIST_INCORRECT_RANGE
|
||||
Incorrect range specified. The correct syntax is #from-to.
|
||||
Du hast einen fehlerhaften Bereich angegeben.
|
||||
Die richtige Schreibweise ist #von-bis.
|
||||
Beispiel: #1-50 oder #1-100
|
||||
CS_LIST_INCORRECT_RANGE
|
||||
To search for channels starting with #, search for the channel
|
||||
name without the #-sign prepended (anope instead of #anope).
|
||||
Um nach Channeln zu suchen die mit # beginnen, suche nach Channelnamen
|
||||
ohne das #-Symbol voranszutellen (anope anstatt #anope).
|
||||
Wildcards können verwendet werden.
|
||||
|
||||
###########################################################################
|
||||
#
|
||||
@@ -722,7 +721,7 @@ NICK_SASET_LANGUAGE_UNKNOWN
|
||||
Unbekannte Sprachen-Nummer %d.
|
||||
Tippe %R%s HELP SET LANGUAGE um eine Liste aller verfügbaren Sprachen zu erhalten.
|
||||
NICK_SASET_LANGUAGE_CHANGED
|
||||
Sprache wurde geändert zu Deutsch.
|
||||
Language for %s changed to %s.
|
||||
|
||||
|
||||
# ACCESS responses
|
||||
@@ -787,7 +786,7 @@ NICK_INFO_EMAIL
|
||||
NICK_INFO_VHOST
|
||||
vHost: %s
|
||||
NICK_INFO_VHOST2
|
||||
vHost: %s@%s
|
||||
vHost: %s@%s
|
||||
NICK_INFO_ICQ
|
||||
ICQ #: %d
|
||||
NICK_INFO_GREET
|
||||
@@ -1129,6 +1128,8 @@ CHAN_LOGOUT_SUCCEEDED
|
||||
Der User %s wurde vom Channel %s ausgeloggt.
|
||||
CHAN_LOGOUT_ALL_SUCCEEDED
|
||||
Alle identifizierten User wurden vom Channel ausgeloggt %s (außer dem Channel Founder).
|
||||
CHAN_LOGOUT_FOUNDER_FAILED
|
||||
You may not log out of %s (you are founder).
|
||||
|
||||
# DROP responses
|
||||
CHAN_DROP_SYNTAX
|
||||
@@ -2618,7 +2619,7 @@ OPER_SVSNICK_NEWNICK
|
||||
OPER_ADMIN_SYNTAX
|
||||
ADMIN {ADD|DEL|LIST|CLEAR} [Nickname | entry-liste]
|
||||
OPER_ADMIN_SKELETON
|
||||
Services sind im Basis-Modus. Das ADMIN-Befehl ist nicht verfügbar.
|
||||
Services sind im Basis-Modus. Der ADMIN-Befehl ist nicht verfügbar.
|
||||
OPER_ADMIN_EXISTS
|
||||
%s existiert bereits auf der Services Administratoren-Liste.
|
||||
OPER_ADMIN_REACHED_LIMIT
|
||||
@@ -3242,7 +3243,7 @@ OPER_HELP_STAFF
|
||||
OPER_HELP_DEFCON
|
||||
Syntax: DEFCON [1|2|3|4|5]
|
||||
|
||||
Das Defcon-System kann benutzt werden, um vordefinierte Einstellung
|
||||
Das Defcon-System kann benutzt werden, um vordefinierte Einstellung
|
||||
von einschränkungen der Services einzubinden - nützlich während
|
||||
versuchter Angriffe auf das Netzwerk.
|
||||
|
||||
@@ -3377,10 +3378,7 @@ NEWS_HELP_LOGON
|
||||
existieren, werden nur die neuesten angezeigt.)
|
||||
Die Anzahl der News können in der services.conf festgelegt werden.
|
||||
|
||||
LOGONNEWS LIST kann von jedem IRC Operator benutzt werden
|
||||
um die aktuelle Liste der Logon News anzeigen zu lassen.
|
||||
ADD oder DEL können allerdings nur von Services Admins
|
||||
ausgeführt werden.
|
||||
Diese Funktion ist beschränkt auf die Services Administartoren.
|
||||
|
||||
NEWS_HELP_OPER
|
||||
Syntax: OPERNEWS ADD Text
|
||||
@@ -3395,10 +3393,7 @@ NEWS_HELP_OPER
|
||||
existieren, werden nur die neüsten angezeigt.)
|
||||
Die Anzahl der News können in der services.conf festgelegt werden.
|
||||
|
||||
OPERNEWS LIST kann von jedem IRC Operator benutzt werden
|
||||
um die aktuelle Liste der Oper-News anzeigen zu lassen.
|
||||
ADD oder DEL können allerdings nur von Services Admins
|
||||
ausgeführt werden.
|
||||
Diese Funktion ist beschränkt auf die Services Administartoren.
|
||||
|
||||
NEWS_HELP_RANDOM
|
||||
Syntax: RANDOMNEWS ADD Text
|
||||
@@ -3409,9 +3404,7 @@ NEWS_HELP_RANDOM
|
||||
Wenn ein User zum Network verbindet, wird eine (und nur eine!) dieser
|
||||
RandomNews Nachrichten zufällig gewählt und an den User gesendet.
|
||||
|
||||
RANDOMNEWS LIST kann von jedem IRC Operator genutzt werden um die
|
||||
aktuellen News Nachrichten aufzulisten. ADD und DEL können nur von
|
||||
Services Administratoren genutzt werden.
|
||||
Diese Funktion ist beschränkt auf die Services Administartoren.
|
||||
|
||||
###########################################################################
|
||||
#
|
||||
@@ -3763,7 +3756,7 @@ NICK_HELP_SET_GREET
|
||||
gesendet, wenn du in einen Channel eintrittst, der
|
||||
die GREET Option eingeschaltet hat. Vorausgesetzt
|
||||
du hast den nötigen Zugriffslevel in der Access-Liste
|
||||
des Channels.
|
||||
des Channels.
|
||||
|
||||
NICK_HELP_SET_KILL
|
||||
Syntax: SET KILL {ON | QUICK | IMMED | OFF}
|
||||
@@ -4049,7 +4042,7 @@ NICK_HELP_GHOST
|
||||
wenn dein Computer abstürtzt oder deine Internet-
|
||||
Verbindung zusammenbricht, wenn du im IRC bist.
|
||||
|
||||
Wenn du das GHOST Befehk benutzen willst,muss
|
||||
Wenn du das GHOST Befehl benutzen willst,muss
|
||||
deine aktuelle Hostmaske (siehe /WHOIS) in der
|
||||
Zugriffsliste des entsprechenden Nicknamens oder
|
||||
in der Gruppe des Nicknamens sein.Weiterhin musst
|
||||
@@ -4113,7 +4106,7 @@ NICK_HELP_ALIST
|
||||
NICK_HELP_GLIST
|
||||
Syntax: GLIST
|
||||
|
||||
Zeigt alle Nicknamen die in deiner Gruppe enthalten sind.
|
||||
Zeigt alle Nicknamen die in deiner Gruppe enthalten sind.
|
||||
|
||||
NICK_HELP_STATUS
|
||||
Syntax: STATUS Nickname
|
||||
@@ -4276,7 +4269,7 @@ NICK_SERVADMIN_HELP_GETPASS
|
||||
NICK_SERVADMIN_HELP_GETEMAIL
|
||||
Syntax: GETEMAIL user@emailhost
|
||||
|
||||
Gibt die passenden Nicknamen auf, welche die gegebene eMail benutzen.
|
||||
Gibt die passenden Nicknamen an, welche die angegebene eMail benutzen.
|
||||
Beachte, dass du keine wildcards für den User oder emailhost
|
||||
verwenden kannst. Immer, wenn dieser Befehl benutzt wird, wird
|
||||
eine Nachricht mit dem Nickname der Person mitgeloggt.
|
||||
@@ -4425,7 +4418,7 @@ CHAN_HELP_REGISTER
|
||||
einstellst, erlaubt es später anderen Änderungen
|
||||
am Channel durchzuführen.Der letzte Parameter, der
|
||||
angegeben werden MUSS,sollte eine allgemeine
|
||||
Beschreibung des Channels bzw dessen Zweck beinhalten.
|
||||
Beschreibung des Channels bzw dessen Zweck beinhalten.
|
||||
|
||||
Wenn du einen Channel registrierst, wird dein Nickname
|
||||
als Founder (Gründer) eingetragen. Der Channel-Founder
|
||||
@@ -4438,7 +4431,7 @@ CHAN_HELP_REGISTER
|
||||
|
||||
Hinweis: Für das Registrieren eines Channels musst du
|
||||
einen registrierten und identifizierten Nickname benutzen.
|
||||
Hast du dies noch nicht getan, tippe %R%s HELP REGISTER
|
||||
Hast du dies noch nicht getan, tippe %R%s HELP REGISTER
|
||||
um weitere Informationen darüber zu erhalten.
|
||||
|
||||
CHAN_HELP_IDENTIFY
|
||||
@@ -4602,7 +4595,7 @@ CHAN_HELP_SET_MLOCK
|
||||
|
||||
Die Modes die gelockt werden können sind von dein IRCD abhängig.
|
||||
Jede einzelne dieser Modes kann ein/aus oder gar nicht gelockt werden.
|
||||
Der Modi Parameter ist genauso aufgebaut wie das jeweilige /MODE Befehl.
|
||||
Der Modi Parameter ist genauso aufgebaut wie das jeweilige /MODE Befehl.
|
||||
Dies bedeutet, Modi die durch ein + gekennzeichnet sind, sind aktiviert,
|
||||
durch ein - sind sie deaktiviert.
|
||||
|
||||
@@ -5244,7 +5237,7 @@ CHAN_HELP_CLEAR
|
||||
(z.B. Modi i,k,l,m,n,p,s und t)
|
||||
BANS Entfernt alle Bans in dem Channel
|
||||
EXCEPTS Entfernt alle Excepts in dem Channel
|
||||
INVITES Clears all invites on the channel
|
||||
INVITES Löscht alle Einladungen im Channel.
|
||||
OPS Entfernt jeden Operator-Status (mode +o)
|
||||
in dem Channel.
|
||||
HOPS Entfernt jeden Halfoperator-Status (mode +h)
|
||||
@@ -5308,7 +5301,7 @@ CHAN_SERVADMIN_HELP_DROP
|
||||
|
||||
Entfernt die Registrierung des angegebenen Channels aus
|
||||
der Datenbank. Zusätzlich werden Zugriffslisten,
|
||||
Einstellungen usw mit aus der Datenbank entfernt.
|
||||
Einstellungen usw mit aus der Datenbank entfernt.
|
||||
|
||||
Nur Services Administratoren können Channel DROPEN,
|
||||
(löschen) ohne sich vorher gegenüber dem Channel als
|
||||
@@ -5723,7 +5716,7 @@ OPER_HELP_CMD_SHUTDOWN
|
||||
OPER_HELP_CMD_DEFCON
|
||||
DEFCON Ändert das DefCon System
|
||||
OPER_HELP_CMD_CHANKILL
|
||||
CHANKILL Killt alle User des angegebenen Channels
|
||||
CHANKILL Setzt einen AKILL auf alle User des angegebenen Channels.
|
||||
OPER_HELP_CMD_OLINE
|
||||
OLINE Einem User "Operflags" setzen
|
||||
OPER_HELP_CMD_UMODE
|
||||
@@ -6128,14 +6121,12 @@ OPER_HELP_SET
|
||||
Ändert globale Einstellungen der Services Optionen.
|
||||
Diese Optionen lassen sich ändern:
|
||||
|
||||
READONLY Nur-Lese Modus der Datenbank an
|
||||
oder aus
|
||||
READONLY Nur-Lese Modus der Datenbank an oder aus
|
||||
LOGCHAN Zeigt Logmessages in einem Chan
|
||||
DEBUG Debug-Modus der Services an oder aus
|
||||
NOEXPIRE Auslauf-Modus der Services
|
||||
an oder aus
|
||||
NOEXPIRE Auslauf-Modus der Services an oder aus
|
||||
SUPERADMIN Den Super-Admin Modus an oder aus
|
||||
SQL SQL-Modus an oder aus
|
||||
SQL SQL-Modus an oder aus
|
||||
IGNORE Ignore-Modus an oder aus
|
||||
LIST Optionen-Liste
|
||||
|
||||
@@ -6292,7 +6283,7 @@ OPER_HELP_RESTART
|
||||
|
||||
Die Services werden sich bei diesem Befehl beenden,
|
||||
die Datenbanken speichern, und danach neustarten
|
||||
(die ausführbare Datei erneut aufrufen).
|
||||
(die ausführbare Datei erneut aufrufen).
|
||||
|
||||
OPER_HELP_CHANLIST
|
||||
Syntax: CHANLIST [{Muster | Nickname} [SECRET]]
|
||||
@@ -6758,9 +6749,9 @@ HOST_DEL
|
||||
HOST_DEL_SYNTAX
|
||||
DEL Nickname.
|
||||
HOST_OFF
|
||||
Your vhost was removed and the normal cloaking restored.
|
||||
Dein vHost wurde deaktiviert und die normale Host-Verschlüsselung wiederhergestellt.
|
||||
HOST_OFF_UNREAL
|
||||
Dein vHost wurde gelöscht. Um die normale Host-Verschlüsselung zu reaktivieren, tippe /mode %s +%s
|
||||
Dein vHost wurde deaktiviert. Um die normale Host-Verschlüsselung zu reaktivieren, tippe /mode %s +%s
|
||||
HOST_NO_VIDENT
|
||||
Dein IRCd unterstützt keine vIdents. Falls das inkorrekt sein sollte, melde das bitte als einen Bug.
|
||||
HOST_GROUP
|
||||
|
||||
+26
-28
@@ -1,6 +1,6 @@
|
||||
# United States English language file.
|
||||
#
|
||||
# (C) 2003-2009 Anope Team
|
||||
# (C) 2003-2010 Anope Team
|
||||
# Contact us at team@anope.org
|
||||
#
|
||||
# Please read COPYING and README for further details.
|
||||
@@ -692,7 +692,7 @@ NICK_SASET_LANGUAGE_SYNTAX
|
||||
NICK_SASET_LANGUAGE_UNKNOWN
|
||||
Unknown language number %d. Type %R%s HELP SET LANGUAGE for a list of languages.
|
||||
NICK_SASET_LANGUAGE_CHANGED
|
||||
Language changed to English.
|
||||
Language for %s changed to %s.
|
||||
|
||||
|
||||
# ACCESS responses
|
||||
@@ -3288,9 +3288,7 @@ NEWS_HELP_LOGON
|
||||
more news messages, only the most recent will be sent.)
|
||||
NewsCount can be configured in services.conf.
|
||||
|
||||
LOGONNEWS LIST may be used by any IRC operator to list the
|
||||
current news messages. ADD and DEL may only be used by
|
||||
Services admins.
|
||||
LOGONNEWS may only be used by Services admins.
|
||||
|
||||
NEWS_HELP_OPER
|
||||
Syntax: OPERNEWS ADD text
|
||||
@@ -3304,9 +3302,7 @@ NEWS_HELP_OPER
|
||||
more news messages, only the most recent will be sent.)
|
||||
NewsCount can be configured in services.conf.
|
||||
|
||||
OPERNEWS LIST may be used by any IRC operator to list the
|
||||
current oper news messages. ADD and DEL may only be used by
|
||||
Services admins.
|
||||
OPERNEWS may only be used by Services admins.
|
||||
|
||||
NEWS_HELP_RANDOM
|
||||
Syntax: RANDOMNEWS ADD text
|
||||
@@ -3317,9 +3313,7 @@ NEWS_HELP_RANDOM
|
||||
user connects to the network, one (and only one) of the
|
||||
random news will be randomly chosen and sent to them.
|
||||
|
||||
RANDOMNEWS LIST may be used by any IRC operator to list the
|
||||
current news messages. ADD and DEL may only be used by
|
||||
Services admins.
|
||||
RANDOMNEWS may only be used by Services admins.
|
||||
|
||||
###########################################################################
|
||||
#
|
||||
@@ -3906,6 +3900,7 @@ NICK_HELP_LIST
|
||||
Lists all registered nicknames which match the given
|
||||
pattern, in nick!user@host format. Nicks with the
|
||||
PRIVATE option set will not be displayed.
|
||||
Note that a pattern preceding with a '#' specifies a range.
|
||||
|
||||
Examples:
|
||||
|
||||
@@ -3919,6 +3914,9 @@ NICK_HELP_LIST
|
||||
LIST *!*@*.bar.org
|
||||
Lists all nicks owned by users in the bar.org
|
||||
domain.
|
||||
|
||||
LIST #50-100
|
||||
Lists nicks numbers 50-100
|
||||
|
||||
NICK_HELP_ALIST
|
||||
Syntax: ALIST [level]
|
||||
@@ -4417,8 +4415,8 @@ CHAN_HELP_SET_PEACE
|
||||
Syntax: SET channel PEACE {ON | OFF}
|
||||
|
||||
Enables or disables the peace option for a channel.
|
||||
When peace is set, an user won't be able to kick,
|
||||
ban or remove a channel status of an user that has
|
||||
When peace is set, a user won't be able to kick,
|
||||
ban or remove a channel status of a user that has
|
||||
a level superior or equal to his via %S commands.
|
||||
|
||||
CHAN_HELP_SET_PRIVATE
|
||||
@@ -5422,7 +5420,7 @@ OPER_HELP_CMD_SHUTDOWN
|
||||
OPER_HELP_CMD_DEFCON
|
||||
DEFCON Manipulate the DefCon system
|
||||
OPER_HELP_CMD_CHANKILL
|
||||
CHANKILL Kill all users on a specific channel
|
||||
CHANKILL AKILL all users on a specific channel
|
||||
OPER_HELP_CMD_OLINE
|
||||
OLINE Give Operflags to a certain user
|
||||
OPER_HELP_CMD_UMODE
|
||||
@@ -6152,7 +6150,7 @@ BOT_HELP_KICK_BOLDS
|
||||
Sets the bolds kicker on or off. When enabled, this
|
||||
option tells the bot to kick users who use bolds.
|
||||
|
||||
ttb is the number of times an user can be kicked
|
||||
ttb is the number of times a user can be kicked
|
||||
before it get banned. Don't give ttb to disable
|
||||
the ban system once activated.
|
||||
|
||||
@@ -6162,7 +6160,7 @@ BOT_HELP_KICK_COLORS
|
||||
Sets the colors kicker on or off. When enabled, this
|
||||
option tells the bot to kick users who use colors.
|
||||
|
||||
ttb is the number of times an user can be kicked
|
||||
ttb is the number of times a user can be kicked
|
||||
before it get banned. Don't give ttb to disable
|
||||
the ban system once activated.
|
||||
|
||||
@@ -6172,7 +6170,7 @@ BOT_HELP_KICK_REVERSES
|
||||
Sets the reverses kicker on or off. When enabled, this
|
||||
option tells the bot to kick users who use reverses.
|
||||
|
||||
ttb is the number of times an user can be kicked
|
||||
ttb is the number of times a user can be kicked
|
||||
before it get banned. Don't give ttb to disable
|
||||
the ban system once activated.
|
||||
|
||||
@@ -6182,7 +6180,7 @@ BOT_HELP_KICK_UNDERLINES
|
||||
Sets the underlines kicker on or off. When enabled, this
|
||||
option tells the bot to kick users who use underlines.
|
||||
|
||||
ttb is the number of times an user can be kicked
|
||||
ttb is the number of times a user can be kicked
|
||||
before it get banned. Don't give ttb to disable
|
||||
the ban system once activated.
|
||||
|
||||
@@ -6198,7 +6196,7 @@ BOT_HELP_KICK_CAPS
|
||||
text line (if not given, it defaults to 10 characters
|
||||
and 25%%).
|
||||
|
||||
ttb is the number of times an user can be kicked
|
||||
ttb is the number of times a user can be kicked
|
||||
before it get banned. Don't give ttb to disable
|
||||
the ban system once activated.
|
||||
|
||||
@@ -6210,7 +6208,7 @@ BOT_HELP_KICK_FLOOD
|
||||
the channel using at least ln lines in secs seconds
|
||||
(if not given, it defaults to 6 lines in 10 seconds).
|
||||
|
||||
ttb is the number of times an user can be kicked
|
||||
ttb is the number of times a user can be kicked
|
||||
before it get banned. Don't give ttb to disable
|
||||
the ban system once activated.
|
||||
|
||||
@@ -6222,7 +6220,7 @@ BOT_HELP_KICK_REPEAT
|
||||
themselves num times (if num is not given, it
|
||||
defaults to 3).
|
||||
|
||||
ttb is the number of times an user can be kicked
|
||||
ttb is the number of times a user can be kicked
|
||||
before it get banned. Don't give ttb to disable
|
||||
the ban system once activated.
|
||||
|
||||
@@ -6237,7 +6235,7 @@ BOT_HELP_KICK_BADWORDS
|
||||
BADWORDS command. Type %R%S HELP BADWORDS for
|
||||
more information.
|
||||
|
||||
ttb is the number of times an user can be kicked
|
||||
ttb is the number of times a user can be kicked
|
||||
before it get banned. Don't give ttb to disable
|
||||
the ban system once activated.
|
||||
|
||||
@@ -6254,12 +6252,12 @@ BOT_HELP_BADWORDS
|
||||
|
||||
The BADWORDS ADD command adds the given word to the
|
||||
badword list. If SINGLE is specified, a kick will be
|
||||
done only if an user says the entire word. If START is
|
||||
specified, a kick will be done if an user says a word
|
||||
done only if a user says the entire word. If START is
|
||||
specified, a kick will be done if a user says a word
|
||||
that starts with word. If END is specified, a kick
|
||||
will be done if an user says a word that ends with
|
||||
will be done if a user says a word that ends with
|
||||
word. If you don't specify anything, a kick will
|
||||
be issued every time word is said by an user.
|
||||
be issued every time word is said by a user.
|
||||
|
||||
The BADWORDS DEL command removes the given word from the
|
||||
bad words list. If a list of entry numbers is given, those
|
||||
@@ -6366,9 +6364,9 @@ HOST_SET_IDENTTOOLONG
|
||||
HOST_NOREG
|
||||
User %s not found in the nickserv db.
|
||||
HOST_SET_SYNTAX
|
||||
Syntax %R%s set <nick> <hostmask>.
|
||||
SET <nick> <hostmask>.
|
||||
HOST_SETALL_SYNTAX
|
||||
Syntax %R%s setall <nick> <hostmask>.
|
||||
SETALL <nick> <hostmask>.
|
||||
HOST_DENIED
|
||||
Access Denied.
|
||||
HOST_NOT_ASSIGNED
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# Spanish Language File.
|
||||
#
|
||||
# (C) 2003-2009 Anope Team
|
||||
# (C) 2003-2010 Anope Team
|
||||
# Contact us at team@anope.org
|
||||
#
|
||||
# Please read COPYING and README for furhter details.
|
||||
@@ -711,7 +711,7 @@ NICK_SASET_LANGUAGE_SYNTAX
|
||||
NICK_SASET_LANGUAGE_UNKNOWN
|
||||
Unknown language number %d. Type %R%s HELP SET LANGUAGE for a list of languages.
|
||||
NICK_SASET_LANGUAGE_CHANGED
|
||||
Language changed to Spanish.
|
||||
Language for %s changed to %s.
|
||||
|
||||
|
||||
# ACCESS responses
|
||||
@@ -3402,9 +3402,7 @@ NEWS_HELP_LOGON
|
||||
more news messages, only the most recent will be sent.)
|
||||
NewsCount can be configured in services.conf.
|
||||
|
||||
LOGONNEWS LIST may be used by any IRC operator to list the
|
||||
current news messages. ADD and DEL may only be used by
|
||||
Services admins.
|
||||
LOGONNEWS may only be used by Services admins.
|
||||
|
||||
NEWS_HELP_OPER
|
||||
Syntax: OPERNEWS ADD text
|
||||
@@ -3418,9 +3416,7 @@ NEWS_HELP_OPER
|
||||
more news messages, only the most recent will be sent.)
|
||||
NewsCount can be configured in services.conf.
|
||||
|
||||
OPERNEWS LIST may be used by any IRC operator to list the
|
||||
current oper news messages. ADD and DEL may only be used by
|
||||
Services admins.
|
||||
OPERNEWS may only be used by Services admins.
|
||||
|
||||
NEWS_HELP_RANDOM
|
||||
Sintaxis: RANDOMNEWS ADD texto
|
||||
@@ -3431,9 +3427,7 @@ NEWS_HELP_RANDOM
|
||||
Cuando un usuario se conecta a la red, uno (y solo uno) de los
|
||||
mensajes al azar sera elejido y enviado a ellos.
|
||||
|
||||
RANDOMNEWS LIST puede ser usado por cualquier operador de
|
||||
IRC para listar la lista de noticias actual. ADD y DEL
|
||||
solo pueden ser usados por administradores de Servicios.
|
||||
RANDOMNEWS may only be used by Services admins.
|
||||
|
||||
###########################################################################
|
||||
#
|
||||
@@ -5670,7 +5664,7 @@ OPER_HELP_CMD_SHUTDOWN
|
||||
OPER_HELP_CMD_DEFCON
|
||||
DEFCON Manipulate the DefCon system
|
||||
OPER_HELP_CMD_CHANKILL
|
||||
CHANKILL Kill all users on a specific channel
|
||||
CHANKILL AKILL all users on a specific channel
|
||||
OPER_HELP_CMD_OLINE
|
||||
OLINE Otorga privilegios IRCOP temporarios
|
||||
OPER_HELP_CMD_UMODE
|
||||
@@ -6702,9 +6696,9 @@ HOST_SET_IDENTTOOLONG
|
||||
HOST_NOREG
|
||||
Usuario %s no encontrado en la base de datos de nickserv.
|
||||
HOST_SET_SYNTAX
|
||||
Sintaxis %R%s set <nick> <hostmask>.
|
||||
SET <nick> <hostmask>.
|
||||
HOST_SETALL_SYNTAX
|
||||
Sintaxis %R%s setall <nick> <hostmask>.
|
||||
SETALL <nick> <hostmask>.
|
||||
HOST_DENIED
|
||||
Acceso Denegado.
|
||||
HOST_NOT_ASSIGNED
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# Greek language file.
|
||||
#
|
||||
# (C) 2003-2009 Anope Team
|
||||
# (C) 2003-2010 Anope Team
|
||||
# Contact us at team@anope.org
|
||||
#
|
||||
# Please read COPYING and README for furhter details.
|
||||
@@ -705,7 +705,7 @@ NICK_SASET_LANGUAGE_SYNTAX
|
||||
NICK_SASET_LANGUAGE_UNKNOWN
|
||||
Unknown language number %d. Type %R%s HELP SET LANGUAGE for a list of languages.
|
||||
NICK_SASET_LANGUAGE_CHANGED
|
||||
Language changed to Greek.
|
||||
Language for %s changed to %s.
|
||||
|
||||
|
||||
# ACCESS responses
|
||||
@@ -3420,9 +3420,7 @@ NEWS_HELP_LOGON
|
||||
more news messages, only the most recent will be sent.)
|
||||
NewsCount can be configured in services.conf.
|
||||
|
||||
LOGONNEWS LIST may be used by any IRC operator to list the
|
||||
current news messages. ADD and DEL may only be used by
|
||||
Services admins.
|
||||
LOGONNEWS may only be used by Services admins.
|
||||
|
||||
NEWS_HELP_OPER
|
||||
Syntax: OPERNEWS ADD text
|
||||
@@ -3436,9 +3434,7 @@ NEWS_HELP_OPER
|
||||
more news messages, only the most recent will be sent.)
|
||||
NewsCount can be configured in services.conf.
|
||||
|
||||
OPERNEWS LIST may be used by any IRC operator to list the
|
||||
current oper news messages. ADD and DEL may only be used by
|
||||
Services admins.
|
||||
OPERNEWS may only be used by Services admins.
|
||||
|
||||
NEWS_HELP_RANDOM
|
||||
Óýíôáîç: RANDOMNEWS ADD ðåñéå÷üìåíá
|
||||
@@ -3449,9 +3445,7 @@ NEWS_HELP_RANDOM
|
||||
¼ôáí Ýíáò ÷ñÞóôçò óõíäåèåß óôï äßêôõï, Ýíá (êáé ìüíï Ýíá) áðü ôá
|
||||
ìçíýìáôá èá åðéëå÷èåß ôõ÷áßá êáé èá óôáëåß.
|
||||
|
||||
RANDOMNEWS LIST ìðïñåß íá ÷ñçóéìïðïéçèåß áðü ôïõò IRC operators ãéá íá
|
||||
äïýí ôá ìçíýìáôá. ADD êáé DEL ìðïñåß íá ÷ñçóéìïðïéÞóïõí ïé
|
||||
åðéêåöáëåßò ôùí õðçñåóéþí (Services admins).
|
||||
RANDOMNEWS may only be used by Services admins.
|
||||
|
||||
###########################################################################
|
||||
#
|
||||
@@ -5642,7 +5636,7 @@ OPER_HELP_CMD_SHUTDOWN
|
||||
OPER_HELP_CMD_DEFCON
|
||||
DEFCON Manipulate the DefCon system
|
||||
OPER_HELP_CMD_CHANKILL
|
||||
CHANKILL Kill all users on a specific channel
|
||||
CHANKILL AKILL all users on a specific channel
|
||||
OPER_HELP_CMD_OLINE
|
||||
OLINE Give Operflags to a certain user
|
||||
OPER_HELP_CMD_UMODE
|
||||
@@ -6619,9 +6613,9 @@ HOST_SET_IDENTTOOLONG
|
||||
HOST_NOREG
|
||||
User %s not found in the nickserv db.
|
||||
HOST_SET_SYNTAX
|
||||
Syntax %R%s set <nick> <hostmask>.
|
||||
SET <nick> <hostmask>.
|
||||
HOST_SETALL_SYNTAX
|
||||
Syntax %R%s setall <nick> <hostmask>.
|
||||
SETALL <nick> <hostmask>.
|
||||
HOST_DENIED
|
||||
Access Denied.
|
||||
HOST_NOT_ASSIGNED
|
||||
|
||||
+8
-14
@@ -1,6 +1,6 @@
|
||||
# Hungarian (magyar) language file.
|
||||
#
|
||||
# (C) 2003-2009 Anope Team
|
||||
# (C) 2003-2010 Anope Team
|
||||
# Contact us at team@anope.org
|
||||
#
|
||||
# Translated by:
|
||||
@@ -704,7 +704,7 @@ NICK_SASET_LANGUAGE_SYNTAX
|
||||
NICK_SASET_LANGUAGE_UNKNOWN
|
||||
Unknown language number %d. Type %R%s HELP SET LANGUAGE for a list of languages.
|
||||
NICK_SASET_LANGUAGE_CHANGED
|
||||
Language changed to Hungarian.
|
||||
Language for %s changed to %s.
|
||||
|
||||
|
||||
# ACCESS responses
|
||||
@@ -3354,9 +3354,7 @@ NEWS_HELP_LOGON
|
||||
more news messages, only the most recent will be sent.)
|
||||
NewsCount can be configured in services.conf.
|
||||
|
||||
LOGONNEWS LIST may be used by any IRC operator to list the
|
||||
current news messages. ADD and DEL may only be used by
|
||||
Services admins.
|
||||
LOGONNEWS may only be used by Services admins.
|
||||
|
||||
NEWS_HELP_OPER
|
||||
Syntax: OPERNEWS ADD text
|
||||
@@ -3370,9 +3368,7 @@ NEWS_HELP_OPER
|
||||
more news messages, only the most recent will be sent.)
|
||||
NewsCount can be configured in services.conf.
|
||||
|
||||
OPERNEWS LIST may be used by any IRC operator to list the
|
||||
current oper news messages. ADD and DEL may only be used by
|
||||
Services admins.
|
||||
OPERNEWS may only be used by Services admins.
|
||||
|
||||
NEWS_HELP_RANDOM
|
||||
Syntax: RANDOMNEWS ADD szöveg
|
||||
@@ -3383,9 +3379,7 @@ NEWS_HELP_RANDOM
|
||||
egy felhasználó csatlakozik a hálózathoz, egy (csak egy)
|
||||
random newst fog véletlenszerûen elküldeni részére.
|
||||
|
||||
RANDOMNEWS LIST IRC operátorok,használhatják a parancsot
|
||||
részükre listázza az aktuális oper news üzeneteket. Add és
|
||||
Del -t csak szervíz adminok használhatják
|
||||
RANDOMNEWS may only be used by Services admins.
|
||||
|
||||
###########################################################
|
||||
#
|
||||
@@ -5551,7 +5545,7 @@ OPER_HELP_CMD_SHUTDOWN
|
||||
OPER_HELP_CMD_DEFCON
|
||||
DEFCON Manipulálja a DefCon rendszert
|
||||
OPER_HELP_CMD_CHANKILL
|
||||
CHANKILL Kirúgja az összes usert a csatornáról
|
||||
CHANKILL AKILL az összes usert a csatornáról
|
||||
OPER_HELP_CMD_OLINE
|
||||
OLINE Operflaget ad a biztos felhasználónak
|
||||
OPER_HELP_CMD_UMODE
|
||||
@@ -6525,9 +6519,9 @@ HOST_SET_IDENTTOOLONG
|
||||
HOST_NOREG
|
||||
%s felhasználó nincs a nickserv db fájlban.
|
||||
HOST_SET_SYNTAX
|
||||
Syntax %R%s set <nick> <hosztmaszk>.
|
||||
SET <nick> <hosztmaszk>.
|
||||
HOST_SETALL_SYNTAX
|
||||
Syntax %R%s setall <nick> <hosztmaszk>.
|
||||
SETALL <nick> <hosztmaszk>.
|
||||
HOST_DENIED
|
||||
Hozzáférés megtagadva.
|
||||
HOST_NOT_ASSIGNED
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# Italian language file.
|
||||
#
|
||||
# (C) 2003-2009 Anope Team
|
||||
# (C) 2003-2010 Anope Team
|
||||
# Contact us at team@anope.org
|
||||
#
|
||||
# Please read COPYING and README for further details.
|
||||
@@ -700,7 +700,7 @@ NICK_SASET_LANGUAGE_SYNTAX
|
||||
NICK_SASET_LANGUAGE_UNKNOWN
|
||||
Unknown language number %d. Type %R%s HELP SET LANGUAGE for a list of languages.
|
||||
NICK_SASET_LANGUAGE_CHANGED
|
||||
Language changed to Italian.
|
||||
Language for %s changed to %s.
|
||||
|
||||
|
||||
# ACCESS responses
|
||||
@@ -3313,9 +3313,7 @@ NEWS_HELP_LOGON
|
||||
more news messages, only the most recent will be sent.)
|
||||
NewsCount can be configured in services.conf.
|
||||
|
||||
LOGONNEWS LIST may be used by any IRC operator to list the
|
||||
current news messages. ADD and DEL may only be used by
|
||||
Services admins.
|
||||
LOGONNEWS may be used by any IRC operator to list the
|
||||
|
||||
NEWS_HELP_OPER
|
||||
Syntax: OPERNEWS ADD text
|
||||
@@ -3329,9 +3327,7 @@ NEWS_HELP_OPER
|
||||
more news messages, only the most recent will be sent.)
|
||||
NewsCount can be configured in services.conf.
|
||||
|
||||
OPERNEWS LIST may be used by any IRC operator to list the
|
||||
current oper news messages. ADD and DEL may only be used by
|
||||
Services admins.
|
||||
OPERNEWS may only be used by Services admins.
|
||||
|
||||
NEWS_HELP_RANDOM
|
||||
Sintassi: RANDOMNEWS ADD testo
|
||||
@@ -3343,9 +3339,7 @@ NEWS_HELP_RANDOM
|
||||
delle informazioni del giorno sarà scelta casualmente e gli
|
||||
sarà inviata.
|
||||
|
||||
RANDOMNEWS LIST può essere usato da qualsiasi IrcOp per
|
||||
visualizzare i messaggi correnti. ADD e DEL possono essere
|
||||
utilizzati soltanto dai Services admin.
|
||||
RANDOMNEWS may only be used by Services admins.
|
||||
|
||||
###########################################################################
|
||||
#
|
||||
@@ -5583,7 +5577,7 @@ OPER_HELP_CMD_SHUTDOWN
|
||||
OPER_HELP_CMD_DEFCON
|
||||
DEFCON Manipola il sistema DefCon
|
||||
OPER_HELP_CMD_CHANKILL
|
||||
CHANKILL Killa tutti gli utenti su di un canale specifico
|
||||
CHANKILL AKILL tutti gli utenti su di un canale specifico
|
||||
OPER_HELP_CMD_OLINE
|
||||
OLINE Imposta le operflag di un utente
|
||||
OPER_HELP_CMD_UMODE
|
||||
@@ -6590,9 +6584,9 @@ HOST_SET_IDENTTOOLONG
|
||||
HOST_NOREG
|
||||
L'utente %s non è presente nel database di NickServ.
|
||||
HOST_SET_SYNTAX
|
||||
Sintassi: %R%s set <nick> <hostmask>.
|
||||
SET <nick> <hostmask>.
|
||||
HOST_SETALL_SYNTAX
|
||||
Sintassi: %R%s setall <nick> <hostmask>.
|
||||
SETALL <nick> <hostmask>.
|
||||
HOST_DENIED
|
||||
Accesso negato.
|
||||
HOST_NOT_ASSIGNED
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
/* Compiler for language definition files.
|
||||
*
|
||||
* (C) 2003-2009 Anope Team
|
||||
* (C) 2003-2010 Anope Team
|
||||
* Contact us at team@anope.org
|
||||
*
|
||||
* Please read COPYING and README for further details.
|
||||
|
||||
+2
-2
@@ -1,6 +1,6 @@
|
||||
/* Language stuff generator for win32.
|
||||
*
|
||||
* (C) 2003-2009 Anope Team
|
||||
* (C) 2003-2010 Anope Team
|
||||
* Contact us at team@anope.org
|
||||
*
|
||||
* Please read COPYING and README for furhter details.
|
||||
@@ -66,7 +66,7 @@ int main(int argc, char *argv[])
|
||||
|
||||
fprintf(fdout, "#define NUM_STRINGS %d\n", i);
|
||||
fprintf(stderr, "%d strings\n", i);
|
||||
fclose(fd);
|
||||
fclose(fd);
|
||||
fclose(fdout);
|
||||
}
|
||||
return 0;
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# Dutch Language File
|
||||
#
|
||||
# (C) 2003-2009 Anope Team
|
||||
# (C) 2003-2010 Anope Team
|
||||
# Contact us at team@anope.org
|
||||
#
|
||||
# Please read COPYING and README for furhter details.
|
||||
@@ -716,7 +716,7 @@ NICK_SASET_LANGUAGE_SYNTAX
|
||||
NICK_SASET_LANGUAGE_UNKNOWN
|
||||
Unknown language number %d. Type %R%s HELP SET LANGUAGE for a list of languages.
|
||||
NICK_SASET_LANGUAGE_CHANGED
|
||||
Language changed to Dutch.
|
||||
Language for %s changed to %s.
|
||||
|
||||
|
||||
# ACCESS responses
|
||||
@@ -1653,7 +1653,7 @@ CHAN_INVITE_SYNTAX
|
||||
CHAN_UNBAN_SYNTAX
|
||||
UNBAN kanaal
|
||||
CHAN_UNBANNED
|
||||
Bans met betrekking to jou op %s zijn opgeheven.
|
||||
Bans met betrekking tot jou op %s zijn opgeheven.
|
||||
|
||||
# TOPIC responses
|
||||
CHAN_TOPIC_SYNTAX
|
||||
@@ -3381,10 +3381,7 @@ NEWS_HELP_LOGON
|
||||
zijn worden alleen de meest recente vestuurd.)
|
||||
NewsCount kan geconfigureerd worden in services.conf.
|
||||
|
||||
LOGONNEWS LIST mag door elke IRC operator worden gebruikt om
|
||||
de huidige nieuwsberichten weer te geven. ADD en DEL mogen
|
||||
alleen door Services admins gebruikt worden.
|
||||
|
||||
LOGONNEWS may only be used by Services admins.
|
||||
|
||||
NEWS_HELP_OPER
|
||||
Gebruik: OPERNEWS ADD text
|
||||
@@ -3399,9 +3396,7 @@ NEWS_HELP_OPER
|
||||
zijn worden alleen de meest recente vestuurd.)
|
||||
NewsCount kan geconfigureerd worden in services.conf.
|
||||
|
||||
OPERNEWS LIST mag door elke IRC operator worden gebruikt om
|
||||
de huidige nieuwsberichten weer te geven. ADD en DEL mogen
|
||||
alleen door Services admins gebruikt worden.
|
||||
OPERNEWS may only be used by Services admins.
|
||||
|
||||
NEWS_HELP_RANDOM
|
||||
Syntax: RANDOMNEWS ADD text
|
||||
@@ -3414,9 +3409,7 @@ NEWS_HELP_RANDOM
|
||||
nieuwsberichten willekeurig uitgekozen en naar hem/haar
|
||||
verstuurd.
|
||||
|
||||
RANDOMNEWS LIST mag door elke IRC operator worden gebruikt om
|
||||
de huidige nieuwsberichten weer te geven. ADD en DEL mogen
|
||||
alleen door Services admins gebruikt worden.
|
||||
RANDOMNEWS may only be used by Services admins.
|
||||
|
||||
###########################################################################
|
||||
#
|
||||
@@ -5592,7 +5585,7 @@ OPER_HELP_CMD_SHUTDOWN
|
||||
OPER_HELP_CMD_DEFCON
|
||||
DEFCON Manipulate the DefCon system
|
||||
OPER_HELP_CMD_CHANKILL
|
||||
CHANKILL Kill all users on a specific channel
|
||||
CHANKILL AKILL all users on a specific channel
|
||||
OPER_HELP_CMD_OLINE
|
||||
OLINE Geef Operflags aan een bepaalde gebruiker
|
||||
OPER_HELP_CMD_UMODE
|
||||
@@ -6550,9 +6543,9 @@ HOST_SET_IDENTTOOLONG
|
||||
HOST_NOREG
|
||||
Gebruiker %s niet gevonden in de nickserv database.
|
||||
HOST_SET_SYNTAX
|
||||
Gebruik %R%s set <nick> <hostmask>.
|
||||
SET <nick> <hostmask>.
|
||||
HOST_SETALL_SYNTAX
|
||||
Gebruik %R%s setall <nick> <hostmask>.
|
||||
SETALL <nick> <hostmask>.
|
||||
HOST_DENIED
|
||||
Toegang geweigerd.
|
||||
HOST_NOT_ASSIGNED
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
#
|
||||
###########################################################################
|
||||
#
|
||||
# (C) 2003-2009 Anope Team
|
||||
# (C) 2003-2010 Anope Team
|
||||
# Contact us at team@anope.org
|
||||
#
|
||||
# Please read COPYING and README for further details.
|
||||
@@ -882,7 +882,7 @@ NICK_SASET_LANGUAGE_UNKNOWN
|
||||
Napisz %R%s HELP SET LANGUAGE, aby uzyskaæ listê dostêpnych jêzyków.
|
||||
|
||||
NICK_SASET_LANGUAGE_CHANGED
|
||||
Jêzyk zosta³ zmieniony na Polski.
|
||||
Language for %s changed to %s.
|
||||
|
||||
# ACCESS responses
|
||||
NICK_ACCESS_SYNTAX
|
||||
@@ -2025,7 +2025,7 @@ CHAN_LEVELS_LIST_NORMAL
|
||||
CHAN_LEVELS_RESET
|
||||
Poziomy dostêpu kana³u %s zosta³y zresetowane do domy¶lnych.
|
||||
|
||||
# Status Messages
|
||||
# Status messages
|
||||
CHAN_STATUS_SYNTAX
|
||||
STATUS ERROR B³±d sk³adni
|
||||
|
||||
@@ -2378,7 +2378,7 @@ MEMO_MASS_SENT
|
||||
|
||||
# STAFF responses
|
||||
MEMO_STAFF_SYNTAX
|
||||
STAFF memo-text
|
||||
STAFF tre¶æ wiadomo¶ci
|
||||
|
||||
# CANCEL responses
|
||||
MEMO_CANCEL_SYNTAX
|
||||
@@ -3868,8 +3868,9 @@ OPER_JUPE_SYNTAX
|
||||
|
||||
OPER_JUPE_HOST_ERROR
|
||||
Proszê u¿yæ prawid³owej nazwy serwera.
|
||||
|
||||
OPER_JUPE_INVALID_SERVER
|
||||
You can not jupe your services server or your uplink server.
|
||||
Nie mo¿na wykluczyæ samych serwisów lub uplinka serwisów.
|
||||
|
||||
# RAW responses
|
||||
OPER_RAW_SYNTAX
|
||||
@@ -3890,7 +3891,7 @@ OPER_CANNOT_RESTART
|
||||
|
||||
# IGNORE respondes
|
||||
OPER_IGNORE_SYNTAX
|
||||
IGNORE {ADD|DEL|LIST|CLEAR} [czas] [nick | maska]
|
||||
IGNORE {ADD|DEL|LIST|CLEAR} [czas] [nick | maska]
|
||||
|
||||
OPER_IGNORE_VALID_TIME
|
||||
Musisz podaæ prawid³ow± liczbê dla czasu.
|
||||
@@ -4274,7 +4275,7 @@ NEWS_RANDOM_TEXT
|
||||
[Losowa wiadomo¶æ - %s] %s
|
||||
|
||||
NEWS_LOGON_SYNTAX
|
||||
LOGONNEWS {ADD|DEL|LIST} [tekst|numer]
|
||||
LOGONNEWS {ADD|DEL|LIST} [tekst|numer]
|
||||
|
||||
NEWS_LOGON_LIST_HEADER
|
||||
Wiadomo¶ci powitalne:
|
||||
@@ -4287,7 +4288,7 @@ NEWS_LOGON_LIST_NONE
|
||||
Nie ma wiadomo¶ci powitalnych.
|
||||
|
||||
NEWS_LOGON_ADD_SYNTAX
|
||||
Sk³adnia: LOGONNEWS ADD tekst
|
||||
LOGONNEWS ADD tekst
|
||||
|
||||
NEWS_LOGON_ADD_FULL
|
||||
Lista wiadomo¶ci powitalnych jest pe³na!
|
||||
@@ -4296,7 +4297,7 @@ NEWS_LOGON_ADDED
|
||||
Dodano now± wiadomo¶æ powitaln± (#%d).
|
||||
|
||||
NEWS_LOGON_DEL_SYNTAX
|
||||
LOGONNEWS DEL {numer | ALL}
|
||||
LOGONNEWS DEL {numer | ALL}
|
||||
|
||||
NEWS_LOGON_DEL_NOT_FOUND
|
||||
Wiadomo¶æ powitalna #%d nie zosta³a znaleziona!
|
||||
@@ -4311,7 +4312,7 @@ NEWS_LOGON_DELETED_ALL
|
||||
Wszystkie wiadomo¶ci powitalne zosta³ skasowane.
|
||||
|
||||
NEWS_OPER_SYNTAX
|
||||
Sk³adnia: OPERNEWS {ADD|DEL|LIST} [tekst|numer]
|
||||
OPERNEWS {ADD|DEL|LIST} [tekst|numer]
|
||||
|
||||
NEWS_OPER_LIST_HEADER
|
||||
Wiadomo¶ci dla operatorów:
|
||||
@@ -4324,7 +4325,7 @@ NEWS_OPER_LIST_NONE
|
||||
Nie ma wiadomo¶ci dla operatorów.
|
||||
|
||||
NEWS_OPER_ADD_SYNTAX
|
||||
Sk³adnia: OPERNEWS ADD tekst
|
||||
OPERNEWS ADD tekst
|
||||
|
||||
NEWS_OPER_ADD_FULL
|
||||
Lista wiadomo¶ci jest pe³na!
|
||||
@@ -4333,7 +4334,7 @@ NEWS_OPER_ADDED
|
||||
Dodano now± wiadomo¶æ dla operatorów (#%d).
|
||||
|
||||
NEWS_OPER_DEL_SYNTAX
|
||||
Sk³adnia: OPERNEWS DEL {numer | ALL}
|
||||
OPERNEWS DEL {numer | ALL}
|
||||
|
||||
NEWS_OPER_DEL_NOT_FOUND
|
||||
Wiadomo¶æ dla operatorów #%d nie zosta³a znaleziona!
|
||||
@@ -4348,7 +4349,7 @@ NEWS_OPER_DELETED_ALL
|
||||
Wszystkie wiadomo¶ci dla operatorów zosta³y skasowane.
|
||||
|
||||
NEWS_RANDOM_SYNTAX
|
||||
RANDOMNEWS {ADD|DEL|LIST} [tekst|numer]
|
||||
RANDOMNEWS {ADD|DEL|LIST} [tekst|numer]
|
||||
|
||||
NEWS_RANDOM_LIST_HEADER
|
||||
Losowe wiadomo¶ci:
|
||||
@@ -4361,7 +4362,7 @@ NEWS_RANDOM_LIST_NONE
|
||||
Nie ma losowych wiadomo¶ci.
|
||||
|
||||
NEWS_RANDOM_ADD_SYNTAX
|
||||
RANDOMNEWS ADD tekst
|
||||
RANDOMNEWS ADD tekst
|
||||
|
||||
NEWS_RANDOM_ADD_FULL
|
||||
Lista wiadomo¶ci jest pe³na!
|
||||
@@ -4370,7 +4371,7 @@ NEWS_RANDOM_ADDED
|
||||
Dodano now± losow± wiadomo¶æ (#%d).
|
||||
|
||||
NEWS_RANDOM_DEL_SYNTAX
|
||||
RANDOMNEWS DEL {numer | ALL}
|
||||
RANDOMNEWS DEL {numer | ALL}
|
||||
|
||||
NEWS_RANDOM_DEL_NOT_FOUND
|
||||
Losowa wiadomo¶æ #%d nie zosta³a znaleziona!
|
||||
@@ -4395,9 +4396,7 @@ NEWS_HELP_LOGON
|
||||
wys³anych (aby zapobiec floodowaniu). Warto¶æ NewsCount
|
||||
mo¿e zostaæ zmieniona w pliku konfiguracyjym serwisów.
|
||||
|
||||
Polecenie LOGONNEWS LIST mo¿e byæ u¿yte przez ka¿dego
|
||||
IRC operatora w celu wylistowania wiadomo¶ci. Polecenia
|
||||
ADD i DEL s± zarezerwowane dla administratorów serwisów.
|
||||
LOGONNEWS may only be used by Services admins.
|
||||
|
||||
NEWS_HELP_OPER
|
||||
Sk³adnia: OPERNEWS ADD tekst
|
||||
@@ -4410,9 +4409,7 @@ NEWS_HELP_OPER
|
||||
wys³anych (aby zapobiec floodowaniu). Warto¶æ NewsCount
|
||||
mo¿e zostaæ zmieniona w pliku konfiguracyjym serwisów.
|
||||
|
||||
Polecenie OPERNEWS LIST mo¿e byæ u¿yte przez ka¿dego
|
||||
IRC operatora w celu wylistowania wiadomo¶ci. Polecenia
|
||||
ADD i DEL s± zarezerwowane dla administratorów serwisów.
|
||||
OPERNEWS may only be used by Services admins.
|
||||
|
||||
NEWS_HELP_RANDOM
|
||||
Sk³adnia: RANDOMNEWS ADD tekst
|
||||
@@ -4423,9 +4420,7 @@ NEWS_HELP_RANDOM
|
||||
Po po³±czeniu z sieci± u¿ytkownik otrzyma dok³adnie
|
||||
jedn± wylosowan± z tej listy wiadomo¶æ.
|
||||
|
||||
Polecenie RANDOMNEWS LIST mo¿e byæ u¿yte przez ka¿dego
|
||||
IRC operatora w celu wylistowania wiadomo¶ci. Polecenia
|
||||
ADD i DEL s± zarezerwowane dla administratorów serwisów.
|
||||
RANDOMNEWS may only be used by Services admins.
|
||||
|
||||
###########################################################################
|
||||
#
|
||||
@@ -5312,7 +5307,7 @@ CHAN_HELP_CMD_INFO
|
||||
INFO Pokazuje informacje o zarejestrowanym kanale
|
||||
|
||||
CHAN_HELP_CMD_INVITE
|
||||
INVITE Tells ChanServ to invite you into a channel
|
||||
INVITE Zaprasza osobê wydaj±c± polecenie na kana³
|
||||
|
||||
CHAN_HELP_CMD_KICK
|
||||
KICK Wyrzuca wskazany nick z kana³u
|
||||
@@ -5598,9 +5593,10 @@ CHAN_HELP_SET_PRIVATE
|
||||
CHAN_HELP_SET_RESTRICTED
|
||||
Sk³adnia: SET kana³ RESTRICTED {ON | OFF}
|
||||
|
||||
Enables or disables the restricted access option for a
|
||||
channel. When restricted access is set, users not on
|
||||
the access list will instead be kicked and banned from the channel.
|
||||
W³±cza lub wy³±cza opcjê ograniczonego dostêpu do kana³u.
|
||||
Po w³±czeniu tej opcji tylko osoby znajduj±ce siê na
|
||||
li¶cie dostêpu bêd± mog³y przebywaæ na kanale. Pozostali
|
||||
u¿ytkownicy bêd± banowani, a nastêpnie usuwani z kana³u.
|
||||
|
||||
CHAN_HELP_SET_SECURE
|
||||
Sk³adnia: SET kana³ SECURE {ON | OFF}
|
||||
@@ -6224,14 +6220,14 @@ CHAN_HELP_CLEAR
|
||||
Umo¿liwia kompleksowe usuniêcie niektórych ustawieñ na
|
||||
kanale poprzez %S. Dostêpne opcje:
|
||||
|
||||
MODES Zdejmuje wszystkie tryby z kana³u
|
||||
BANS Zdejmuje wszystkie bany na kanale
|
||||
EXCEPTS Zdejmuje wyj±tki od banów na kanale
|
||||
INVITES Clears all invites on the channel.
|
||||
MODES Usuwa tryby z kana³u
|
||||
BANS Usuwa bany z kana³u
|
||||
EXCEPTS Usuwa wyj±tki od banów z kana³u
|
||||
INVITES Usuwa zaproszenia z kana³u
|
||||
OPS Odbiera wszystkim status operatora
|
||||
HOPS Odbiera wszystkim status pó³-operatora
|
||||
VOICES Odbiera wszystkim prawo g³osu
|
||||
USERS Wykopuje wszystkich z kana³u
|
||||
USERS Usuwa u¿ytkowników z kana³u
|
||||
|
||||
Standardowo ta komenda jest dostêpna dla w³a¶ciciela kana³u.
|
||||
|
||||
@@ -6511,9 +6507,9 @@ MEMO_HELP_SET_NOTIFY
|
||||
trybu /AWAY.
|
||||
NEW Powiadomienie bêdzie wysy³ane jedynie w
|
||||
momencie otrzymania wiadomo¶ci.
|
||||
MAIL You will be notified of memos by email aswell as
|
||||
any other settings you have.
|
||||
NOMAIL You will not be notified of memos by email.
|
||||
MAIL Powiadomienia bêd± wysy³ane e-mailem oraz
|
||||
wedle pozosta³ych ustawieñ.
|
||||
NOMAIL Powiadomienia nie bêd± wysy³ane e-mailem.
|
||||
OFF Powiadomienia nie bêd± wysy³ane.
|
||||
|
||||
Opcja ON jest kombinacj± opcji LOGON oraz NEW.
|
||||
@@ -6695,7 +6691,7 @@ OPER_HELP_CMD_DEFCON
|
||||
DEFCON Modyfikuje poziom systemu DefCon
|
||||
|
||||
OPER_HELP_CMD_CHANKILL
|
||||
CHANKILL Od³±cza wszystkich u¿ytkowników na kanale
|
||||
CHANKILL AKILL wszystkich u¿ytkowników na kanale
|
||||
|
||||
OPER_HELP_CMD_OLINE
|
||||
OLINE Daje flagi operatora wybranemu u¿ytkownikowi
|
||||
@@ -7581,7 +7577,7 @@ HOST_DELALL
|
||||
Vhosty dla grupy %s zosta³y usuniête.
|
||||
|
||||
HOST_DELALL_SYNTAX
|
||||
DELALL <nick>.
|
||||
DELALL <nick>.
|
||||
|
||||
HOST_IDENT_SETALL
|
||||
Vhosty dla grupy %s zosta³y zmienione na %s@%s.
|
||||
@@ -7602,10 +7598,10 @@ HOST_NOREG
|
||||
Nie znaleziono %s w bazie serwisu NickServ.
|
||||
|
||||
HOST_SET_SYNTAX
|
||||
Sk³adnia %R%s SET <nick> <maska-hosta>.
|
||||
SET <nick> <maska-hosta>.
|
||||
|
||||
HOST_SETALL_SYNTAX
|
||||
Sk³adnia %R%s SETALL <nick> <maska-hosta>.
|
||||
SETALL <nick> <maska-hosta>.
|
||||
|
||||
HOST_DENIED
|
||||
Brak dostêpu.
|
||||
@@ -7631,7 +7627,7 @@ HOST_DEL
|
||||
HOST_DEL_SYNTAX
|
||||
DEL <nick>.
|
||||
HOST_OFF
|
||||
Your vhost was removed and the normal cloaking restored.
|
||||
Twój vhost zosta³ usuniêty i zosta³o w³±czone normalne ukrywanie hosta.
|
||||
HOST_OFF_UNREAL
|
||||
Twój vhost zosta³ usuniêty. Aby w³±czyæ standardowe ukrywanie hosta wpisz /mode %s +%s
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# Portuguese language file.
|
||||
#
|
||||
# (C) 2003-2009 Anope Team
|
||||
# (C) 2003-2010 Anope Team
|
||||
# Contact us at team@anope.org
|
||||
#
|
||||
# Please read COPYING and README for furhter details.
|
||||
@@ -711,7 +711,7 @@ NICK_SASET_LANGUAGE_SYNTAX
|
||||
NICK_SASET_LANGUAGE_UNKNOWN
|
||||
Unknown language number %d. Type %R%s HELP SET LANGUAGE for a list of languages.
|
||||
NICK_SASET_LANGUAGE_CHANGED
|
||||
Language changed to Portuguese.
|
||||
Language for %s changed to %s.
|
||||
|
||||
|
||||
# ACCESS responses
|
||||
@@ -3330,9 +3330,7 @@ NEWS_HELP_LOGON
|
||||
more news messages, only the most recent will be sent.)
|
||||
NewsCount can be configured in services.conf.
|
||||
|
||||
LOGONNEWS LIST may be used by any IRC operator to list the
|
||||
current news messages. ADD and DEL may only be used by
|
||||
Services admins.
|
||||
LOGONNEWS may only be used by Services admins.
|
||||
|
||||
NEWS_HELP_OPER
|
||||
Syntax: OPERNEWS ADD text
|
||||
@@ -3346,9 +3344,7 @@ NEWS_HELP_OPER
|
||||
more news messages, only the most recent will be sent.)
|
||||
NewsCount can be configured in services.conf.
|
||||
|
||||
OPERNEWS LIST may be used by any IRC operator to list the
|
||||
current oper news messages. ADD and DEL may only be used by
|
||||
Services admins.
|
||||
OPERNEWS may only be used by Services admins.
|
||||
|
||||
NEWS_HELP_RANDOM
|
||||
Sintaxe: RANDOMNEWS ADD texto
|
||||
@@ -3359,9 +3355,7 @@ NEWS_HELP_RANDOM
|
||||
se conecta à rede, uma (apenas uma) das random news será
|
||||
aleatóriamente escolhida e enviada a ele.
|
||||
|
||||
RANDOMNEWS LIST pode ser usado por qualquer Operador
|
||||
para listar as random news. ADD e DEL só podem ser usados
|
||||
pelos Administradores dos Services.
|
||||
RANDOMNEWS may only be used by Services admins.
|
||||
|
||||
###########################################################################
|
||||
#
|
||||
@@ -5522,7 +5516,7 @@ OPER_HELP_CMD_SHUTDOWN
|
||||
OPER_HELP_CMD_DEFCON
|
||||
DEFCON Manipula o sistema DefCon
|
||||
OPER_HELP_CMD_CHANKILL
|
||||
CHANKILL Derruba todos os usuários de um canal específico
|
||||
CHANKILL AKILL todos os usuários de um canal específico
|
||||
OPER_HELP_CMD_OLINE
|
||||
OLINE Dá flags de Operador a um determinado usuário
|
||||
OPER_HELP_CMD_UMODE
|
||||
@@ -6515,9 +6509,9 @@ HOST_SET_IDENTTOOLONG
|
||||
HOST_NOREG
|
||||
Usuário %s não encontrado na DB do NickServ.
|
||||
HOST_SET_SYNTAX
|
||||
Sintaxe: %R%s set <nick> <hostmask>.
|
||||
SET <nick> <hostmask>.
|
||||
HOST_SETALL_SYNTAX
|
||||
Sintaxe: %R%s setall <nick> <hostmask>.
|
||||
SETALL <nick> <hostmask>.
|
||||
HOST_DENIED
|
||||
Acesso Negado.
|
||||
HOST_NOT_ASSIGNED
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# Russian language file for Anope
|
||||
#
|
||||
# (C) 2003-2009 Anope Team
|
||||
# (C) 2003-2010 Anope Team
|
||||
# Contact us at team@anope.org
|
||||
#
|
||||
# Please read COPYING and README for further details.
|
||||
@@ -694,7 +694,7 @@ NICK_SASET_LANGUAGE_SYNTAX
|
||||
NICK_SASET_LANGUAGE_UNKNOWN
|
||||
ßçûêà ïîä íîìåðîì %d íå ñóùåñòâóåò. Ñïèñîê äîñòóïíûõ ÿçûêîâ: %R%s HELP SET LANGUAGE.
|
||||
NICK_SASET_LANGUAGE_CHANGED
|
||||
ßçûê äëÿ óêàçàííîãî íèêà èçìåíåí íà Ðóññêèé.
|
||||
Language for %s changed to %s.
|
||||
|
||||
# ACCESS responses
|
||||
NICK_ACCESS_SYNTAX
|
||||
@@ -2448,6 +2448,8 @@ OPER_STATS_CHANSERV_MEM
|
||||
ChanServ : %6d çàïèñåé, %5d kB
|
||||
OPER_STATS_BOTSERV_MEM
|
||||
BotServ : %6d çàïèñåé, %5d kB
|
||||
OPER_STATS_HOSTSERV_MEM
|
||||
HostServ : %6d çàïèñåé, %5d kB
|
||||
OPER_STATS_OPERSERV_MEM
|
||||
OperServ : %6d çàïèñåé, %5d kB
|
||||
OPER_STATS_SESSIONS_MEM
|
||||
@@ -3307,9 +3309,7 @@ NEWS_HELP_LOGON
|
||||
êà÷åñòâå ïàðàìåòðà âû ìîæåòå óêàçàòü íîìåð íîâîñòè - ÷òî áû óäàëèòü
|
||||
îäíó íîâîñòü, èëè ALL - ÷òî áû î÷èñòèòü ñïèñîê íîâîñòåé ïîëíîñòüþ.
|
||||
|
||||
Êîìàíäà LOGONNEWS LIST âûâîäèò ñïèñîê òåêóùèõ íîâîñòåé è ìîæåò áûòü
|
||||
èñïîëüçîâàíà ëþáûì IRC-îïåðàòîðîì. Êîìàíäû ADD è DEL äîñòóïíû òîëüêî
|
||||
Àäìèíèñòðàòîðàì ñåðâèñîâ.
|
||||
LOGONNEWS may only be used by Services admins.
|
||||
|
||||
NEWS_HELP_OPER
|
||||
Ñèíòàêñèñ: OPERNEWS ADD òåêñò
|
||||
@@ -3330,9 +3330,7 @@ NEWS_HELP_OPER
|
||||
êà÷åñòâå ïàðàìåòðà âû ìîæåòå óêàçàòü íîìåð íîâîñòè - ÷òî áû óäàëèòü
|
||||
îäíó íîâîñòü, èëè ALL - ÷òî áû î÷èñòèòü ñïèñîê íîâîñòåé ïîëíîñòüþ.
|
||||
|
||||
Êîìàíäà OPERNEWS LIST âûâîäèò ñïèñîê òåêóùèõ íîâîñòåé è ìîæåò áûòü
|
||||
èñïîëüçîâàíà ëþáûì IRC-îïåðàòîðîì. Êîìàíäû ADD è DEL äîñòóïíû òîëüêî
|
||||
Àäìèíèñòðàòîðàì ñåðâèñîâ.
|
||||
OPERNEWS may only be used by Services admins.
|
||||
|
||||
NEWS_HELP_RANDOM
|
||||
Ñèíòàêñèñ: RANDOMNEWS ADD òåêñò
|
||||
@@ -3350,9 +3348,7 @@ NEWS_HELP_RANDOM
|
||||
êà÷åñòâå ïàðàìåòðà âû ìîæåòå óêàçàòü íîìåð íîâîñòè - ÷òî áû óäàëèòü
|
||||
îäíó íîâîñòü, èëè ALL - ÷òî áû î÷èñòèòü ñïèñîê íîâîñòåé ïîëíîñòüþ.
|
||||
|
||||
Êîìàíäà RANDOMNEWS LIST âûâîäèò ñïèñîê òåêóùèõ íîâîñòåé è ìîæåò
|
||||
áûòü èñïîëüçîâàíà ëþáûì IRC-Îïåðàòîðîì. Êîìàíäû ADD è DEL äîñòóïíû
|
||||
òîëüêî Àäìèíèñòðàòîðàì ñåðâèñîâ.
|
||||
RANDOMNEWS may only be used by Services admins.
|
||||
|
||||
###########################################################################
|
||||
#
|
||||
@@ -6655,9 +6651,9 @@ HOST_SET_IDENTTOOLONG
|
||||
HOST_NOREG
|
||||
Ïîëüçîâàòåëü %s íå íàéäåí â ñåðâèñíîé áàçå äàííûõ íèêîâ.
|
||||
HOST_SET_SYNTAX
|
||||
Ñèòàêñèñ: %R%s SET <íèê> <õîñòìàñêà>.
|
||||
SET <íèê> <õîñòìàñêà>.
|
||||
HOST_SETALL_SYNTAX
|
||||
Ñèíòàêñèñ %R%s SETALL <íèê> <õîñòìàñêà>.
|
||||
SETALL <íèê> <õîñòìàñêà>.
|
||||
HOST_DENIED
|
||||
Äîñòóï çàïðåùåí.
|
||||
HOST_NOT_ASSIGNED
|
||||
|
||||
+6
-5
@@ -1,6 +1,6 @@
|
||||
/* Various routines to perform simple actions.
|
||||
*
|
||||
* (C) 2003-2009 Anope Team
|
||||
* (C) 2003-2010 Anope Team
|
||||
* Contact us at team@anope.org
|
||||
*
|
||||
* Please read COPYING and README for further details.
|
||||
@@ -181,7 +181,8 @@ void common_unban(ChannelInfo * ci, char *nick)
|
||||
for (ban = ci->c->bans->entries; ban; ban = next) {
|
||||
next = ban->next;
|
||||
if (entry_match(ban, u->nick, u->username, u->host, ip) ||
|
||||
entry_match(ban, u->nick, u->username, u->vhost, ip)) {
|
||||
entry_match(ban, u->nick, u->username, u->vhost, ip) ||
|
||||
entry_match(ban, u->nick, u->username, u->chost, ip)) {
|
||||
anope_cmd_mode(whosends(ci), ci->name, "-b %s", ban->mask);
|
||||
if (ircdcap->tsmode)
|
||||
av[3] = ban->mask;
|
||||
@@ -240,10 +241,10 @@ char *common_get_vhost(User * u)
|
||||
if (!u)
|
||||
return NULL;
|
||||
|
||||
if (ircd->vhostmode && (u->mode & ircd->vhostmode))
|
||||
return u->vhost;
|
||||
else if (ircd->vhost && u->vhost)
|
||||
if (ircd->vhostmode && (u->mode & ircd->vhostmode) && u->vhost)
|
||||
return u->vhost;
|
||||
else if (ircd->vhostmode && (u->mode & ircd->vhostmode) && u->chost)
|
||||
return u->chost;
|
||||
else
|
||||
return u->host;
|
||||
}
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
/* base64 routines.
|
||||
*
|
||||
* (C) 2003-2009 Anope Team
|
||||
* (C) 2003-2010 Anope Team
|
||||
* Contact us at team@anope.org
|
||||
*
|
||||
* Please read COPYING and README for further details.
|
||||
|
||||
+1
-1
@@ -2,7 +2,7 @@
|
||||
#
|
||||
# Configuration script for Services
|
||||
#
|
||||
# (C) 2003-2009 Anope Team
|
||||
# (C) 2003-2010 Anope Team
|
||||
# Contact us at team@anope.org
|
||||
#
|
||||
# Please read COPYING and README for further details.
|
||||
|
||||
+15
-4
@@ -1,6 +1,6 @@
|
||||
/* BotServ functions
|
||||
*
|
||||
* (C) 2003-2009 Anope Team
|
||||
* (C) 2003-2010 Anope Team
|
||||
* Contact us at team@anope.org
|
||||
*
|
||||
* Please read COPYING and README for further details.
|
||||
@@ -845,8 +845,15 @@ static void check_ban(ChannelInfo * ci, User * u, int ttbtype)
|
||||
if (!bd)
|
||||
return;
|
||||
|
||||
/* Bug #1135 - Don't kick/ban ULined clients */
|
||||
if (is_ulined(u->server->name))
|
||||
return;
|
||||
|
||||
bd->ttb[ttbtype]++;
|
||||
if (bd->ttb[ttbtype] == ci->ttb[ttbtype]) {
|
||||
if (ci->ttb[ttbtype] && bd->ttb[ttbtype] >= ci->ttb[ttbtype]) {
|
||||
/* bd->ttb[ttbtype] can possibly be > ci->ttb[ttbtype] if ci->ttb[ttbtype] was changed after
|
||||
* the user has been kicked - Adam
|
||||
*/
|
||||
char *av[4];
|
||||
int ac;
|
||||
char mask[BUFSIZE];
|
||||
@@ -894,6 +901,10 @@ static void bot_kick(ChannelInfo * ci, User * u, int message, ...)
|
||||
if (!ci || !ci->bi || !ci->c || !u)
|
||||
return;
|
||||
|
||||
/* Bug #1135 - Don't kick ULined clients */
|
||||
if (is_ulined(u->server->name))
|
||||
return;
|
||||
|
||||
va_start(args, message);
|
||||
fmt = getstring(u->na, message);
|
||||
if (!fmt)
|
||||
@@ -1078,13 +1089,13 @@ void bot_raw_mode(User * requester, ChannelInfo * ci, char *mode,
|
||||
av[0] = ci->name;
|
||||
av[1] = buf;
|
||||
av[2] = mode;
|
||||
av[3] = nick;
|
||||
av[3] = GET_USER(u);
|
||||
ac = 4;
|
||||
anope_cmd_mode(ci->bi->nick, av[0], "%s %s", av[2], av[3]);
|
||||
} else {
|
||||
av[0] = ci->name;
|
||||
av[1] = mode;
|
||||
av[2] = nick;
|
||||
av[2] = GET_USER(u);
|
||||
ac = 3;
|
||||
anope_cmd_mode(ci->bi->nick, av[0], "%s %s", av[1], av[2]);
|
||||
}
|
||||
|
||||
+106
-33
@@ -1,6 +1,6 @@
|
||||
/* Channel-handling routines.
|
||||
*
|
||||
* (C) 2003-2009 Anope Team
|
||||
* (C) 2003-2010 Anope Team
|
||||
* Contact us at team@anope.org
|
||||
*
|
||||
* Please read COPYING and README for further details.
|
||||
@@ -52,6 +52,10 @@ void chan_deluser(User * user, Channel * c)
|
||||
anope_cmd_part(c->ci->bi->nick, c->name, NULL);
|
||||
}
|
||||
|
||||
/* Channel is permament and shouldn't be deleted */
|
||||
if (anope_get_permchan_mode() && c->mode & anope_get_permchan_mode())
|
||||
return;
|
||||
|
||||
if (!c->users)
|
||||
chan_delete(c);
|
||||
}
|
||||
@@ -173,7 +177,12 @@ void chan_set_modes(const char *source, Channel * chan, int ac, char **av,
|
||||
alog("debug: Changing modes for %s to %s", chan->name,
|
||||
merge_args(ac, av));
|
||||
|
||||
u = finduser(source);
|
||||
if (UseTS6 && ircd->ts6) {
|
||||
u = find_byuid(source);
|
||||
if (!u) u = finduser(source);
|
||||
} else
|
||||
u = finduser(source);
|
||||
|
||||
if (u && (chan_get_user_status(chan, u) & CUS_DEOPPED)) {
|
||||
char *s;
|
||||
|
||||
@@ -239,12 +248,15 @@ void chan_set_modes(const char *source, Channel * chan, int ac, char **av,
|
||||
}
|
||||
}
|
||||
|
||||
if (!(user = finduser(*av))
|
||||
&& !(UseTS6 && ircd->ts6 && (user = find_byuid(*av)))) {
|
||||
if (debug) {
|
||||
if (UseTS6 && ircd->ts6) {
|
||||
user = find_byuid(*av);
|
||||
if (!user) user = finduser(*av);
|
||||
} else
|
||||
user = finduser(*av);
|
||||
if (!user) {
|
||||
if (debug)
|
||||
alog("debug: MODE %s %c%c for nonexistent user %s",
|
||||
chan->name, (add ? '+' : '-'), mode, *av);
|
||||
}
|
||||
chan->name, (add ? '+' : '-'), mode, *av);
|
||||
continue;
|
||||
}
|
||||
|
||||
@@ -254,9 +266,9 @@ void chan_set_modes(const char *source, Channel * chan, int ac, char **av,
|
||||
|
||||
if (add) {
|
||||
chan_set_user_status(chan, user, cum->status);
|
||||
/* If this does +o, remove any DEOPPED flag */
|
||||
if (cum->status & CUS_OP)
|
||||
chan_remove_user_status(chan, user, CUS_DEOPPED);
|
||||
/* If this does +o or +h, remove any DEOPPED flag */
|
||||
if (cum->status & CUS_OP || cum->status & CUS_HALFOP)
|
||||
chan_remove_user_status(chan, user, CUS_DEOPPED);
|
||||
} else {
|
||||
chan_remove_user_status(chan, user, cum->status);
|
||||
}
|
||||
@@ -302,8 +314,14 @@ void chan_set_modes(const char *source, Channel * chan, int ac, char **av,
|
||||
}
|
||||
}
|
||||
|
||||
/* Don't bounce modes from u:lined clients or servers, bug #1004. */
|
||||
user = finduser(source);
|
||||
/* Don't bounce modes from u:lined clients or servers, bug #1004. *
|
||||
* We can get UUIDs as well.. don not assume nick ~ Viper */
|
||||
if (UseTS6 && ircd->ts6) {
|
||||
user = find_byuid(source);
|
||||
if (!user) user = finduser(source);
|
||||
} else
|
||||
user = finduser(source);
|
||||
|
||||
if ((user && is_ulined(user->server->name)) || is_ulined((char *)source))
|
||||
return;
|
||||
|
||||
@@ -317,7 +335,14 @@ void chan_set_modes(const char *source, Channel * chan, int ac, char **av,
|
||||
real_ac--;
|
||||
real_av++;
|
||||
for (i = 0; i < real_ac; i++) {
|
||||
if ((user = finduser(*real_av)) && is_on_chan(chan, user)) {
|
||||
if (UseTS6 && ircd->ts6) {
|
||||
user = find_byuid(*real_av);
|
||||
if (!user) user = finduser(*real_av);
|
||||
} else
|
||||
user = finduser(*real_av);
|
||||
|
||||
if (!user && UseTS6 && ircd->ts6) user = find_byuid(*real_av);
|
||||
if (user && is_on_chan(chan, user)) {
|
||||
if (check < 2)
|
||||
chan_set_correct_modes(user, chan, 0);
|
||||
else if ((chan->ci->flags) && (chan->ci->flags & CI_SECUREOPS))
|
||||
@@ -799,10 +824,20 @@ void do_sjoin(const char *source, int ac, char **av)
|
||||
cumodes[2] = cu->user->nick;
|
||||
chan_set_modes(source, c, 3, cumodes, 2);
|
||||
}
|
||||
if (c->ci && c->ci->bi) {
|
||||
/* This is ugly, but it always works */
|
||||
anope_cmd_part(c->ci->bi->nick, c->name, "TS reop");
|
||||
bot_join(c->ci);
|
||||
if (c->ci)
|
||||
{
|
||||
if (c->ci->bi)
|
||||
{
|
||||
/* This is ugly, but it always works */
|
||||
anope_cmd_part(c->ci->bi->nick, c->name, "TS reop");
|
||||
bot_join(c->ci);
|
||||
}
|
||||
/* Make sure +r is set */
|
||||
if (ircd->chanreg && ircd->regmode)
|
||||
{
|
||||
c->mode |= ircd->regmode;
|
||||
anope_cmd_mode(whosends(c->ci), c->name, "+r");
|
||||
}
|
||||
}
|
||||
/* XXX simple modes and bans */
|
||||
} else if (c->creation_time < ts)
|
||||
@@ -1456,7 +1491,7 @@ void chan_set_correct_modes(User * user, Channel * c, int give_modes)
|
||||
strcat(modebuf, tmp);
|
||||
free(tmp);
|
||||
strcat(userbuf, " ");
|
||||
strcat(userbuf, user->nick);
|
||||
strcat(userbuf, GET_USER(user));
|
||||
} else {
|
||||
add_modes &= ~CUS_OWNER;
|
||||
}
|
||||
@@ -1465,14 +1500,14 @@ void chan_set_correct_modes(User * user, Channel * c, int give_modes)
|
||||
strcat(modebuf, tmp);
|
||||
free(tmp);
|
||||
strcat(userbuf, " ");
|
||||
strcat(userbuf, user->nick);
|
||||
strcat(userbuf, GET_USER(user));
|
||||
} else {
|
||||
add_modes &= ~CUS_PROTECT;
|
||||
}
|
||||
if ((add_modes & CUS_OP) && !(status & CUS_OP)) {
|
||||
strcat(modebuf, "o");
|
||||
strcat(userbuf, " ");
|
||||
strcat(userbuf, user->nick);
|
||||
strcat(userbuf, GET_USER(user));
|
||||
rem_modes |= CUS_DEOPPED;
|
||||
} else {
|
||||
add_modes &= ~CUS_OP;
|
||||
@@ -1480,14 +1515,16 @@ void chan_set_correct_modes(User * user, Channel * c, int give_modes)
|
||||
if ((add_modes & CUS_HALFOP) && !(status & CUS_HALFOP)) {
|
||||
strcat(modebuf, "h");
|
||||
strcat(userbuf, " ");
|
||||
strcat(userbuf, user->nick);
|
||||
strcat(userbuf, GET_USER(user));
|
||||
/* Halfops are ops too, having a halfop with CUS_DEOPPED is not good - Adam */
|
||||
rem_modes |= CUS_DEOPPED;
|
||||
} else {
|
||||
add_modes &= ~CUS_HALFOP;
|
||||
}
|
||||
if ((add_modes & CUS_VOICE) && !(status & CUS_VOICE)) {
|
||||
strcat(modebuf, "v");
|
||||
strcat(userbuf, " ");
|
||||
strcat(userbuf, user->nick);
|
||||
strcat(userbuf, GET_USER(user));
|
||||
} else {
|
||||
add_modes &= ~CUS_VOICE;
|
||||
}
|
||||
@@ -1499,25 +1536,30 @@ void chan_set_correct_modes(User * user, Channel * c, int give_modes)
|
||||
strcat(modebuf, tmp);
|
||||
free(tmp);
|
||||
strcat(userbuf, " ");
|
||||
strcat(userbuf, user->nick);
|
||||
strcat(userbuf, GET_USER(user));
|
||||
}
|
||||
if (rem_modes & CUS_PROTECT) {
|
||||
tmp = stripModePrefix(ircd->adminset);
|
||||
strcat(modebuf, tmp);
|
||||
free(tmp);
|
||||
strcat(userbuf, " ");
|
||||
strcat(userbuf, user->nick);
|
||||
strcat(userbuf, GET_USER(user));
|
||||
}
|
||||
if (rem_modes & CUS_OP) {
|
||||
strcat(modebuf, "o");
|
||||
strcat(userbuf, " ");
|
||||
strcat(userbuf, user->nick);
|
||||
add_modes |= CUS_DEOPPED;
|
||||
strcat(userbuf, GET_USER(user));
|
||||
/* Do not mark a user as deopped if they are halfopd - Adam */
|
||||
if (!(add_modes & CUS_HALFOP) && !(status & CUS_HALFOP))
|
||||
add_modes |= CUS_DEOPPED;
|
||||
}
|
||||
if (rem_modes & CUS_HALFOP) {
|
||||
strcat(modebuf, "h");
|
||||
strcat(userbuf, " ");
|
||||
strcat(userbuf, user->nick);
|
||||
strcat(userbuf, GET_USER(user));
|
||||
/* Do not mark a user as deopped if they are opped - Adam */
|
||||
if (!(add_modes & CUS_OP) && !(status & CUS_OP))
|
||||
add_modes |= CUS_DEOPPED;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1818,6 +1860,15 @@ char *get_redirect(Channel * chan)
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/* This is a dummy function part of making anope accept modes
|
||||
* it does actively parse.. ~ Viper */
|
||||
char *get_unkwn(Channel * chan)
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
Channel *join_user_update(User * user, Channel * chan, char *name,
|
||||
time_t chants)
|
||||
{
|
||||
@@ -1843,11 +1894,20 @@ Channel *join_user_update(User * user, Channel * chan, char *name,
|
||||
modes[2] = cu->user->nick;
|
||||
chan_set_modes(s_OperServ, chan, 3, modes, 2);
|
||||
}
|
||||
if (chan->ci && chan->ci->bi)
|
||||
if (chan->ci)
|
||||
{
|
||||
/* This is ugly, but it always works */
|
||||
anope_cmd_part(chan->ci->bi->nick, chan->name, "TS reop");
|
||||
bot_join(chan->ci);
|
||||
if (chan->ci->bi)
|
||||
{
|
||||
/* This is ugly, but it always works */
|
||||
anope_cmd_part(chan->ci->bi->nick, chan->name, "TS reop");
|
||||
bot_join(chan->ci);
|
||||
}
|
||||
/* Make sure +r is set */
|
||||
if (ircd->chanreg && ircd->regmode)
|
||||
{
|
||||
chan->mode |= ircd->regmode;
|
||||
anope_cmd_mode(whosends(chan->ci), chan->name, "+r");
|
||||
}
|
||||
}
|
||||
/* XXX simple modes and bans */
|
||||
}
|
||||
@@ -1932,6 +1992,17 @@ void set_redirect(Channel * chan, char *value)
|
||||
chan->redirect ? chan->redirect : "no redirect");
|
||||
}
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/* This is a dummy function to make anope parse a param for a mode,
|
||||
* yet we don't use that param internally.. ~ Viper */
|
||||
void set_unkwn(Channel *chan, char *value)
|
||||
{
|
||||
/* Do nothing.. */
|
||||
}
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
void do_mass_mode(char *modes)
|
||||
{
|
||||
int ac;
|
||||
@@ -2176,7 +2247,7 @@ int entry_match(Entry * e, char *nick, char *user, char *host, uint32 ip)
|
||||
&& (!user || stricmp(e->user, user) != 0))
|
||||
return 0;
|
||||
if ((e->type & ENTRYTYPE_HOST)
|
||||
&& (!user || stricmp(e->host, host) != 0))
|
||||
&& (!host || stricmp(e->host, host) != 0))
|
||||
return 0;
|
||||
if ((e->type & ENTRYTYPE_NICK_WILD)
|
||||
&& !match_wild_nocase(e->nick, nick))
|
||||
@@ -2331,7 +2402,9 @@ Entry *elist_match_user(EList * list, User * u)
|
||||
/* Match what we ve got against the lists.. */
|
||||
res = elist_match(list, u->nick, u->username, u->host, ip);
|
||||
if (!res)
|
||||
elist_match(list, u->nick, u->username, u->vhost, ip);
|
||||
res = elist_match(list, u->nick, u->username, u->vhost, ip);
|
||||
if (!res)
|
||||
res = elist_match(list, u->nick, u->username, u->chost, ip);
|
||||
|
||||
if (host)
|
||||
free(host);
|
||||
|
||||
+128
-43
@@ -1,6 +1,6 @@
|
||||
/* ChanServ functions.
|
||||
*
|
||||
* (C) 2003-2009 Anope Team
|
||||
* (C) 2003-2010 Anope Team
|
||||
* Contact us at team@anope.org
|
||||
*
|
||||
* Please read COPYING and README for further details.
|
||||
@@ -1082,10 +1082,11 @@ void save_cs_rdb_dbase(void)
|
||||
void check_modes(Channel * c)
|
||||
{
|
||||
char modebuf[64], argbuf[BUFSIZE], *end = modebuf, *end2 = argbuf;
|
||||
uint32 modes;
|
||||
uint32 modes = 0;
|
||||
ChannelInfo *ci;
|
||||
CBModeInfo *cbmi;
|
||||
CBMode *cbm;
|
||||
CBModeInfo *cbmi = NULL;
|
||||
CBMode *cbm = NULL;
|
||||
boolean DefConOn = DefConLevel != 5;
|
||||
|
||||
if (!c) {
|
||||
if (debug) {
|
||||
@@ -1122,14 +1123,16 @@ void check_modes(Channel * c)
|
||||
anope_cmd_mode(whosends(ci), c->name, "-r");
|
||||
}
|
||||
}
|
||||
return;
|
||||
/* Channels that are not regged also need the defcon modes.. ~ Viper */
|
||||
/* return; */
|
||||
}
|
||||
|
||||
/* Initialize te modes-var to set all modes not set yet but which should
|
||||
/* Initialize the modes-var to set all modes not set yet but which should
|
||||
* be set as by mlock and defcon.
|
||||
*/
|
||||
modes = ~c->mode & ci->mlock_on;
|
||||
if (DefConModesSet)
|
||||
if (ci)
|
||||
modes = ~c->mode & ci->mlock_on;
|
||||
if (DefConOn && DefConModesSet)
|
||||
modes |= (~c->mode & DefConModesOn);
|
||||
|
||||
/* Initialize the buffers */
|
||||
@@ -1145,10 +1148,15 @@ void check_modes(Channel * c)
|
||||
if (cbmi->getvalue && cbmi->csgetvalue) {
|
||||
char *value;
|
||||
/* Check if it's a defcon or mlock mode */
|
||||
if (DefConModesOn & cbmi->flag)
|
||||
if (DefConOn && DefConModesOn & cbmi->flag)
|
||||
value = cbmi->csgetvalue(&DefConModesCI);
|
||||
else
|
||||
else if (ci)
|
||||
value = cbmi->csgetvalue(ci);
|
||||
else {
|
||||
value = NULL;
|
||||
if (debug)
|
||||
alog ("Warning: setting modes with unknown origin.");
|
||||
}
|
||||
|
||||
cbm = &cbmodes[(int) cbmi->mode];
|
||||
cbm->setvalue(c, value);
|
||||
@@ -1160,17 +1168,22 @@ void check_modes(Channel * c)
|
||||
}
|
||||
}
|
||||
} else if (cbmi->getvalue && cbmi->csgetvalue
|
||||
&& ((ci->mlock_on & cbmi->flag)
|
||||
|| (DefConModesOn & cbmi->flag))
|
||||
&& ((ci && (ci->mlock_on & cbmi->flag))
|
||||
|| (DefConOn && DefConModesOn & cbmi->flag))
|
||||
&& (c->mode & cbmi->flag)) {
|
||||
char *value = cbmi->getvalue(c);
|
||||
char *csvalue;
|
||||
|
||||
/* Check if it's a defcon or mlock mode */
|
||||
if (DefConModesOn & cbmi->flag)
|
||||
if (DefConOn && DefConModesOn & cbmi->flag)
|
||||
csvalue = cbmi->csgetvalue(&DefConModesCI);
|
||||
else
|
||||
else if (ci)
|
||||
csvalue = cbmi->csgetvalue(ci);
|
||||
else {
|
||||
csvalue = NULL;
|
||||
if (debug)
|
||||
alog ("Warning: setting modes with unknown origin.");
|
||||
}
|
||||
|
||||
/* Lock and actual values don't match, so fix the mode */
|
||||
if (value && csvalue && strcmp(value, csvalue)) {
|
||||
@@ -1189,9 +1202,15 @@ void check_modes(Channel * c)
|
||||
if (*(end - 1) == '+')
|
||||
end--;
|
||||
|
||||
modes = c->mode & ci->mlock_off;
|
||||
if (DefConModesSet)
|
||||
modes |= (~c->mode & DefConModesOff);
|
||||
modes = 0;
|
||||
if (ci) {
|
||||
modes = c->mode & ci->mlock_off;
|
||||
/* Make sure we don't remove a mode just set by defcon.. ~ Viper */
|
||||
if (DefConOn && DefConModesSet)
|
||||
modes &= ~(modes & DefConModesOn);
|
||||
}
|
||||
if (DefConOn && DefConModesSet)
|
||||
modes |= c->mode & DefConModesOff;
|
||||
|
||||
if (modes) {
|
||||
*end++ = '-';
|
||||
@@ -1228,7 +1247,7 @@ void check_modes(Channel * c)
|
||||
*end = 0;
|
||||
*end2 = 0;
|
||||
|
||||
anope_cmd_mode(whosends(ci), c->name, "%s%s", modebuf,
|
||||
anope_cmd_mode((ci ? whosends(ci) : s_OperServ), c->name, "%s%s", modebuf,
|
||||
(end2 == argbuf ? "" : argbuf));
|
||||
}
|
||||
|
||||
@@ -1250,13 +1269,13 @@ int check_valid_admin(User * user, Channel * chan, int servermode)
|
||||
if (servermode && !check_access(user, chan->ci, CA_AUTOPROTECT)) {
|
||||
notice_lang(s_ChanServ, user, CHAN_IS_REGISTERED, s_ChanServ);
|
||||
anope_cmd_mode(whosends(chan->ci), chan->name, "%s %s",
|
||||
ircd->adminunset, user->nick);
|
||||
ircd->adminunset, GET_USER(user));
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (check_access(user, chan->ci, CA_AUTODEOP)) {
|
||||
anope_cmd_mode(whosends(chan->ci), chan->name, "%s %s",
|
||||
ircd->adminunset, user->nick);
|
||||
ircd->adminunset, GET_USER(user));
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -1287,40 +1306,40 @@ int check_valid_op(User * user, Channel * chan, int servermode)
|
||||
tmp = stripModePrefix(ircd->ownerunset);
|
||||
anope_cmd_mode(whosends(chan->ci), chan->name,
|
||||
"%so%s %s %s %s", ircd->adminunset,
|
||||
tmp, user->nick,
|
||||
user->nick, user->nick);
|
||||
tmp, GET_USER(user),
|
||||
GET_USER(user), GET_USER(user));
|
||||
free(tmp);
|
||||
} else {
|
||||
tmp = stripModePrefix(ircd->ownerunset);
|
||||
anope_cmd_mode(whosends(chan->ci), chan->name,
|
||||
"%sho%s %s %s %s %s",
|
||||
ircd->adminunset, tmp,
|
||||
user->nick, user->nick, user->nick,
|
||||
user->nick);
|
||||
GET_USER(user), GET_USER(user), GET_USER(user),
|
||||
GET_USER(user));
|
||||
free(tmp);
|
||||
}
|
||||
} else if (!ircd->owner && ircd->protect) {
|
||||
if (check_access(user, chan->ci, CA_AUTOHALFOP)) {
|
||||
anope_cmd_mode(whosends(chan->ci), chan->name,
|
||||
"%so %s %s", ircd->adminunset,
|
||||
user->nick, user->nick);
|
||||
GET_USER(user), GET_USER(user));
|
||||
} else {
|
||||
anope_cmd_mode(whosends(chan->ci), chan->name,
|
||||
"%soh %s %s %s", ircd->adminunset,
|
||||
user->nick, user->nick, user->nick);
|
||||
GET_USER(user), GET_USER(user), GET_USER(user));
|
||||
}
|
||||
} else {
|
||||
if (check_access(user, chan->ci, CA_AUTOHALFOP)) {
|
||||
anope_cmd_mode(whosends(chan->ci), chan->name, "-o %s",
|
||||
user->nick);
|
||||
GET_USER(user));
|
||||
} else {
|
||||
anope_cmd_mode(whosends(chan->ci), chan->name,
|
||||
"-ho %s %s", user->nick, user->nick);
|
||||
"-ho %s %s", GET_USER(user), GET_USER(user));
|
||||
}
|
||||
}
|
||||
} else {
|
||||
anope_cmd_mode(whosends(chan->ci), chan->name, "-o %s",
|
||||
user->nick);
|
||||
GET_USER(user));
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
@@ -1331,16 +1350,16 @@ int check_valid_op(User * user, Channel * chan, int servermode)
|
||||
tmp = stripModePrefix(ircd->ownerunset);
|
||||
anope_cmd_mode(whosends(chan->ci), chan->name,
|
||||
"%sho%s %s %s %s %s", ircd->adminunset,
|
||||
tmp, user->nick, user->nick,
|
||||
user->nick, user->nick);
|
||||
tmp, GET_USER(user), GET_USER(user),
|
||||
GET_USER(user), GET_USER(user));
|
||||
free(tmp);
|
||||
} else {
|
||||
anope_cmd_mode(whosends(chan->ci), chan->name, "-ho %s %s",
|
||||
user->nick, user->nick);
|
||||
GET_USER(user), GET_USER(user));
|
||||
}
|
||||
} else {
|
||||
anope_cmd_mode(whosends(chan->ci), chan->name, "-o %s",
|
||||
user->nick);
|
||||
GET_USER(user));
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
@@ -1365,7 +1384,7 @@ int check_should_op(User * user, char *chan)
|
||||
return 0;
|
||||
|
||||
if (check_access(user, ci, CA_AUTOOP)) {
|
||||
anope_cmd_mode(whosends(ci), chan, "+o %s", user->nick);
|
||||
anope_cmd_mode(whosends(ci), chan, "+o %s", GET_USER(user));
|
||||
return 1;
|
||||
}
|
||||
|
||||
@@ -1388,7 +1407,7 @@ int check_should_voice(User * user, char *chan)
|
||||
return 0;
|
||||
|
||||
if (check_access(user, ci, CA_AUTOVOICE)) {
|
||||
anope_cmd_mode(whosends(ci), chan, "+v %s", user->nick);
|
||||
anope_cmd_mode(whosends(ci), chan, "+v %s", GET_USER(user));
|
||||
return 1;
|
||||
}
|
||||
|
||||
@@ -1405,7 +1424,7 @@ int check_should_halfop(User * user, char *chan)
|
||||
return 0;
|
||||
|
||||
if (check_access(user, ci, CA_AUTOHALFOP)) {
|
||||
anope_cmd_mode(whosends(ci), chan, "+h %s", user->nick);
|
||||
anope_cmd_mode(whosends(ci), chan, "+h %s", GET_USER(user));
|
||||
return 1;
|
||||
}
|
||||
|
||||
@@ -1425,8 +1444,8 @@ int check_should_owner(User * user, char *chan)
|
||||
if (((ci->flags & CI_SECUREFOUNDER) && is_real_founder(user, ci))
|
||||
|| (!(ci->flags & CI_SECUREFOUNDER) && is_founder(user, ci))) {
|
||||
tmp = stripModePrefix(ircd->ownerset);
|
||||
anope_cmd_mode(whosends(ci), chan, "+o%s %s %s", tmp, user->nick,
|
||||
user->nick);
|
||||
anope_cmd_mode(whosends(ci), chan, "+o%s %s %s", tmp, GET_USER(user),
|
||||
GET_USER(user));
|
||||
free(tmp);
|
||||
return 1;
|
||||
}
|
||||
@@ -1446,8 +1465,8 @@ int check_should_protect(User * user, char *chan)
|
||||
|
||||
if (check_access(user, ci, CA_AUTOPROTECT)) {
|
||||
tmp = stripModePrefix(ircd->adminset);
|
||||
anope_cmd_mode(whosends(ci), chan, "+o%s %s %s", tmp, user->nick,
|
||||
user->nick);
|
||||
anope_cmd_mode(whosends(ci), chan, "+o%s %s %s", tmp, GET_USER(user),
|
||||
GET_USER(user));
|
||||
free(tmp);
|
||||
return 1;
|
||||
}
|
||||
@@ -1552,7 +1571,7 @@ int check_kick(User * user, char *chan, time_t chants)
|
||||
if (akick->flags & AK_ISNICK)
|
||||
get_idealban(ci, user, mask, sizeof(mask));
|
||||
else
|
||||
strcpy(mask, akick->u.mask);
|
||||
strscpy(mask, akick->u.mask, sizeof(mask));
|
||||
reason = akick->reason ? akick->reason : CSAutokickReason;
|
||||
goto kick;
|
||||
}
|
||||
@@ -1683,7 +1702,7 @@ void restore_topic(char *chan)
|
||||
if (ircd->join2set) {
|
||||
if (whosends(ci) == s_ChanServ) {
|
||||
anope_cmd_join(s_ChanServ, chan, c->creation_time);
|
||||
anope_cmd_mode(NULL, chan, "+o %s", s_ChanServ);
|
||||
anope_cmd_mode(NULL, chan, "+o %s", GET_BOT(s_ChanServ));
|
||||
}
|
||||
}
|
||||
anope_cmd_topic(whosends(ci), c->name, c->topic_setter,
|
||||
@@ -1745,7 +1764,7 @@ int check_topiclock(Channel * c, time_t topic_time)
|
||||
if (ircd->join2set) {
|
||||
if (whosends(ci) == s_ChanServ) {
|
||||
anope_cmd_join(s_ChanServ, c->name, c->creation_time);
|
||||
anope_cmd_mode(NULL, c->name, "+o %s", s_ChanServ);
|
||||
anope_cmd_mode(NULL, c->name, "+o %s", GET_BOT(s_ChanServ));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1841,6 +1860,7 @@ void cs_remove_nick(const NickCore * nc)
|
||||
ca->nc = NULL;
|
||||
}
|
||||
}
|
||||
CleanAccess(ci);
|
||||
|
||||
for (akick = ci->akick, j = 0; j < ci->akickcount; akick++, j++) {
|
||||
if ((akick->flags & AK_USED) && (akick->flags & AK_ISNICK)
|
||||
@@ -2469,6 +2489,15 @@ char *cs_get_redirect(ChannelInfo * ci)
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/* This is a dummy function part of making anope accept modes
|
||||
* it does actively parse.. ~ Viper */
|
||||
char *cs_get_unkwn(ChannelInfo * ci)
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
void cs_set_flood(ChannelInfo * ci, char *value)
|
||||
{
|
||||
if (!ci) {
|
||||
@@ -2559,6 +2588,17 @@ void cs_set_redirect(ChannelInfo * ci, char *value)
|
||||
}
|
||||
}
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/* This is a dummy function to make anope parse a param for a mode,
|
||||
* yet we don't use that param internally.. ~ Viper */
|
||||
void cs_set_unkwn(ChannelInfo * ci, char *value)
|
||||
{
|
||||
/* Do nothing.. */
|
||||
}
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
int get_access_level(ChannelInfo * ci, NickAlias * na)
|
||||
{
|
||||
ChanAccess *access;
|
||||
@@ -2709,3 +2749,48 @@ void stick_all(ChannelInfo * ci)
|
||||
free(av[0]);
|
||||
}
|
||||
}
|
||||
|
||||
/** Reorder the access list to get rid of unused entries
|
||||
* @param ci The channel to reorder the access of
|
||||
*/
|
||||
void CleanAccess(ChannelInfo *ci)
|
||||
{
|
||||
int a, b;
|
||||
|
||||
if (!ci)
|
||||
return;
|
||||
|
||||
for (b = 0; b < ci->accesscount; b++)
|
||||
{
|
||||
if (ci->access[b].in_use)
|
||||
{
|
||||
for (a = 0; a < ci->accesscount; a++)
|
||||
{
|
||||
if (a > b)
|
||||
break;
|
||||
if (!ci->access[a].in_use)
|
||||
{
|
||||
ci->access[a].in_use = 1;
|
||||
ci->access[a].level = ci->access[b].level;
|
||||
ci->access[a].nc = ci->access[b].nc;
|
||||
ci->access[a].last_seen = ci->access[b].last_seen;
|
||||
ci->access[b].nc = NULL;
|
||||
ci->access[b].in_use = 0;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* After reordering, entries on the end of the list may be empty, remove them */
|
||||
for (b = ci->accesscount - 1; b >= 0; --b)
|
||||
{
|
||||
if (ci->access[b].in_use)
|
||||
break;
|
||||
ci->accesscount--;
|
||||
}
|
||||
|
||||
/* Reallocate the access list to only use the memory we need */
|
||||
ci->access = srealloc(ci->access, sizeof(ChanAccess) * ci->accesscount);
|
||||
}
|
||||
|
||||
|
||||
+37
-36
@@ -1,6 +1,6 @@
|
||||
/* Routines for looking up commands in a *Serv command list.
|
||||
*
|
||||
* (C) 2003-2009 Anope Team
|
||||
* (C) 2003-2010 Anope Team
|
||||
* Contact us at team@anope.org
|
||||
*
|
||||
* Please read COPYING and README for further details.
|
||||
@@ -167,6 +167,8 @@ void do_help_cmd(char *service, User * u, Command * c, const char *cmd)
|
||||
const char *p1 = NULL, *p2 = NULL, *p3 = NULL, *p4 = NULL;
|
||||
Module *calling_module = mod_current_module;
|
||||
char *calling_module_name = mod_current_module_name;
|
||||
int help_message;
|
||||
int (*help_message_ptr)(User *u) = NULL;
|
||||
|
||||
for (current = c; (current) && (cont == MOD_CONT);
|
||||
current = current->next) {
|
||||
@@ -180,6 +182,10 @@ void do_help_cmd(char *service, User * u, Command * c, const char *cmd)
|
||||
p2 = current->help_param2;
|
||||
p3 = current->help_param3;
|
||||
p4 = current->help_param4;
|
||||
|
||||
help_message = 0;
|
||||
help_message_ptr = NULL;
|
||||
|
||||
if (current->helpmsg_all >= 0) {
|
||||
notice_help(service, u, current->helpmsg_all, p1, p2, p3, p4);
|
||||
has_had_help = 1;
|
||||
@@ -187,43 +193,38 @@ void do_help_cmd(char *service, User * u, Command * c, const char *cmd)
|
||||
cont = current->all_help(u);
|
||||
has_had_help = 1;
|
||||
}
|
||||
if (is_services_root(u)) {
|
||||
if (current->helpmsg_root >= 0) {
|
||||
notice_help(service, u, current->helpmsg_root, p1, p2, p3,
|
||||
p4);
|
||||
has_had_help = 1;
|
||||
} else if (current->root_help) {
|
||||
cont = current->root_help(u);
|
||||
has_had_help = 1;
|
||||
}
|
||||
} else if (is_services_admin(u)) {
|
||||
if (current->helpmsg_admin >= 0) {
|
||||
notice_help(service, u, current->helpmsg_admin, p1, p2, p3,
|
||||
p4);
|
||||
has_had_help = 1;
|
||||
} else if (current->admin_help) {
|
||||
cont = current->admin_help(u);
|
||||
has_had_help = 1;
|
||||
}
|
||||
} else if (is_services_oper(u)) {
|
||||
if (current->helpmsg_oper >= 0) {
|
||||
notice_help(service, u, current->helpmsg_oper, p1, p2, p3,
|
||||
p4);
|
||||
has_had_help = 1;
|
||||
} else if (current->oper_help) {
|
||||
cont = current->oper_help(u);
|
||||
has_had_help = 1;
|
||||
}
|
||||
|
||||
if (is_services_root(u) && (current->helpmsg_root >= 0 || current->root_help)) {
|
||||
if (current->helpmsg_root >= 0)
|
||||
help_message = current->helpmsg_root;
|
||||
else if (current->root_help)
|
||||
help_message_ptr = current->root_help;
|
||||
} else if (is_services_admin(u) && (current->helpmsg_admin >= 0 || current->admin_help)) {
|
||||
if (current->helpmsg_admin >= 0)
|
||||
help_message = current->helpmsg_admin;
|
||||
else if (current->admin_help)
|
||||
help_message_ptr = current->admin_help;
|
||||
} else if (is_services_oper(u) && (current->helpmsg_oper >= 0 || current->oper_help)) {
|
||||
if (current->helpmsg_oper >= 0)
|
||||
help_message = current->helpmsg_oper;
|
||||
else if (current->oper_help)
|
||||
help_message_ptr = current->oper_help;
|
||||
} else {
|
||||
if (current->helpmsg_reg >= 0) {
|
||||
notice_help(service, u, current->helpmsg_reg, p1, p2, p3,
|
||||
p4);
|
||||
has_had_help = 1;
|
||||
} else if (current->regular_help) {
|
||||
cont = current->regular_help(u);
|
||||
has_had_help = 1;
|
||||
}
|
||||
/* Shouldn't we check for the user to be identified? */
|
||||
if (current->helpmsg_reg >= 0)
|
||||
help_message = current->helpmsg_reg;
|
||||
else if (current->regular_help)
|
||||
help_message_ptr = current->regular_help;
|
||||
}
|
||||
|
||||
if (help_message) {
|
||||
notice_help(service, u, help_message, p1, p2, p3, p4);
|
||||
has_had_help = 1;
|
||||
} else if (help_message_ptr) {
|
||||
cont = help_message_ptr(u);
|
||||
has_had_help = 1;
|
||||
}
|
||||
|
||||
}
|
||||
if (has_had_help == 0) {
|
||||
notice_lang(service, u, NO_HELP_AVAILABLE, cmd);
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
/* Compatibility routines.
|
||||
*
|
||||
* (C) 2003-2009 Anope Team
|
||||
* (C) 2003-2010 Anope Team
|
||||
* Contact us at team@anope.org
|
||||
*
|
||||
* Please read COPYING and README for further details.
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
/* Configuration file handling.
|
||||
*
|
||||
* (C) 2003-2009 Anope Team
|
||||
* (C) 2003-2010 Anope Team
|
||||
* Contact us at team@anope.org
|
||||
*
|
||||
* Please read COPYING and README for further details.
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
/* BotServ core functions
|
||||
*
|
||||
* (C) 2003-2009 Anope Team
|
||||
* (C) 2003-2010 Anope Team
|
||||
* Contact us at team@anope.org
|
||||
*
|
||||
* Please read COPYING and README for further details.
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/* BotServ core functions
|
||||
*
|
||||
* (C) 2003-2009 Anope Team
|
||||
* (C) 2003-2010 Anope Team
|
||||
* Contact us at team@anope.org
|
||||
*
|
||||
* Please read COPYING and README for further details.
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/* BotServ core functions
|
||||
*
|
||||
* (C) 2003-2009 Anope Team
|
||||
* (C) 2003-2010 Anope Team
|
||||
* Contact us at team@anope.org
|
||||
*
|
||||
* Please read COPYING and README for further details.
|
||||
|
||||
+9
-5
@@ -1,6 +1,6 @@
|
||||
/* BotServ core functions
|
||||
*
|
||||
* (C) 2003-2009 Anope Team
|
||||
* (C) 2003-2010 Anope Team
|
||||
* Contact us at team@anope.org
|
||||
*
|
||||
* Please read COPYING and README for further details.
|
||||
@@ -124,7 +124,7 @@ int do_bot(User * u)
|
||||
}
|
||||
for (ch = user; *ch && (ch - user) < USERMAX; ch++) {
|
||||
if (!isalnum(*ch)) {
|
||||
notice_lang(s_BotServ, u, BOT_LONG_IDENT, USERMAX - 1);
|
||||
notice_lang(s_BotServ, u, BOT_BAD_IDENT, USERMAX - 1);
|
||||
return MOD_CONT;
|
||||
}
|
||||
}
|
||||
@@ -244,7 +244,7 @@ int do_bot(User * u)
|
||||
if (user) {
|
||||
for (ch = user; *ch && (ch - user) < USERMAX; ch++) {
|
||||
if (!isalnum(*ch)) {
|
||||
notice_lang(s_BotServ, u, BOT_LONG_IDENT, USERMAX - 1);
|
||||
notice_lang(s_BotServ, u, BOT_BAD_IDENT, USERMAX - 1);
|
||||
return MOD_CONT;
|
||||
}
|
||||
}
|
||||
@@ -276,6 +276,12 @@ int do_bot(User * u)
|
||||
EnforceQlinedNick(nick, s_BotServ);
|
||||
}
|
||||
|
||||
/* Send the QUIT before changing the bot internally, so proto mods (InspIRCD 1.2)
|
||||
* can get the uid if needed (or other things )and send that - Adam
|
||||
*/
|
||||
if (user)
|
||||
anope_cmd_quit(bi->nick, "Quit: Be right back");
|
||||
|
||||
if (strcmp(nick, bi->nick))
|
||||
change_bot_nick(bi, nick);
|
||||
|
||||
@@ -299,8 +305,6 @@ int do_bot(User * u)
|
||||
anope_cmd_chg_nick(oldnick, bi->nick);
|
||||
anope_cmd_sqline(bi->nick, "Reserved for services");
|
||||
} else {
|
||||
anope_cmd_quit(oldnick, "Quit: Be right back");
|
||||
|
||||
anope_cmd_bot_nick(bi->nick, bi->user, bi->host, bi->real,
|
||||
ircd->botserv_bot_mode);
|
||||
bot_rejoin_all(bi);
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/* BotServ core functions
|
||||
*
|
||||
* (C) 2003-2009 Anope Team
|
||||
* (C) 2003-2010 Anope Team
|
||||
* Contact us at team@anope.org
|
||||
*
|
||||
* Please read COPYING and README for further details.
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/* BotServ core fantasy functions
|
||||
*
|
||||
* (C) 2003-2009 Anope Team
|
||||
* (C) 2003-2010 Anope Team
|
||||
* Contact us at team@anope.org
|
||||
*
|
||||
* Please read COPYING and README for further details.
|
||||
@@ -62,14 +62,14 @@ int do_fantasy(int argc, char **argv)
|
||||
|
||||
do {
|
||||
if (stricmp(argv[0], util->bsname) == 0) {
|
||||
/* This could have been moved to its own module
|
||||
however it would require more coding to handle the pass holders
|
||||
similar to how PROTECT is done
|
||||
*/
|
||||
if (!ircd->halfop) {
|
||||
if (!stricmp(argv[0], "halfop") || !stricmp(argv[0], "dehalfop")) {
|
||||
return MOD_CONT;
|
||||
}
|
||||
/* This could have been moved to its own module
|
||||
however it would require more coding to handle the pass holders
|
||||
similar to how PROTECT is done
|
||||
*/
|
||||
if (!ircd->halfop) {
|
||||
if (!stricmp(argv[0], "halfop") || !stricmp(argv[0], "dehalfop")) {
|
||||
return MOD_CONT;
|
||||
}
|
||||
}
|
||||
u = finduser(argv[1]);
|
||||
ci = cs_findchan(argv[2]);
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/* BotServ core fantasy functions
|
||||
*
|
||||
* (C) 2003-2009 Anope Team
|
||||
* (C) 2003-2010 Anope Team
|
||||
* Contact us at team@anope.org
|
||||
*
|
||||
* Please read COPYING and README for further details.
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/* BotServ core fantasy functions
|
||||
*
|
||||
* (C) 2003-2009 Anope Team
|
||||
* (C) 2003-2010 Anope Team
|
||||
* Contact us at team@anope.org
|
||||
*
|
||||
* Please read COPYING and README for further details.
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/* BotServ core fantasy functions
|
||||
*
|
||||
* (C) 2003-2009 Anope Team
|
||||
* (C) 2003-2010 Anope Team
|
||||
* Contact us at team@anope.org
|
||||
*
|
||||
* Please read COPYING and README for further details.
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/* BotServ core fantasy functions
|
||||
*
|
||||
* (C) 2003-2009 Anope Team
|
||||
* (C) 2003-2010 Anope Team
|
||||
* Contact us at team@anope.org
|
||||
*
|
||||
* Please read COPYING and README for further details.
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
/* BotServ core functions
|
||||
*
|
||||
* (C) 2003-2009 Anope Team
|
||||
* (C) 2003-2010 Anope Team
|
||||
* Contact us at team@anope.org
|
||||
*
|
||||
* Please read COPYING and README for further details.
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
/* BotServ core functions
|
||||
*
|
||||
* (C) 2003-2009 Anope Team
|
||||
* (C) 2003-2010 Anope Team
|
||||
* Contact us at team@anope.org
|
||||
*
|
||||
* Please read COPYING and README for further details.
|
||||
|
||||
+9
-1
@@ -1,6 +1,6 @@
|
||||
/* BotServ core functions
|
||||
*
|
||||
* (C) 2003-2009 Anope Team
|
||||
* (C) 2003-2010 Anope Team
|
||||
* Contact us at team@anope.org
|
||||
*
|
||||
* Please read COPYING and README for further details.
|
||||
@@ -117,6 +117,7 @@ int do_kickcmd(User * u)
|
||||
if (!stricmp(option, "BADWORDS")) {
|
||||
if (!stricmp(value, "ON")) {
|
||||
if (ttb) {
|
||||
errno = 0;
|
||||
ci->ttb[TTB_BADWORDS] =
|
||||
strtol(ttb, (char **) NULL, 10);
|
||||
/* Only error if errno returns ERANGE or EINVAL or we are less then 0 - TSL */
|
||||
@@ -147,6 +148,7 @@ int do_kickcmd(User * u)
|
||||
} else if (!stricmp(option, "BOLDS")) {
|
||||
if (!stricmp(value, "ON")) {
|
||||
if (ttb) {
|
||||
errno = 0;
|
||||
ci->ttb[TTB_BOLDS] = strtol(ttb, (char **) NULL, 10);
|
||||
if (errno == ERANGE || errno == EINVAL
|
||||
|| ci->ttb[TTB_BOLDS] < 0) {
|
||||
@@ -175,6 +177,7 @@ int do_kickcmd(User * u)
|
||||
char *percent = strtok(NULL, " ");
|
||||
|
||||
if (ttb) {
|
||||
errno = 0;
|
||||
ci->ttb[TTB_CAPS] = strtol(ttb, (char **) NULL, 10);
|
||||
if (errno == ERANGE || errno == EINVAL
|
||||
|| ci->ttb[TTB_CAPS] < 0) {
|
||||
@@ -217,6 +220,7 @@ int do_kickcmd(User * u)
|
||||
} else if (!stricmp(option, "COLORS")) {
|
||||
if (!stricmp(value, "ON")) {
|
||||
if (ttb) {
|
||||
errno = 0;
|
||||
ci->ttb[TTB_COLORS] = strtol(ttb, (char **) NULL, 10);
|
||||
if (errno == ERANGE || errno == EINVAL
|
||||
|| ci->ttb[TTB_COLORS] < 0) {
|
||||
@@ -245,6 +249,7 @@ int do_kickcmd(User * u)
|
||||
char *secs = strtok(NULL, " ");
|
||||
|
||||
if (ttb) {
|
||||
errno = 0;
|
||||
ci->ttb[TTB_FLOOD] = strtol(ttb, (char **) NULL, 10);
|
||||
if (errno == ERANGE || errno == EINVAL
|
||||
|| ci->ttb[TTB_FLOOD] < 0) {
|
||||
@@ -289,6 +294,7 @@ int do_kickcmd(User * u)
|
||||
char *times = strtok(NULL, " ");
|
||||
|
||||
if (ttb) {
|
||||
errno = 0;
|
||||
ci->ttb[TTB_REPEAT] = strtol(ttb, (char **) NULL, 10);
|
||||
if (errno == ERANGE || errno == EINVAL
|
||||
|| ci->ttb[TTB_REPEAT] < 0) {
|
||||
@@ -323,6 +329,7 @@ int do_kickcmd(User * u)
|
||||
} else if (!stricmp(option, "REVERSES")) {
|
||||
if (!stricmp(value, "ON")) {
|
||||
if (ttb) {
|
||||
errno = 0;
|
||||
ci->ttb[TTB_REVERSES] =
|
||||
strtol(ttb, (char **) NULL, 10);
|
||||
if (errno == ERANGE || errno == EINVAL
|
||||
@@ -349,6 +356,7 @@ int do_kickcmd(User * u)
|
||||
} else if (!stricmp(option, "UNDERLINES")) {
|
||||
if (!stricmp(value, "ON")) {
|
||||
if (ttb) {
|
||||
errno = 0;
|
||||
ci->ttb[TTB_UNDERLINES] =
|
||||
strtol(ttb, (char **) NULL, 10);
|
||||
if (errno == ERANGE || errno == EINVAL
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
/* BotServ core functions
|
||||
*
|
||||
* (C) 2003-2009 Anope Team
|
||||
* (C) 2003-2010 Anope Team
|
||||
* Contact us at team@anope.org
|
||||
*
|
||||
* Please read COPYING and README for further details.
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
/* BotServ core functions
|
||||
*
|
||||
* (C) 2003-2009 Anope Team
|
||||
* (C) 2003-2010 Anope Team
|
||||
* Contact us at team@anope.org
|
||||
*
|
||||
* Please read COPYING and README for further details.
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/* BotServ core functions
|
||||
*
|
||||
* (C) 2003-2009 Anope Team
|
||||
* (C) 2003-2010 Anope Team
|
||||
* Contact us at team@anope.org
|
||||
*
|
||||
* Please read COPYING and README for further details.
|
||||
|
||||
+8
-80
@@ -1,6 +1,6 @@
|
||||
/* ChanServ core functions
|
||||
*
|
||||
* (C) 2003-2009 Anope Team
|
||||
* (C) 2003-2010 Anope Team
|
||||
* Contact us at team@anope.org
|
||||
*
|
||||
* Please read COPYING and README for further details.
|
||||
@@ -236,14 +236,6 @@ int do_access(User * u)
|
||||
}
|
||||
}
|
||||
|
||||
/* All entries should be in use so we no longer need
|
||||
* to go over the entire list..
|
||||
for (i = 0; i < ci->accesscount; i++) {
|
||||
if (!ci->access[i].in_use)
|
||||
break;
|
||||
}
|
||||
*/
|
||||
|
||||
if (i < CSAccessMax) {
|
||||
ci->accesscount++;
|
||||
ci->access =
|
||||
@@ -268,8 +260,9 @@ int do_access(User * u)
|
||||
notice_lang(s_ChanServ, u, CHAN_ACCESS_ADDED, nc->display,
|
||||
ci->name, access->level);
|
||||
} else if (stricmp(cmd, "DEL") == 0) {
|
||||
int deleted, a, b;
|
||||
if (readonly) {
|
||||
int deleted;
|
||||
|
||||
if (readonly) {
|
||||
notice_lang(s_ChanServ, u, CHAN_ACCESS_DISABLED);
|
||||
return MOD_CONT;
|
||||
}
|
||||
@@ -279,24 +272,8 @@ int do_access(User * u)
|
||||
return MOD_CONT;
|
||||
}
|
||||
|
||||
for (b = 0; b < ci->accesscount; b++) {
|
||||
if (ci->access[b].in_use) {
|
||||
for (a = 0; a < ci->accesscount; a++) {
|
||||
if (a > b)
|
||||
break;
|
||||
if (!ci->access[a].in_use) {
|
||||
ci->access[a].in_use = 1;
|
||||
ci->access[a].level = ci->access[b].level;
|
||||
ci->access[a].nc = ci->access[b].nc;
|
||||
ci->access[a].last_seen =
|
||||
ci->access[b].last_seen;
|
||||
ci->access[b].nc = NULL;
|
||||
ci->access[b].in_use = 0;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
/* Clean the access list to make sure every thing is in use */
|
||||
CleanAccess(ci);
|
||||
|
||||
/* Special case: is it a number/list? Only do search if it isn't. */
|
||||
if (isdigit(*nick) && strspn(nick, "1234567890,-") == strlen(nick)) {
|
||||
@@ -354,37 +331,7 @@ int do_access(User * u)
|
||||
}
|
||||
}
|
||||
|
||||
if (deleted) {
|
||||
/* Reordering - DrStein */
|
||||
for (b = 0; b < ci->accesscount; b++) {
|
||||
if (ci->access[b].in_use) {
|
||||
for (a = 0; a < ci->accesscount; a++) {
|
||||
if (a > b)
|
||||
break;
|
||||
if (!ci->access[a].in_use) {
|
||||
ci->access[a].in_use = 1;
|
||||
ci->access[a].level = ci->access[b].level;
|
||||
ci->access[a].nc = ci->access[b].nc;
|
||||
ci->access[a].last_seen =
|
||||
ci->access[b].last_seen;
|
||||
ci->access[b].nc = NULL;
|
||||
ci->access[b].in_use = 0;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* After reordering only the entries at the end could still be empty.
|
||||
* We ll free the places no longer in use... */
|
||||
for (i = ci->accesscount - 1; i >= 0; i--) {
|
||||
if (ci->access[i].in_use == 1)
|
||||
break;
|
||||
|
||||
ci->accesscount--;
|
||||
}
|
||||
ci->access =
|
||||
srealloc(ci->access,sizeof(ChanAccess) * ci->accesscount);
|
||||
CleanAccess(ci);
|
||||
|
||||
/* We don't know the nick if someone used numbers, so we trigger the event without
|
||||
* nick param. We just do this once, even if someone enters a range. -Certus */
|
||||
@@ -392,34 +339,15 @@ int do_access(User * u)
|
||||
send_event(EVENT_ACCESS_DEL, 3, ci->name, u->nick, na->nick);
|
||||
else
|
||||
send_event(EVENT_ACCESS_DEL, 2, ci->name, u->nick);
|
||||
}
|
||||
} else if (stricmp(cmd, "LIST") == 0) {
|
||||
int sent_header = 0;
|
||||
int a, b;
|
||||
|
||||
if (ci->accesscount == 0) {
|
||||
notice_lang(s_ChanServ, u, CHAN_ACCESS_LIST_EMPTY, chan);
|
||||
return MOD_CONT;
|
||||
}
|
||||
|
||||
for (b = 0; b < ci->accesscount; b++) {
|
||||
if (ci->access[b].in_use) {
|
||||
for (a = 0; a < ci->accesscount; a++) {
|
||||
if (a > b)
|
||||
break;
|
||||
if (!ci->access[a].in_use) {
|
||||
ci->access[a].in_use = 1;
|
||||
ci->access[a].level = ci->access[b].level;
|
||||
ci->access[a].nc = ci->access[b].nc;
|
||||
ci->access[a].last_seen =
|
||||
ci->access[b].last_seen;
|
||||
ci->access[b].nc = NULL;
|
||||
ci->access[b].in_use = 0;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
CleanAccess(ci);
|
||||
|
||||
if (nick && strspn(nick, "1234567890,-") == strlen(nick)) {
|
||||
process_numlist(nick, NULL, access_list_callback, u, ci,
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
/* ChanServ core functions
|
||||
*
|
||||
* (C) 2003-2009 Anope Team
|
||||
* (C) 2003-2010 Anope Team
|
||||
* Contact us at team@anope.org
|
||||
*
|
||||
* Please read COPYING and README for further details.
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
/* ChanServ core functions
|
||||
*
|
||||
* (C) 2003-2009 Anope Team
|
||||
* (C) 2003-2010 Anope Team
|
||||
* Contact us at team@anope.org
|
||||
*
|
||||
* Please read COPYING and README for further details.
|
||||
|
||||
+14
-14
@@ -1,6 +1,6 @@
|
||||
/* ChanServ core functions
|
||||
*
|
||||
* (C) 2003-2009 Anope Team
|
||||
* (C) 2003-2010 Anope Team
|
||||
* Contact us at team@anope.org
|
||||
*
|
||||
* Please read COPYING and README for further details.
|
||||
@@ -186,7 +186,6 @@ int do_clear(User * u)
|
||||
struct c_userlist *cu, *next;
|
||||
|
||||
if (ircd->svsmode_ucmode) {
|
||||
av[0] = chan;
|
||||
anope_cmd_svsmode_chan(av[0], "-o", NULL);
|
||||
if (ircd->owner) {
|
||||
anope_cmd_svsmode_chan(av[0], ircd->ownerunset, NULL);
|
||||
@@ -207,26 +206,26 @@ int do_clear(User * u)
|
||||
snprintf(tmp, BUFSIZE, "-%s%s%s", (isop ? "o" : ""), (isadmin ?
|
||||
ircd->adminunset+1 : ""), (isown ? ircd->ownerunset+1 : ""));
|
||||
|
||||
av[0] = chan;
|
||||
if (ircdcap->tsmode) {
|
||||
snprintf(buf, BUFSIZE - 1, "%ld", (long int) time(NULL));
|
||||
av[1] = buf;
|
||||
av[2] = tmp;
|
||||
/* We have to give as much nicks as modes.. - Viper */
|
||||
for (i = 0; i < count; i++)
|
||||
av[i+3] = cu->user->nick;
|
||||
av[i+3] = GET_USER(cu->user);
|
||||
ac = 3 + i;
|
||||
} else {
|
||||
av[1] = tmp;
|
||||
/* We have to give as much nicks as modes.. - Viper */
|
||||
for (i = 0; i < count; i++)
|
||||
av[i+2] = cu->user->nick;
|
||||
av[i+2] = GET_USER(cu->user);
|
||||
ac = 2 + i;
|
||||
}
|
||||
|
||||
do_cmode(s_ChanServ, ac, av);
|
||||
}
|
||||
} else {
|
||||
av[0] = chan;
|
||||
for (cu = c->users; cu; cu = next) {
|
||||
next = cu->next;
|
||||
isop = chan_has_user_status(c, cu->user, CUS_OP);
|
||||
@@ -240,16 +239,17 @@ int do_clear(User * u)
|
||||
snprintf(tmp, BUFSIZE, "-%s%s%s", (isop ? "o" : ""), (isadmin ?
|
||||
ircd->adminunset+1 : ""), (isown ? ircd->ownerunset+1 : ""));
|
||||
/* We need to send the IRCd a nick for every mode.. - Viper */
|
||||
snprintf(tmp2, BUFSIZE, "%s %s %s", (isop ? cu->user->nick : ""),
|
||||
(isadmin ? cu->user->nick : ""), (isown ? cu->user->nick : ""));
|
||||
snprintf(tmp2, BUFSIZE, "%s %s %s", (isop ? GET_USER(cu->user) : ""),
|
||||
(isadmin ? GET_USER(cu->user) : ""), (isown ? GET_USER(cu->user) : ""));
|
||||
|
||||
av[0] = chan;
|
||||
if (ircdcap->tsmode) {
|
||||
snprintf(buf, BUFSIZE - 1, "%ld", (long int) time(NULL));
|
||||
av[1] = buf;
|
||||
av[2] = tmp;
|
||||
/* We have to give as much nicks as modes.. - Viper */
|
||||
for (i = 0; i < count; i++)
|
||||
av[i+3] = cu->user->nick;
|
||||
av[i+3] = GET_USER(cu->user);
|
||||
ac = 3 + i;
|
||||
|
||||
anope_cmd_mode(whosends(ci), av[0], "%s %s", av[2], tmp2);
|
||||
@@ -257,7 +257,7 @@ int do_clear(User * u)
|
||||
av[1] = tmp;
|
||||
/* We have to give as much nicks as modes.. - Viper */
|
||||
for (i = 0; i < count; i++)
|
||||
av[i+2] = cu->user->nick;
|
||||
av[i+2] = GET_USER(cu->user);
|
||||
ac = 2 + i;
|
||||
|
||||
anope_cmd_mode(whosends(ci), av[0], "%s %s", av[1], tmp2);
|
||||
@@ -283,12 +283,12 @@ int do_clear(User * u)
|
||||
av[0] = sstrdup(chan);
|
||||
av[1] = buf;
|
||||
av[2] = sstrdup("-h");
|
||||
av[3] = sstrdup(cu->user->nick);
|
||||
av[3] = sstrdup(GET_USER(cu->user));
|
||||
ac = 4;
|
||||
} else {
|
||||
av[0] = sstrdup(chan);
|
||||
av[1] = sstrdup("-h");
|
||||
av[2] = sstrdup(cu->user->nick);
|
||||
av[2] = sstrdup(GET_USER(cu->user));
|
||||
ac = 3;
|
||||
}
|
||||
|
||||
@@ -337,12 +337,12 @@ int do_clear(User * u)
|
||||
av[0] = sstrdup(chan);
|
||||
av[1] = buf;
|
||||
av[2] = sstrdup("-v");
|
||||
av[3] = sstrdup(cu->user->nick);
|
||||
av[3] = sstrdup(GET_USER(cu->user));
|
||||
ac = 4;
|
||||
} else {
|
||||
av[0] = sstrdup(chan);
|
||||
av[1] = sstrdup("-v");
|
||||
av[2] = sstrdup(cu->user->nick);
|
||||
av[2] = sstrdup(GET_USER(cu->user));
|
||||
ac = 3;
|
||||
}
|
||||
|
||||
@@ -386,7 +386,7 @@ int do_clear(User * u)
|
||||
for (cu = c->users; cu; cu = next) {
|
||||
next = cu->next;
|
||||
av[0] = sstrdup(chan);
|
||||
av[1] = sstrdup(cu->user->nick);
|
||||
av[1] = sstrdup(GET_USER(cu->user));
|
||||
av[2] = sstrdup(buf);
|
||||
anope_cmd_kick(whosends(ci), av[0], av[1], av[2]);
|
||||
do_kick(s_ChanServ, 3, av);
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
/* ChanServ core functions
|
||||
*
|
||||
* (C) 2003-2009 Anope Team
|
||||
* (C) 2003-2010 Anope Team
|
||||
* Contact us at team@anope.org
|
||||
*
|
||||
* Please read COPYING and README for further details.
|
||||
|
||||
+28
-3
@@ -1,6 +1,6 @@
|
||||
/* ChanServ core functions
|
||||
*
|
||||
* (C) 2003-2009 Anope Team
|
||||
* (C) 2003-2010 Anope Team
|
||||
* Contact us at team@anope.org
|
||||
*
|
||||
* Please read COPYING and README for further details.
|
||||
@@ -68,11 +68,11 @@ void myChanServHelp(User * u)
|
||||
**/
|
||||
int do_forbid(User * u)
|
||||
{
|
||||
Channel *c;
|
||||
ChannelInfo *ci;
|
||||
char *chan = strtok(NULL, " ");
|
||||
char *reason = strtok(NULL, "");
|
||||
|
||||
Channel *c;
|
||||
Entry *cur, *enext;
|
||||
|
||||
/* Assumes that permission checking has already been done. */
|
||||
if (!chan || (ForceForbidReason && !reason)) {
|
||||
@@ -103,6 +103,31 @@ int do_forbid(User * u)
|
||||
struct c_userlist *cu, *next;
|
||||
char *av[3];
|
||||
|
||||
/* Before banning everyone, it might be prudent to clear +e and +I lists..
|
||||
* to prevent ppl from rejoining.. ~ Viper */
|
||||
if (ircd->except && c->excepts && c->excepts->count) {
|
||||
av[0] = sstrdup("-e");
|
||||
for (cur = c->excepts->entries; cur; cur = enext) {
|
||||
enext = cur->next;
|
||||
av[1] = sstrdup(cur->mask);
|
||||
anope_cmd_mode(whosends(ci), chan, "-e %s", cur->mask);
|
||||
chan_set_modes(whosends(ci), c, 2, av, 0);
|
||||
free(av[1]);
|
||||
}
|
||||
free(av[0]);
|
||||
}
|
||||
if (ircd->invitemode && c->invites && c->invites->count) {
|
||||
av[0] = sstrdup("-I");
|
||||
for (cur = c->invites->entries; cur; cur = enext) {
|
||||
enext = cur->next;
|
||||
av[1] = sstrdup(cur->mask);
|
||||
anope_cmd_mode(whosends(ci), chan, "-I %s", cur->mask);
|
||||
chan_set_modes(whosends(ci), c, 2, av, 0);
|
||||
free(av[1]);
|
||||
}
|
||||
free(av[0]);
|
||||
}
|
||||
|
||||
for (cu = c->users; cu; cu = next) {
|
||||
next = cu->next;
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/* ChanServ core functions
|
||||
*
|
||||
* (C) 2003-2009 Anope Team
|
||||
* (C) 2003-2010 Anope Team
|
||||
* Contact us at team@anope.org
|
||||
*
|
||||
* Please read COPYING and README for further details.
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/* ChanServ core functions
|
||||
*
|
||||
* (C) 2003-2009 Anope Team
|
||||
* (C) 2003-2010 Anope Team
|
||||
* Contact us at team@anope.org
|
||||
*
|
||||
* Please read COPYING and README for further details.
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
/* ChanServ core functions
|
||||
*
|
||||
* (C) 2003-2009 Anope Team
|
||||
* (C) 2003-2010 Anope Team
|
||||
* Contact us at team@anope.org
|
||||
*
|
||||
* Please read COPYING and README for further details.
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/* ChanServ core functions
|
||||
*
|
||||
* (C) 2003-2009 Anope Team
|
||||
* (C) 2003-2010 Anope Team
|
||||
* Contact us at team@anope.org
|
||||
*
|
||||
* Please read COPYING and README for further details.
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
/* ChanServ core functions
|
||||
*
|
||||
* (C) 2003-2009 Anope Team
|
||||
* (C) 2003-2010 Anope Team
|
||||
* Contact us at team@anope.org
|
||||
*
|
||||
* Please read COPYING and README for further details.
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/* ChanServ core functions
|
||||
*
|
||||
* (C) 2003-2009 Anope Team
|
||||
* (C) 2003-2010 Anope Team
|
||||
* Contact us at team@anope.org
|
||||
*
|
||||
* Please read COPYING and README for further details.
|
||||
|
||||
+3
-3
@@ -1,6 +1,6 @@
|
||||
/* ChanServ core functions
|
||||
*
|
||||
* (C) 2003-2009 Anope Team
|
||||
* (C) 2003-2010 Anope Team
|
||||
* Contact us at team@anope.org
|
||||
*
|
||||
* Please read COPYING and README for further details.
|
||||
@@ -123,8 +123,6 @@ int do_cs_kick(User * u)
|
||||
notice_lang(s_ChanServ, u, CHAN_X_FORBIDDEN, chan);
|
||||
} else if (is_same ? !(u2 = u) : !(u2 = finduser(params))) {
|
||||
notice_lang(s_ChanServ, u, NICK_X_NOT_IN_USE, params);
|
||||
} else if (!is_on_chan(c, u2)) {
|
||||
notice_lang(s_ChanServ, u, NICK_X_NOT_ON_CHAN, u2->nick, c->name);
|
||||
} else if (!is_same ? !check_access(u, ci, CA_KICK) :
|
||||
!check_access(u, ci, CA_KICKME)) {
|
||||
notice_lang(s_ChanServ, u, ACCESS_DENIED);
|
||||
@@ -133,6 +131,8 @@ int do_cs_kick(User * u)
|
||||
notice_lang(s_ChanServ, u, PERMISSION_DENIED);
|
||||
} else if (is_protected(u2)) {
|
||||
notice_lang(s_ChanServ, u, PERMISSION_DENIED);
|
||||
} else if (!is_on_chan(c, u2)) {
|
||||
notice_lang(s_ChanServ, u, NICK_X_NOT_ON_CHAN, u2->nick, c->name);
|
||||
} else {
|
||||
char *av[3];
|
||||
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
/* ChanServ core functions
|
||||
*
|
||||
* (C) 2003-2009 Anope Team
|
||||
* (C) 2003-2010 Anope Team
|
||||
* Contact us at team@anope.org
|
||||
*
|
||||
* Please read COPYING and README for further details.
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/* ChanServ core functions
|
||||
*
|
||||
* (C) 2003-2009 Anope Team
|
||||
* (C) 2003-2010 Anope Team
|
||||
* Contact us at team@anope.org
|
||||
*
|
||||
* Please read COPYING and README for further details.
|
||||
|
||||
+18
-18
@@ -1,6 +1,6 @@
|
||||
/* ChanServ core functions
|
||||
*
|
||||
* (C) 2003-2009 Anope Team
|
||||
* (C) 2003-2010 Anope Team
|
||||
* Contact us at team@anope.org
|
||||
*
|
||||
* Please read COPYING and README for further details.
|
||||
@@ -220,7 +220,7 @@ int do_owner(User * u)
|
||||
|
||||
if (!chan) {
|
||||
av[0] = sstrdup(ircd->ownerset);
|
||||
av[1] = u->nick;
|
||||
av[1] = GET_USER(u);
|
||||
|
||||
/* Sets the mode to the user on every channels he is on. */
|
||||
|
||||
@@ -228,7 +228,7 @@ int do_owner(User * u)
|
||||
if ((ci = uc->chan->ci) && !(ci->flags & CI_VERBOTEN)
|
||||
&& is_founder(u, ci)) {
|
||||
anope_cmd_mode(whosends(ci), uc->chan->name, "%s %s",
|
||||
av[0], u->nick);
|
||||
av[0], GET_USER(u));
|
||||
chan_set_modes(s_ChanServ, uc->chan, 2, av, 1);
|
||||
}
|
||||
}
|
||||
@@ -243,16 +243,16 @@ int do_owner(User * u)
|
||||
notice_lang(s_ChanServ, u, CHAN_X_NOT_REGISTERED, c->name);
|
||||
} else if (ci->flags & CI_VERBOTEN) {
|
||||
notice_lang(s_ChanServ, u, CHAN_X_FORBIDDEN, ci->name);
|
||||
} else if (!is_on_chan(c, u)) {
|
||||
notice_lang(s_ChanServ, u, NICK_X_NOT_ON_CHAN, u->nick, c->name);
|
||||
} else if (!is_founder(u, ci)) {
|
||||
notice_lang(s_ChanServ, u, ACCESS_DENIED);
|
||||
} else if (!is_on_chan(c, u)) {
|
||||
notice_lang(s_ChanServ, u, NICK_X_NOT_ON_CHAN, u->nick, c->name);
|
||||
} else {
|
||||
anope_cmd_mode(whosends(ci), c->name, "%s %s", ircd->ownerset,
|
||||
u->nick);
|
||||
GET_USER(u));
|
||||
|
||||
av[0] = sstrdup(ircd->ownerset);
|
||||
av[1] = u->nick;
|
||||
av[1] = GET_USER(u);
|
||||
chan_set_modes(s_ChanServ, c, 2, av, 1);
|
||||
free(av[0]);
|
||||
}
|
||||
@@ -276,7 +276,7 @@ int do_deowner(User * u)
|
||||
|
||||
if (!chan) {
|
||||
av[0] = sstrdup(ircd->ownerunset);
|
||||
av[1] = u->nick;
|
||||
av[1] = GET_USER(u);
|
||||
|
||||
/* Sets the mode to the user on every channels he is on. */
|
||||
|
||||
@@ -284,7 +284,7 @@ int do_deowner(User * u)
|
||||
if ((ci = uc->chan->ci) && !(ci->flags & CI_VERBOTEN)
|
||||
&& is_founder(u, ci)) {
|
||||
anope_cmd_mode(whosends(ci), uc->chan->name, "%s %s",
|
||||
av[0], u->nick);
|
||||
av[0], GET_USER(u));
|
||||
chan_set_modes(s_ChanServ, uc->chan, 2, av, 1);
|
||||
}
|
||||
}
|
||||
@@ -299,16 +299,16 @@ int do_deowner(User * u)
|
||||
notice_lang(s_ChanServ, u, CHAN_X_NOT_REGISTERED, c->name);
|
||||
} else if (ci->flags & CI_VERBOTEN) {
|
||||
notice_lang(s_ChanServ, u, CHAN_X_FORBIDDEN, ci->name);
|
||||
} else if (!is_on_chan(c, u)) {
|
||||
notice_lang(s_ChanServ, u, NICK_X_NOT_ON_CHAN, u->nick, c->name);
|
||||
} else if (!is_founder(u, ci)) {
|
||||
notice_lang(s_ChanServ, u, ACCESS_DENIED);
|
||||
} else if (!is_on_chan(c, u)) {
|
||||
notice_lang(s_ChanServ, u, NICK_X_NOT_ON_CHAN, u->nick, c->name);
|
||||
} else {
|
||||
anope_cmd_mode(whosends(ci), c->name, "%s %s", ircd->ownerunset,
|
||||
u->nick);
|
||||
GET_USER(u));
|
||||
|
||||
av[0] = sstrdup(ircd->ownerunset);
|
||||
av[1] = u->nick;
|
||||
av[1] = GET_USER(u);
|
||||
chan_set_modes(s_ChanServ, c, 2, av, 1);
|
||||
free(av[0]);
|
||||
}
|
||||
@@ -341,7 +341,7 @@ int do_util(User * u, CSModeUtil * util)
|
||||
if ((ci = uc->chan->ci) && !(ci->flags & CI_VERBOTEN)
|
||||
&& check_access(u, ci, util->levelself)) {
|
||||
anope_cmd_mode(whosends(ci), uc->chan->name, "%s %s",
|
||||
util->mode, u->nick);
|
||||
util->mode, GET_USER(u));
|
||||
chan_set_modes(s_ChanServ, uc->chan, 2, av, 2);
|
||||
|
||||
if (util->notice && ci->flags & util->notice)
|
||||
@@ -366,8 +366,6 @@ int do_util(User * u, CSModeUtil * util)
|
||||
notice_lang(s_ChanServ, u, CHAN_X_FORBIDDEN, ci->name);
|
||||
} else if (is_same ? !(u2 = u) : !(u2 = finduser(nick))) {
|
||||
notice_lang(s_ChanServ, u, NICK_X_NOT_IN_USE, nick);
|
||||
} else if (!is_on_chan(c, u2)) {
|
||||
notice_lang(s_ChanServ, u, NICK_X_NOT_ON_CHAN, u2->nick, c->name);
|
||||
} else if (is_same ? !check_access(u, ci, util->levelself) :
|
||||
!check_access(u, ci, util->level)) {
|
||||
notice_lang(s_ChanServ, u, ACCESS_DENIED);
|
||||
@@ -376,12 +374,14 @@ int do_util(User * u, CSModeUtil * util)
|
||||
notice_lang(s_ChanServ, u, PERMISSION_DENIED);
|
||||
} else if (*util->mode == '-' && is_protected(u2) && !is_same) {
|
||||
notice_lang(s_ChanServ, u, PERMISSION_DENIED);
|
||||
} else if (!is_on_chan(c, u2)) {
|
||||
notice_lang(s_ChanServ, u, NICK_X_NOT_ON_CHAN, u2->nick, c->name);
|
||||
} else {
|
||||
anope_cmd_mode(whosends(ci), c->name, "%s %s", util->mode,
|
||||
u2->nick);
|
||||
GET_USER(u2));
|
||||
|
||||
av[0] = util->mode;
|
||||
av[1] = u2->nick;
|
||||
av[1] = GET_USER(u2);
|
||||
chan_set_modes(s_ChanServ, c, 2, av, 3);
|
||||
|
||||
if (util->notice && ci->flags & util->notice)
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/* ChanServ core functions
|
||||
*
|
||||
* (C) 2003-2009 Anope Team
|
||||
* (C) 2003-2010 Anope Team
|
||||
* Contact us at team@anope.org
|
||||
*
|
||||
* Please read COPYING and README for further details.
|
||||
@@ -180,11 +180,11 @@ int do_register(User * u)
|
||||
/* On most ircds you do not receive the admin/owner mode till its registered */
|
||||
if (ircd->admin) {
|
||||
anope_cmd_mode(s_ChanServ, chan, "%s %s", ircd->adminset,
|
||||
u->nick);
|
||||
GET_USER(u));
|
||||
}
|
||||
if (ircd->owner && ircd->ownerset) {
|
||||
anope_cmd_mode(s_ChanServ, chan, "%s %s", ircd->ownerset,
|
||||
u->nick);
|
||||
GET_USER(u));
|
||||
}
|
||||
send_event(EVENT_CHAN_REGISTERED, 1, chan);
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/* ChanServ core functions
|
||||
*
|
||||
* (C) 2003-2009 Anope Team
|
||||
* (C) 2003-2010 Anope Team
|
||||
* Contact us at team@anope.org
|
||||
*
|
||||
* Please read COPYING and README for further details.
|
||||
|
||||
+4
-5
@@ -1,6 +1,6 @@
|
||||
/* ChanServ core functions
|
||||
*
|
||||
* (C) 2003-2009 Anope Team
|
||||
* (C) 2003-2010 Anope Team
|
||||
* Contact us at team@anope.org
|
||||
*
|
||||
* Please read COPYING and README for further details.
|
||||
@@ -765,11 +765,9 @@ int do_set_xop(User * u, ChannelInfo * ci, char *param)
|
||||
} else if (CHECKLEV(CA_AUTOOP) || CHECKLEV(CA_OPDEOP)
|
||||
|| CHECKLEV(CA_OPDEOPME)) {
|
||||
access->level = ACCESS_AOP;
|
||||
} else if (ircd->halfop) {
|
||||
if (CHECKLEV(CA_AUTOHALFOP) || CHECKLEV(CA_HALFOP)
|
||||
|| CHECKLEV(CA_HALFOPME)) {
|
||||
} else if (ircd->halfop && (CHECKLEV(CA_AUTOHALFOP) || CHECKLEV(CA_HALFOP)
|
||||
|| CHECKLEV(CA_HALFOPME))) {
|
||||
access->level = ACCESS_HOP;
|
||||
}
|
||||
} else if (CHECKLEV(CA_AUTOVOICE) || CHECKLEV(CA_VOICE)
|
||||
|| CHECKLEV(CA_VOICEME)) {
|
||||
access->level = ACCESS_VOP;
|
||||
@@ -778,6 +776,7 @@ int do_set_xop(User * u, ChannelInfo * ci, char *param)
|
||||
access->nc = NULL;
|
||||
}
|
||||
}
|
||||
CleanAccess(ci);
|
||||
|
||||
reset_levels(ci);
|
||||
ci->flags |= CI_XOP;
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/* ChanServ core functions
|
||||
*
|
||||
* (C) 2003-2009 Anope Team
|
||||
* (C) 2003-2010 Anope Team
|
||||
* Contact us at team@anope.org
|
||||
*
|
||||
* Please read COPYING and README for further details.
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/* ChanServ core functions
|
||||
*
|
||||
* (C) 2003-2009 Anope Team
|
||||
* (C) 2003-2010 Anope Team
|
||||
* Contact us at team@anope.org
|
||||
*
|
||||
* Please read COPYING and README for further details.
|
||||
@@ -33,12 +33,14 @@ int AnopeInit(int argc, char **argv)
|
||||
moduleAddVersion("$Id$");
|
||||
moduleSetType(CORE);
|
||||
|
||||
c = createCommand("SUSPEND", do_suspend, is_services_oper, -1, -1, -1,
|
||||
c = createCommand("SUSPEND", do_suspend, is_services_oper, -1, -1,
|
||||
CHAN_SERVADMIN_HELP_SUSPEND,
|
||||
CHAN_SERVADMIN_HELP_SUSPEND,
|
||||
CHAN_SERVADMIN_HELP_SUSPEND);
|
||||
moduleAddCommand(CHANSERV, c, MOD_UNIQUE);
|
||||
c = createCommand("UNSUSPEND", do_unsuspend, is_services_oper, -1, -1,
|
||||
-1, CHAN_SERVADMIN_HELP_UNSUSPEND,
|
||||
CHAN_SERVADMIN_HELP_UNSUSPEND,
|
||||
CHAN_SERVADMIN_HELP_UNSUSPEND,
|
||||
CHAN_SERVADMIN_HELP_UNSUSPEND);
|
||||
moduleAddCommand(CHANSERV, c, MOD_UNIQUE);
|
||||
|
||||
|
||||
+2
-2
@@ -1,6 +1,6 @@
|
||||
/* ChanServ core functions
|
||||
*
|
||||
* (C) 2003-2009 Anope Team
|
||||
* (C) 2003-2010 Anope Team
|
||||
* Contact us at team@anope.org
|
||||
*
|
||||
* Please read COPYING and README for further details.
|
||||
@@ -104,7 +104,7 @@ int do_cs_topic(User * u)
|
||||
if (ircd->join2set) {
|
||||
if (whosends(ci) == s_ChanServ) {
|
||||
anope_cmd_join(s_ChanServ, c->name, c->creation_time);
|
||||
anope_cmd_mode(NULL, c->name, "+o %s", s_ChanServ);
|
||||
anope_cmd_mode(NULL, c->name, "+o %s", GET_BOT(s_ChanServ));
|
||||
}
|
||||
}
|
||||
anope_cmd_topic(whosends(ci), c->name, u->nick, topic ? topic : "",
|
||||
|
||||
+12
-68
@@ -1,6 +1,6 @@
|
||||
/* ChanServ core functions
|
||||
*
|
||||
* (C) 2003-2009 Anope Team
|
||||
* (C) 2003-2010 Anope Team
|
||||
* Contact us at team@anope.org
|
||||
*
|
||||
* Please read COPYING and README for further details.
|
||||
@@ -174,9 +174,10 @@ int do_vop(User * u)
|
||||
|
||||
int xop_del(User * u, ChannelInfo * ci, ChanAccess * access, int *perm, int uacc, int xlev)
|
||||
{
|
||||
char *nick = access->nc->display;
|
||||
if (!access->in_use || access->level != xlev)
|
||||
char *nick;
|
||||
if (!access->in_use || !access->nc || access->level != xlev)
|
||||
return 0;
|
||||
nick = access->nc->display;
|
||||
if (!is_services_admin(u) && uacc <= access->level) {
|
||||
(*perm)++;
|
||||
return 0;
|
||||
@@ -303,13 +304,6 @@ int do_xop(User * u, char *xname, int xlev, int *xmsgs)
|
||||
}
|
||||
|
||||
if (!change) {
|
||||
/* All entries should be in use so we no longer need
|
||||
* to go over the entire list..
|
||||
for (i = 0; i < ci->accesscount; i++)
|
||||
if (!ci->access[i].in_use)
|
||||
break;
|
||||
*/
|
||||
|
||||
if (i < CSAccessMax) {
|
||||
ci->accesscount++;
|
||||
ci->access =
|
||||
@@ -346,7 +340,7 @@ int do_xop(User * u, char *xname, int xlev, int *xmsgs)
|
||||
}
|
||||
|
||||
} else if (stricmp(cmd, "DEL") == 0) {
|
||||
int deleted, a, b;
|
||||
int deleted;
|
||||
if (readonly) {
|
||||
notice_lang(s_ChanServ, u, xmsgs[1]);
|
||||
return MOD_CONT;
|
||||
@@ -380,8 +374,10 @@ int do_xop(User * u, char *xname, int xlev, int *xmsgs)
|
||||
notice_lang(s_ChanServ, u, xmsgs[7], ci->name);
|
||||
}
|
||||
} else if (deleted == 1) {
|
||||
alog("%s: %s!%s@%s (level %d) deleted access of user %s on %s", s_ChanServ, u->nick, u->username, u->host, get_access(u, ci), nick, ci->name);
|
||||
notice_lang(s_ChanServ, u, xmsgs[9], ci->name);
|
||||
} else {
|
||||
alog("%s: %s!%s@%s (level %d) deleted access of users %s on %s", s_ChanServ, u->nick, u->username, u->host, get_access(u, ci), nick, ci->name);
|
||||
notice_lang(s_ChanServ, u, xmsgs[10], deleted, ci->name);
|
||||
}
|
||||
} else {
|
||||
@@ -406,6 +402,7 @@ int do_xop(User * u, char *xname, int xlev, int *xmsgs)
|
||||
deleted = 0;
|
||||
notice_lang(s_ChanServ, u, PERMISSION_DENIED);
|
||||
} else {
|
||||
alog("%s: %s!%s@%s (level %d) deleted access of %s on %s", s_ChanServ, u->nick, u->username, u->host, get_access(u, ci), access->nc->display, ci->name);
|
||||
notice_lang(s_ChanServ, u, xmsgs[8], access->nc->display,
|
||||
ci->name);
|
||||
access->nc = NULL;
|
||||
@@ -415,40 +412,8 @@ int do_xop(User * u, char *xname, int xlev, int *xmsgs)
|
||||
deleted = 1;
|
||||
}
|
||||
}
|
||||
if (deleted) {
|
||||
/* Reordering - DrStein */
|
||||
for (b = 0; b < ci->accesscount; b++) {
|
||||
if (ci->access[b].in_use) {
|
||||
for (a = 0; a < ci->accesscount; a++) {
|
||||
if (a > b)
|
||||
break;
|
||||
if (!ci->access[a].in_use) {
|
||||
ci->access[a].in_use = 1;
|
||||
ci->access[a].level = ci->access[b].level;
|
||||
ci->access[a].nc = ci->access[b].nc;
|
||||
ci->access[a].last_seen =
|
||||
ci->access[b].last_seen;
|
||||
ci->access[b].nc = NULL;
|
||||
ci->access[b].in_use = 0;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* If the patch provided in bug #706 is applied, this should be placed
|
||||
* before sending the events! */
|
||||
/* After reordering only the entries at the end could still be empty.
|
||||
* We ll free the places no longer in use... */
|
||||
for (i = ci->accesscount - 1; i >= 0; i--) {
|
||||
if (ci->access[i].in_use == 1)
|
||||
break;
|
||||
|
||||
ci->accesscount--;
|
||||
}
|
||||
ci->access =
|
||||
srealloc(ci->access,sizeof(ChanAccess) * ci->accesscount);
|
||||
}
|
||||
if (deleted)
|
||||
CleanAccess(ci);
|
||||
} else if (stricmp(cmd, "LIST") == 0) {
|
||||
int sent_header = 0;
|
||||
|
||||
@@ -478,9 +443,6 @@ int do_xop(User * u, char *xname, int xlev, int *xmsgs)
|
||||
if (!sent_header)
|
||||
notice_lang(s_ChanServ, u, xmsgs[7], chan);
|
||||
} else if (stricmp(cmd, "CLEAR") == 0) {
|
||||
uint16 j = 0;
|
||||
int a, b;
|
||||
|
||||
if (readonly) {
|
||||
notice_lang(s_ChanServ, u, CHAN_ACCESS_DISABLED);
|
||||
return MOD_CONT;
|
||||
@@ -500,30 +462,12 @@ int do_xop(User * u, char *xname, int xlev, int *xmsgs)
|
||||
if (ci->access[i].in_use && ci->access[i].level == xlev) {
|
||||
ci->access[i].nc = NULL;
|
||||
ci->access[i].in_use = 0;
|
||||
j++;
|
||||
}
|
||||
}
|
||||
|
||||
for (b = 0; b < ci->accesscount; b++) {
|
||||
if (ci->access[b].in_use) {
|
||||
for (a = 0; a < ci->accesscount; a++) {
|
||||
if (a > b)
|
||||
break;
|
||||
if (!ci->access[a].in_use) {
|
||||
ci->access[a].in_use = 1;
|
||||
ci->access[a].level = ci->access[b].level;
|
||||
ci->access[a].nc = ci->access[b].nc;
|
||||
ci->access[a].last_seen =
|
||||
ci->access[b].last_seen;
|
||||
ci->access[b].nc = NULL;
|
||||
ci->access[b].in_use = 0;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
CleanAccess(ci);
|
||||
|
||||
ci->accesscount = ci->accesscount - j;
|
||||
alog("%s: %s!%s@%s cleared the %s list of %s", s_ChanServ, u->nick, u->username, u->host, xname, ci->name);
|
||||
|
||||
send_event(EVENT_ACCESS_CLEAR, 2, ci->name, u->nick);
|
||||
|
||||
|
||||
+1
-1
@@ -1,7 +1,7 @@
|
||||
/* Module for encryption using MD5.
|
||||
*
|
||||
* Modified for Anope.
|
||||
* (C) 2003-2009 Anope Team
|
||||
* (C) 2003-2010 Anope Team
|
||||
* Contact us at team@anope.org
|
||||
*
|
||||
* Taken from IRC Services and is copyright (c) 1996-2002 Andrew Church.
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
/* Module for encryption using MD5.
|
||||
*
|
||||
* (C) 2003-2009 Anope Team
|
||||
* (C) 2003-2010 Anope Team
|
||||
* Contact us at team@anope.org
|
||||
*
|
||||
* This program is free but copyrighted software; see the file COPYING for
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user