teamspeak3 0.0.4 → 0.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 1f29c3659a40d129e7a749f5d3e91bc11530718f
4
- data.tar.gz: f5c472bdbae695325c1882fa9231aaa5da62bac5
2
+ SHA256:
3
+ metadata.gz: 4bebe083b0e4cee5773974e0be78e77f6680fbb9b6cb55bbdc94b63025e1ef3e
4
+ data.tar.gz: f0cc6ed512db322c8f62068a47c6309d1a7204790a6427a5028ee7f3d24cf20c
5
5
  SHA512:
6
- metadata.gz: 7d125a3d63f88d2340357f42ff3860e15d18d8c284f7a682ae8213ab2c6a9926b8ddd9013dda593234c7feddabdfbffad32c6c4ebb7f047067c9d3a7ca6cd715
7
- data.tar.gz: 80f2694136606027b437b7e19e2da9dd2e3c417e177900666f6da0959e5fe798eb0d1dfdf3f1979a73f181002d0e144e8bb9420c93723d2405e51aad5e852bb2
6
+ metadata.gz: 69048c150b84329a98dc2c7070b093c01e667a8afa9353aea8faee8ca769c72be44b0421e5d51f80fb627c52c39461d068ff1b933aa5252be9f9b2881ea036c6
7
+ data.tar.gz: a73175a6013b5dd7a3fe3a9057b2141fedf744c2b7593dd3e8c808ad5847c4bb22a624b0ba0ddb1700b0a42da7b3291f5fc68fa3c767493188c84537edce4b05
@@ -1,3 +1,8 @@
1
+ ## Release 0.0.5 (unknown)
2
+
3
+ * Add `TeamSpeak3::QueryAccount` to modify the logged in query account. (Accessible via `TeamSpeak3::Server#query_account`)
4
+ * Add `TeamSpeak3::Server#create` to create virtual servers
5
+
1
6
  ## Release 0.0.4 (2018-03-11)
2
7
 
3
8
  * Add `TeamSpeak3::VERSION` to fetch the current version of this library.
@@ -6,6 +6,7 @@ require_relative 'exceptions/command_execution_failed.rb'
6
6
  require_relative 'exceptions/invalid_kick_action.rb'
7
7
  require_relative 'exceptions/invalid_target.rb'
8
8
  require_relative 'exceptions/invalid_target_type.rb'
9
+ require_relative 'exceptions/max_slot_limit_reached.rb'
9
10
  require_relative 'exceptions/not_connected.rb'
10
11
  require_relative 'exceptions/query_login_failed.rb'
11
12
  require_relative 'exceptions/server_connection_failed.rb'
@@ -0,0 +1,9 @@
1
+ module TeamSpeak3
2
+ module Exceptions
3
+ class MaxSlotLimitReached < TeamSpeak3::Exceptions::StandardException
4
+ def initialize(message)
5
+ @message = message
6
+ end
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,19 @@
1
+ module TeamSpeak3
2
+ class QueryAccount
3
+ attr_reader :nickname
4
+
5
+ def initialize(server, nickname)
6
+ @server = server
7
+ @nickname = nickname
8
+ end
9
+
10
+ def nickname=(nickname)
11
+ @server.execute :clientupdate, client_nickname: nickname
12
+ @nickname = nickname
13
+ end
14
+
15
+ def to_s
16
+ @nickname
17
+ end
18
+ end
19
+ end
@@ -1,6 +1,7 @@
1
1
  module TeamSpeak3
2
2
  class Server
3
3
  attr_reader :ip_address
4
+ attr_reader :query_account
4
5
  attr_reader :query_port
5
6
  attr_reader :socket
6
7
  attr_reader :active_server
@@ -44,6 +45,8 @@ module TeamSpeak3
44
45
  raise TeamSpeak3::Exceptions::QueryLoginFailed, err.message
45
46
  end
46
47
 
48
+ @query_account = QueryAccount.new(self, query_user)
49
+
47
50
  true
48
51
  end
49
52
 
@@ -63,6 +66,23 @@ module TeamSpeak3
63
66
  server_list
64
67
  end
65
68
 
69
+ def create(params = {})
70
+ creation_params = {}
71
+
72
+ creation_params[:virtualserver_name] = params[:name] if params[:name]
73
+ creation_params[:virtualserver_port] = params[:port] if params[:port]
74
+ creation_params[:virtualserver_maxclients] = params[:slots] if params[:slots]
75
+
76
+ creation_params.merge!(params)
77
+
78
+ begin
79
+ response = execute :servercreate, creation_params
80
+ { server_id: response[:data][0][:sid].to_i, token: response[:data][0][:token], port: response[:data][0][:virtualserver_port] }
81
+ rescue Exceptions::CommandExecutionFailed => err
82
+ raise Exceptions::MaxSlotLimitReached.new('Max slot limit has been reached') if err.message =~ /max slot limit reached/
83
+ end
84
+ end
85
+
66
86
  def kick_client!(client_id, action, reason = nil)
67
87
  action_id = nil
68
88
  action_id = 4 if action == :channel
@@ -1,7 +1,7 @@
1
1
  require 'net/telnet'
2
2
 
3
3
  module TeamSpeak3
4
- VERSION = "0.0.4"
4
+ VERSION = "0.0.5"
5
5
  end
6
6
 
7
7
  # exceptions shall be required first
@@ -12,6 +12,7 @@ require_relative 'channel.rb'
12
12
  require_relative 'channel_collection.rb'
13
13
  require_relative 'client.rb'
14
14
  require_relative 'command_parameter.rb'
15
+ require_relative 'query_account.rb'
15
16
  require_relative 'virtual_server.rb'
16
17
  require_relative 'server_response.rb'
17
18
  require_relative 'server.rb'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: teamspeak3
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
4
+ version: 0.0.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Manuel Schnitzer
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-03-11 00:00:00.000000000 Z
11
+ date: 2018-06-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: net-telnet
@@ -88,10 +88,12 @@ files:
88
88
  - lib/exceptions/invalid_kick_action.rb
89
89
  - lib/exceptions/invalid_target.rb
90
90
  - lib/exceptions/invalid_target_type.rb
91
+ - lib/exceptions/max_slot_limit_reached.rb
91
92
  - lib/exceptions/not_connected.rb
92
93
  - lib/exceptions/query_login_failed.rb
93
94
  - lib/exceptions/server_connection_failed.rb
94
95
  - lib/exceptions/standard_exception.rb
96
+ - lib/query_account.rb
95
97
  - lib/server.rb
96
98
  - lib/server_response.rb
97
99
  - lib/teamspeak3.rb
@@ -119,7 +121,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
119
121
  version: '0'
120
122
  requirements: []
121
123
  rubyforge_project:
122
- rubygems_version: 2.2.5
124
+ rubygems_version: 2.7.3
123
125
  signing_key:
124
126
  specification_version: 4
125
127
  summary: A TeamSpeak 3 Query Library