summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorpb <pb@9f8f72e9-4bf4-416e-b76e-7d4203597157>2010-05-15 16:49:57 +0000
committerpb <pb@9f8f72e9-4bf4-416e-b76e-7d4203597157>2010-05-15 16:49:57 +0000
commit502eae3f286cca6a1843ed795ec20fbc3abccc5d (patch)
tree77825cba7281516d2bcf7f38e0cb0aa70652dec9
parentad2e856414300fafee5ab4afd4f2356b0c2fd159 (diff)
added the stateUpdateUser function to State.hs
git-svn-id: https://ssl.buetow.org/repos/hsbot/trunk@60 9f8f72e9-4bf4-416e-b76e-7d4203597157
-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)