Split event files, make subdirs.

git-svn-id: svn://svn.code.sf.net/p/crossfire/code/trunk/maps@4311 282e977c-c81d-0410-88c4-b93c2d0d6712
master
ryo_saeba 2006-01-07 23:44:05 +00:00
parent 395831dbc8
commit d8108b3fa3
12 changed files with 259 additions and 17 deletions

View File

@ -1,14 +1,5 @@
The script names following are reserved for global events.
They will be triggered automatically when the event occurs.
EVENT_BORN - python_born.py
EVENT_LOGIN - python_login.py
EVENT_LOGOUT - python_logout.py
EVENT_REMOVE - python_remove.py
EVENT_SHOUT - python_shout.py
EVENT_MUZZLE - python_muzzle.py
EVENT_KICK - python_kick.py
EVENT_MAPENTER - python_mapenter.py
EVENT_MAPLEAVE - python_mapleave.py
EVENT_CLOCK - python_clock.py
EVENT_MAPRESET - python_mapreset.py
This directory contains 2 scripts:
* python_init.py: called when the plugin is called. Will execute scripts in
the 'init' subdirectory.
* python_event.py: called when a global event (except plugin init) happens. Looks for
scripts in the revelant subdirectory (Crossfire.ScriptParameters()) and executes them.

View File

@ -0,0 +1,29 @@
# python_born.py - handler for global born event
#
# Copyright (C) 2002 Joris Bontje
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
#
# The author can be reached via e-mail at jbontje@suespammers.org
#
#Updated to use new path functions in CFPython -Todd Mitchell
import Crossfire
import CFLog
activator = Crossfire.WhoIsActivator()
log = CFLog.CFLog()
log.create(activator.Name)

View File

@ -0,0 +1,3 @@
import CFGuilds
print "Updating Guilds"
CFGuilds.GuildUpdate()

View File

@ -0,0 +1,27 @@
# python_kick.py - handler for global KICK event
#
# Copyright (C) 2004 Todd Mitchell
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
#
import Crossfire
import CFLog
activator = Crossfire.WhoIsActivator()
log = CFLog.CFLog()
log.kick_update(activator.Name)

View File

@ -0,0 +1,13 @@
import Crossfire
import CFLog
activator = Crossfire.WhoIsActivator()
name = activator.Name
ip = Crossfire.WhatIsMessage()
log = CFLog.CFLog()
if log.info(name):
log.login_update(name, ip)
else:
log.create(name)

View File

@ -0,0 +1,35 @@
# mail.py - handler for init of mail system
#
# Copyright (C) 2002-2005 Joris Bontje and others
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
#
# The author can be reached via e-mail at jbontje@suespammers.org
#
#Updated to use new path functions in CFPython -Todd Mitchell
import Crossfire
import CFMail
activator = Crossfire.WhoIsActivator()
name = activator.Name
mail = CFMail.CFMail()
total = mail.countmail(name)
if total > 0:
activator.Write('You have some mail waiting for you')
else:
activator.Write('No mail...')

View File

@ -0,0 +1,27 @@
# python_muzzle.py - handler for global MUZZLE event
#
# Copyright (C) 2004 Todd Mitchell
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
#
import Crossfire
import CFLog
activator = Crossfire.WhoIsActivator()
name = activator.Name
log = CFLog.CFLog()
log.muzzle_update(name)

View File

@ -0,0 +1,17 @@
# global_event.py - this script handles all global events, except the plugin init (check plugin_init.py for that).
#
# This script merely looks and launches scripts in a specific subdirectory of /python/events/
# Only .py files are considered, you can simply rename a file to disable.
#
# This should simplify the separation of different Python things.
import Crossfire
import os
path = os.path.join(Crossfire.DataDirectory(), Crossfire.MapDirectory(), 'python/events', Crossfire.ScriptParameters())
scripts = os.listdir(path)
for script in scripts:
if (script.endswith('.py')):
execfile(os.path.join(path, script))

View File

@ -5,6 +5,10 @@ import sys
print "Running python initialize script."
sys.path.insert(0, os.path.join(Crossfire.DataDirectory(), Crossfire.MapDirectory(), 'python'))
import CFGuilds
print "Updating Guilds"
CFGuilds.GuildUpdate()
path = os.path.join(Crossfire.DataDirectory(), Crossfire.MapDirectory(), 'python/events/init')
scripts = os.listdir(path)
for script in scripts:
if (script.endswith('.py')):
execfile(os.path.join(path, script))

View File

@ -0,0 +1,33 @@
# python_remove.py - handler for global remove event
#
# Copyright (C) 2002 Joris Bontje
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
#
# The author can be reached via e-mail at jbontje@suespammers.org
#
# Updated to use new path functions in CFPython and Bank
# acount cleanup - Todd Mitchell
import Crossfire
import CFBank
activator = Crossfire.WhoIsActivator()
name = activator.Name
#If you add a new bank database add an entry here to remove their account
#when the player quits
bank = CFBank.CFBank('ImperialBank_DB')
bank.remove_account(name)

View File

@ -0,0 +1,32 @@
# python_remove.py - handler for global remove event
#
# Copyright (C) 2002 Joris Bontje
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
#
# The author can be reached via e-mail at jbontje@suespammers.org
#
# Updated to use new path functions in CFPython and Bank
# acount cleanup - Todd Mitchell
import Crossfire
import CFGuilds
activator = Crossfire.WhoIsActivator()
name = activator.Name
in_guild = CFGuilds.SearchGuilds(name)
if in_guild:
CFGuilds.CFGuild(in_guild).remove_member(name)

View File

@ -0,0 +1,31 @@
# python_remove.py - handler for global remove event
#
# Copyright (C) 2002 Joris Bontje
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
#
# The author can be reached via e-mail at jbontje@suespammers.org
#
# Updated to use new path functions in CFPython and Bank
# acount cleanup - Todd Mitchell
import Crossfire
import CFLog
activator = Crossfire.WhoIsActivator()
name = activator.Name
log = CFLog.CFLog()
log.remove(name)