summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--HsBot/Base/State.hs5
-rw-r--r--HsBot/Callbacks/MessageCounter.hs7
2 files changed, 8 insertions, 4 deletions
diff --git a/HsBot/Base/State.hs b/HsBot/Base/State.hs
index 10395bb..9c38e42 100644
--- a/HsBot/Base/State.hs
+++ b/HsBot/Base/State.hs
@@ -33,6 +33,11 @@ stateNumUsers state = length $ users state
stateSortedUsers :: State -> [User]
stateSortedUsers state = sort $ users state
+stateUpdateUser :: State -> String -> (User -> User) -> State
+stateUpdateUser state name update =
+ let updatedUsers = usersUpdate name (users state) update
+ in state { users = updatedUsers }
+
stateLoad :: String -> IO State
stateLoad databaseFile = do
file <- readFile databaseFile
diff --git a/HsBot/Callbacks/MessageCounter.hs b/HsBot/Callbacks/MessageCounter.hs
index 2b5482e..1f12e62 100644
--- a/HsBot/Callbacks/MessageCounter.hs
+++ b/HsBot/Callbacks/MessageCounter.hs
@@ -5,9 +5,8 @@ import HsBot.Base.State
import HsBot.IRC.User
+update user = user { userMessages = 1 + userMessages user }
+
messageCounter :: String -> SendMessage -> Env -> IO Env
messageCounter str sendMessage (Env state conf) = do
- return (Env state { users = users' } conf)
- where
- update user = user { userMessages = 1 + userMessages user }
- users' = usersUpdate (currentSender state) (users state) update
+ return (Env (stateUpdateUser state (currentSender state) update) conf)