[READ-ONLY] Mirror of https://github.com/VibeDevelopers/atheme. Modified fork of atheme IRC Services www.vibetalk.net/
0

Configure Feed

Select the types of activity you want to include in your feed.

Revert "chanserv: remove obsolete FTRANSFER module (pointed out by Renegade334)."

This reverts commit 8607f230f98925715ff88507ca88d5b3d2dcb241.

William Pitcock (Mar 23, 2015, 3:22 PM -0500) d36783e0 8607f230

+137
+2
dist/atheme.conf.example
··· 289 289 * DROP command modules/chanserv/drop 290 290 * Forced flags changes modules/chanserv/fflags 291 291 * FLAGS command modules/chanserv/flags 292 + * Forced foundership transfers modules/chanserv/ftransfer 292 293 * GETKEY command modules/chanserv/getkey 293 294 * HALFOP/DEHALFOP commands modules/chanserv/halfop 294 295 * HELP command modules/chanserv/help ··· 355 356 loadmodule "modules/chanserv/drop"; 356 357 #loadmodule "modules/chanserv/fflags"; 357 358 loadmodule "modules/chanserv/flags"; 359 + loadmodule "modules/chanserv/ftransfer"; 358 360 loadmodule "modules/chanserv/getkey"; 359 361 #loadmodule "modules/chanserv/halfop"; 360 362 loadmodule "modules/chanserv/help";
+9
help/default/cservice/ftransfer
··· 1 + Help for FTRANSFER: 2 + 3 + FTRANSFER forcefully transfers foundership 4 + of a channel. 5 + 6 + Syntax: FTRANSFER <#channel> <founder> 7 + 8 + Example: 9 + /msg &nick& FTRANSFER #casual vodkaswirl
+9
help/es/cservice/ftransfer
··· 1 + Ayuda para FTRANSFER: 2 + 3 + FTRANSFER forza la transferencia de fundadores de 4 + un canal 5 + 6 + Sintaxis: FTRANSFER <#canal> <fundador> 7 + 8 + Ejemplo: 9 + /msg &nick& FTRANSFER #casual vodkaswirl
+9
help/fr/cservice/ftransfer
··· 1 + Aide pour FTRANSFER: 2 + 3 + FTRANSFER force le transfert du statut de fondateur 4 + sur un salon. 5 + 6 + Syntaxe : FTRANSFER <#salon> <fondateur> 7 + 8 + Exemple : 9 + /msg &nick& FTRANSFER #casual vodkaswirl
+10
help/ru/cservice/ftransfer
··· 1 + ������ �� FTRANSFER: 2 + 3 + ������� FTRANSFER ��������� ������������� �������� 4 + ����� �������� ������� ������� ������������. 5 + ������������ �� ����� ���� ��������� ��������. 6 + 7 + ���������: FTRANSFER <#�����> <�����_��������> 8 + 9 + �������: 10 + /msg &nick& FTRANSFER #casual Vasya
+1
modules/chanserv/Makefile
··· 25 25 drop.c \ 26 26 fflags.c \ 27 27 flags.c \ 28 + ftransfer.c \ 28 29 getkey.c \ 29 30 halfop.c \ 30 31 help.c \
+97
modules/chanserv/ftransfer.c
··· 1 + /* 2 + * Copyright (c) 2005 William Pitcock, et al. 3 + * Rights to this code are as documented in doc/LICENSE. 4 + * 5 + * This file contains code for the CService FTRANSFER function. 6 + * 7 + */ 8 + 9 + #include "atheme.h" 10 + 11 + DECLARE_MODULE_V1 12 + ( 13 + "chanserv/ftransfer", false, _modinit, _moddeinit, 14 + PACKAGE_STRING, 15 + "Atheme Development Group <http://www.atheme.org>" 16 + ); 17 + 18 + static void cs_cmd_ftransfer(sourceinfo_t *si, int parc, char *parv[]); 19 + 20 + command_t cs_ftransfer = { "FTRANSFER", N_("Forces foundership transfer of a channel."), 21 + PRIV_CHAN_ADMIN, 2, cs_cmd_ftransfer, { .path = "cservice/ftransfer" } }; 22 + 23 + void _modinit(module_t *m) 24 + { 25 + service_named_bind_command("chanserv", &cs_ftransfer); 26 + } 27 + 28 + void _moddeinit(module_unload_intent_t intent) 29 + { 30 + service_named_unbind_command("chanserv", &cs_ftransfer); 31 + } 32 + 33 + static void cs_cmd_ftransfer(sourceinfo_t *si, int parc, char *parv[]) 34 + { 35 + myentity_t *mt; 36 + mychan_t *mc; 37 + mowgli_node_t *n; 38 + chanacs_t *ca; 39 + char *name = parv[0]; 40 + char *newfndr = parv[1]; 41 + const char *oldfndr; 42 + 43 + if (!name || !newfndr) 44 + { 45 + command_fail(si, fault_needmoreparams, STR_INSUFFICIENT_PARAMS, "FTRANSFER"); 46 + command_fail(si, fault_needmoreparams, _("Syntax: FTRANSFER <#channel> <newfounder>")); 47 + return; 48 + } 49 + 50 + if (!(mt = myentity_find_ext(newfndr))) 51 + { 52 + command_fail(si, fault_nosuch_target, _("\2%s\2 is not registered."), newfndr); 53 + return; 54 + } 55 + 56 + if (!(mc = mychan_find(name))) 57 + { 58 + command_fail(si, fault_nosuch_target, _("Channel \2%s\2 is not registered."), name); 59 + return; 60 + } 61 + 62 + oldfndr = mychan_founder_names(mc); 63 + if (!strcmp(mt->name, oldfndr)) 64 + { 65 + command_fail(si, fault_nochange, _("\2%s\2 is already the founder of \2%s\2."), mt->name, name); 66 + return; 67 + } 68 + 69 + /* no maxchans check (intentional -- this is an oper command) */ 70 + wallops("%s transferred foundership of %s from %s to %s", get_oper_name(si), name, oldfndr, mt->name); 71 + logcommand(si, CMDLOG_ADMIN | LG_REGISTER, "FTRANSFER: \2%s\2 transferred from \2%s\2 to \2%s\2", mc->name, oldfndr, mt->name); 72 + verbose(mc, "Foundership transfer from \2%s\2 to \2%s\2 forced by %s administration.", oldfndr, mt->name, me.netname); 73 + command_success_nodata(si, _("Foundership of \2%s\2 has been transferred from \2%s\2 to \2%s\2."), 74 + name, oldfndr, mt->name); 75 + 76 + MOWGLI_ITER_FOREACH(n, mc->chanacs.head) 77 + { 78 + ca = n->data; 79 + /* CA_FLAGS is always on if CA_FOUNDER is on, this just 80 + * ensures we don't crash if not -- jilles 81 + */ 82 + if (ca->entity != NULL && ca->level & CA_FOUNDER) 83 + chanacs_modify_simple(ca, CA_FLAGS, CA_FOUNDER); 84 + } 85 + mc->used = CURRTIME; 86 + chanacs_change_simple(mc, mt, NULL, CA_FOUNDER_0, 0, entity(si->smu)); 87 + 88 + /* delete transfer metadata -- prevents a user from stealing it back */ 89 + metadata_delete(mc, "private:verify:founderchg:newfounder"); 90 + metadata_delete(mc, "private:verify:founderchg:timestamp"); 91 + } 92 + 93 + /* vim:cinoptions=>s,e0,n0,f0,{0,}0,^0,=s,ps,t0,c3,+s,(2s,us,)20,*30,gs,hs 94 + * vim:ts=8 95 + * vim:sw=8 96 + * vim:noexpandtab 97 + */