]> ruin.nu Git - ndwebbie.git/blob - database/functions/users.sql
Block entering coords right after shuffle
[ndwebbie.git] / database / functions / users.sql
1 CREATE OR REPLACE FUNCTION update_user_planet() RETURNS trigger AS $_X$
2 BEGIN
3         IF COALESCE(NEW.pid <> OLD.pid,TRUE) OR NEW.username <> OLD.username THEN
4                 UPDATE planets SET nick = NULL WHERE pid = OLD.pid;
5                 UPDATE planets SET nick = NEW.username WHERE pid = NEW.pid;
6         END IF;
7
8         IF COALESCE(NEW.pid <> OLD.pid,TRUE)
9                         AND (SELECT TRUE FROM groupmembers WHERE gid = 2 AND uid = NEW.uid) THEN
10                 UPDATE planets SET alliance = NULL WHERE pid = OLD.pid;
11                 UPDATE planets SET alliance = 'NewDawn' WHERE pid = NEW.pid;
12         END IF;
13         RETURN NEW;
14 END;
15 $_X$ LANGUAGE plpgsql;
16
17 CREATE OR REPLACE FUNCTION add_user() RETURNS trigger
18     AS $_X$
19 DECLARE
20         thread INTEGER;
21 BEGIN
22         INSERT INTO forum_threads (fbid,subject,uid)
23                 VALUES(-1,NEW.uid || ': ' || NEW.username,-3) RETURNING ftid
24                 INTO STRICT thread;
25         NEW.ftid = thread;
26         RETURN NEW;
27 END;
28 $_X$ LANGUAGE plpgsql;
29
30 CREATE OR REPLACE FUNCTION update_user_planet_check() RETURNS trigger AS $_X$
31 BEGIN
32         IF OLD.pid IS NULL AND NEW.pid IS NOT NULL AND isshuffletick() THEN
33                 NEW.pid = NULL;
34         END IF;
35
36         RETURN NEW;
37 END;
38 $_X$ LANGUAGE plpgsql;