aboutsummaryrefslogtreecommitdiff
path: root/captain/db.f90
diff options
context:
space:
mode:
Diffstat (limited to 'captain/db.f90')
-rw-r--r--captain/db.f9049
1 files changed, 49 insertions, 0 deletions
diff --git a/captain/db.f90 b/captain/db.f90
index 152f61b..b7712fa 100644
--- a/captain/db.f90
+++ b/captain/db.f90
@@ -36,6 +36,8 @@ implicit none
integer, parameter::PLAYER_STATUS_IDLE = 100
integer, parameter::PLAYER_STATUS_OFFLINE = 101
+ integer, parameter::SCHEDULE_DAILY = 0
+
character(1024)::database_file
type(c_ptr)::db
@@ -1345,5 +1347,52 @@ contains
end if
end function is_player_online
+
+ subroutine add_scheduled_job(player, instruction, day, hour)
+ implicit none
+
+ integer, intent(in)::player, instruction, day, hour
+ type(sqlite3_stmt)::stmt
+
+ if(stmt%prepare(db, "INSERT INTO schedule(instruction, player, day, hour) VALUES(?, ?, ?, ?") == SQLITE_OK) then
+ if(stmt%bind_int(1, instruction) == SQLITE_OK .and. &
+ stmt%bind_int(2, player) == SQLITE_OK .and. &
+ stmt%bind_int(3, day) == SQLITE_OK .and. &
+ stmt%bind_int(4, hour) == SQLITE_OK) &
+ then
+ call stmt%step_now()
+ end if
+ end if
+ call stmt%finalize()
+ end subroutine add_scheduled_job
+
+ subroutine delete_scheduled_job(player, instruction, day, hour)
+ implicit none
+
+ integer, intent(in)::player, instruction, day, hour
+ type(sqlite3_stmt)::stmt
+
+ if(stmt%prepare(db, "DELETE FROM schedule WHERE instruction=? AND player=? AND day=? AND hour=?") == SQLITE_OK) then
+ if(stmt%bind_int(1, instruction) == SQLITE_OK .and. &
+ stmt%bind_int(2, player) == SQLITE_OK .and. &
+ stmt%bind_int(3, day) == SQLITE_OK .and. &
+ stmt%bind_int(4, hour) == SQLITE_OK) &
+ then
+ call stmt%step_now()
+ end if
+ end if
+ call stmt%finalize()
+
+ end subroutine delete_scheduled_job
+
+ subroutine queue_scheduled_jobs(player)
+ implicit none
+
+ integer, intent(in)::player
+
+ ! Needs implementation
+
+ end subroutine queue_scheduled_jobs
+
end module captain_db