murmur 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 1259617317e6bbc9ad7e46549c60ff602ee94e67
4
- data.tar.gz: edd4ddca53daa47f9a060aecfe8f7e0f65dfdfbd
3
+ metadata.gz: 34fd0e204dab5c258464d3c24cfe83f12600a387
4
+ data.tar.gz: 874a501df0f9b1936c7b57c21084a878a036e4e2
5
5
  SHA512:
6
- metadata.gz: 9334506b594d43ba1a56a99e245a7515cc58c7671d3e84263b4eb462f292fcb1b61e9cff48b5c329f52756f770924aeb2755a8a91b5083e4fe0c6161bf7e7d7e
7
- data.tar.gz: e51ff1b751142f76384754cb48051d30e0ddc29b810e69175f4558d891bedef3d16728902f4c9a4ac6b1234ff987f84908daf688c5fb4221a147d38a0b9e6974
6
+ metadata.gz: 33380e6ebbcd1110c4c43f1d656c93cf37c00fe2c63aaa2014cf892fcb697d6dcfdc2a63832a32add195423f5466749d3b36d0356c945b8e21460bb016094db3
7
+ data.tar.gz: 2e34515d392f30a97a5d4579c6c505732931387b68a9fe2a5fae413c4d62bec566969e11bf7342967de9a27c25de006f98705b4abe073801d19077aa75bc88fc
data/README.md CHANGED
@@ -56,6 +56,11 @@ channel.name = "New name!"
56
56
  # Get the clients of a server
57
57
  server = Murmur.server 1
58
58
  users = server.users
59
+
60
+ # Change a user's name
61
+ server = Murmur.server 1
62
+ user = server.users.first
63
+ user.name = "New name!"
59
64
  ```
60
65
 
61
66
  The #raw function on Murmur::API objects will return the raw Murmur object, allowing calling of unimplemented functions.
@@ -67,6 +67,10 @@ module Murmur
67
67
  update
68
68
  end
69
69
 
70
+ def raw
71
+ @channel
72
+ end
73
+
70
74
  private
71
75
 
72
76
  def update
@@ -85,7 +85,7 @@ module Murmur
85
85
  true
86
86
  end
87
87
 
88
- def meta
88
+ def raw
89
89
  @meta
90
90
  end
91
91
 
@@ -30,6 +30,7 @@ module Murmur
30
30
 
31
31
  @channels = {}
32
32
  @users = {}
33
+ @registered_users = {}
33
34
  end
34
35
 
35
36
  def id
@@ -62,6 +63,14 @@ module Murmur
62
63
  @users
63
64
  end
64
65
 
66
+ def registered_users
67
+ @registered_users = {}
68
+ @interface.getRegisteredUsers.each do |_, user|
69
+ @registered_users[user.session] = User.new(@host, @meta, self, user)
70
+ end
71
+ @registered_users
72
+ end
73
+
65
74
  def user(session)
66
75
  users
67
76
 
@@ -79,6 +88,14 @@ module Murmur
79
88
  end
80
89
  alias :delete :destroy!
81
90
 
91
+ def start!
92
+ @interface.start unless running?
93
+ end
94
+
95
+ def stop!
96
+ @interface.stop if running?
97
+ end
98
+
82
99
  def restart!
83
100
  @interface.stop if running?
84
101
  @interface.start
@@ -99,6 +116,10 @@ module Murmur
99
116
  key = key.to_s
100
117
  self[key] = val
101
118
  end
119
+
120
+ def raw
121
+ @interface
122
+ end
102
123
 
103
124
  def method_missing(method, *args)
104
125
  method = method.to_s
@@ -1,7 +1,7 @@
1
1
  module Murmur
2
2
  module API
3
3
  class User
4
-
4
+
5
5
  def initialize(host, meta, server, user)
6
6
  @host = host
7
7
  @meta = meta
@@ -18,38 +18,82 @@ module Murmur
18
18
  @user.userid
19
19
  end
20
20
 
21
+ def registered?
22
+ @user.userid != -1
23
+ end
24
+
21
25
  def muted?
22
26
  @user.mute
23
27
  end
24
28
 
29
+ def muted=(muted)
30
+ @user.mute = muted
31
+ update
32
+ end
33
+
25
34
  def deafened?
26
35
  @user.deaf
27
36
  end
28
37
 
38
+ def deafened=(deafened)
39
+ @user.deaf = deafened
40
+ update
41
+ end
42
+
29
43
  def suppressed?
30
44
  @user.suppress
31
45
  end
32
46
 
47
+ def suppressed=(suppressed)
48
+ @user.suppress = suppressed
49
+ update
50
+ end
51
+
33
52
  def priorityspeaker?
34
53
  @user.prioritySpeaker
35
54
  end
36
55
 
56
+ def priorityspeaker=(priorityspeaker)
57
+ @user.prioritySpeaker = priorityspeaker
58
+ update
59
+ end
60
+
37
61
  def clientmuted?
38
62
  @user.selfMute
39
63
  end
40
64
 
65
+ def clientmuted=(clientmuted)
66
+ @user.selfMute = clientmuted
67
+ update
68
+ end
69
+
41
70
  def clientdeafened?
42
71
  @user.selfDeaf
43
72
  end
44
73
 
74
+ def clientdeafened=(clientdeafened)
75
+ @user.selfDeaf = clientdeafened
76
+ update
77
+ end
78
+
45
79
  def recording?
46
80
  @user.recording
47
81
  end
48
82
 
83
+ def recording=(recording)
84
+ @user.recording
85
+ update
86
+ end
87
+
49
88
  def channel
50
89
  @server.channel @user.channel
51
90
  end
52
91
 
92
+ def channel=(channel)
93
+ @user.channel = channel
94
+ update
95
+ end
96
+
53
97
  def server
54
98
  @server
55
99
  end
@@ -58,10 +102,15 @@ module Murmur
58
102
  @user.name
59
103
  end
60
104
 
105
+ def name=(name)
106
+ @user.name = name
107
+ update
108
+ end
109
+
61
110
  def seconds_connected
62
111
  @user.onlinesecs
63
112
  end
64
-
113
+
65
114
  def seconds_idle
66
115
  @user.idlesecs
67
116
  end
@@ -98,10 +147,20 @@ module Murmur
98
147
  @user.comment
99
148
  end
100
149
 
150
+ def comment=(comment)
151
+ @user.comment = comment
152
+ update
153
+ end
154
+
101
155
  def tcponly?
102
156
  @user.tcponly
103
157
  end
104
158
 
159
+ def tcponly=(tcponly)
160
+ @user.tcponly = tcponly
161
+ update
162
+ end
163
+
105
164
  def ping
106
165
  {:udp => @user.udpPing, :tcp => @user.tcpPing}
107
166
  end
@@ -114,6 +173,50 @@ module Murmur
114
173
  ping[:tcp]
115
174
  end
116
175
 
176
+ def kick!(reason="Kicked by server")
177
+ @server.kickUser(@user.session, reason)
178
+ end
179
+
180
+ def raw
181
+ @user
182
+ end
183
+
184
+ private
185
+
186
+ def update
187
+ user_state = @server.getState(id)
188
+
189
+ {
190
+ :muted? => :mute,
191
+ :deafened? => :deaf,
192
+ :suppressed? => :suppress,
193
+ :priorityspeaker? => :prioritySpeaker,
194
+ :clientmuted? => :selfMute,
195
+ :clientdeafened? => :selfDeaf,
196
+ :recording? => :recording,
197
+ :tcponly? => :tcponly,
198
+ :name => :name
199
+ }.each do |local, state|
200
+ user_state.send("#{state}=", send(local))
201
+ end
202
+
203
+ # Set 'channel' normally.
204
+ user_state.channel = channel.id
205
+
206
+ @server.setState(user_state)
207
+ end
208
+
209
+ # Aliases for update function to work properly.
210
+ # Maybe one day I'll fix this.
211
+ # alias :mute :muted?
212
+ # alias :deaf :deafened?
213
+ # alias :suppress :suppressed?
214
+ # alias :prioritySpeaker :priorityspeaker?
215
+ # alias :selfMute :clientmuted?
216
+ # alias :selfDeaf :clientdeafened?
217
+ # alias :recording :recording?
218
+ # alias :tcponly :tcponly?
219
+
117
220
  end
118
221
  end
119
222
  end
@@ -1,3 +1,3 @@
1
1
  module Murmur
2
- VERSION = "0.0.2"
2
+ VERSION = "0.0.3"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: murmur
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ranndom
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-09-29 00:00:00.000000000 Z
11
+ date: 2015-10-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: zeroc-ice