]> ruin.nu Git - ndwebbie.git/commitdiff
Block entering coords right after shuffle
authorMichael Andreen <harv@ruin.nu>
Sat, 13 Oct 2018 21:07:18 +0000 (23:07 +0200)
committerMichael Andreen <harv@ruin.nu>
Sat, 13 Oct 2018 21:07:18 +0000 (23:07 +0200)
database/functions/shuffletick.sql [new file with mode: 0644]
database/functions/users.sql
database/ndawn.sql

diff --git a/database/functions/shuffletick.sql b/database/functions/shuffletick.sql
new file mode 100644 (file)
index 0000000..cb7e366
--- /dev/null
@@ -0,0 +1,3 @@
+CREATE OR REPLACE FUNCTION isshuffletick() RETURNS boolean
+AS $$SELECT (SELECT value::integer FROM misc WHERE id = 'TICK') = (SELECT value::integer FROM misc WHERE id = 'SHUFFLETICK')$$
+LANGUAGE sql STABLE;
index 2460cc1af3cb41247faeefa21634d07c9c03a179..0743ed3dde2fa034167847ae4d4eb1b99db79685 100644 (file)
@@ -26,3 +26,13 @@ BEGIN
        RETURN NEW;
 END;
 $_X$ LANGUAGE plpgsql;
+
+CREATE OR REPLACE FUNCTION update_user_planet_check() RETURNS trigger AS $_X$
+BEGIN
+       IF OLD.pid IS NULL AND NEW.pid IS NOT NULL AND isshuffletick() THEN
+               NEW.pid = NULL;
+       END IF;
+
+       RETURN NEW;
+END;
+$_X$ LANGUAGE plpgsql;
index 177a3f9139ea61b381ef72492e0bfc3082bbcdcb..54ede3a5c10269a2c966b8f2863d1630813f239f 100644 (file)
@@ -3469,6 +3469,8 @@ CREATE TRIGGER update_forum_thread_posts AFTER INSERT OR DELETE OR UPDATE ON for
 
 CREATE TRIGGER update_planet AFTER UPDATE ON users FOR EACH ROW EXECUTE PROCEDURE update_user_planet();
 
+CREATE TRIGGER update_user_planet_check BEFORE UPDATE ON users FOR EACH ROW WHEN (NEW.pid IS NOT NULL AND OLD.pid IS NULL) EXECUTE PROCEDURE update_user_planet_check();
+
 
 --
 -- Name: update_wiki_page; Type: TRIGGER; Schema: public; Owner: ndawn