urbanterror 1.1 → 3.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (2) hide show
  1. data/lib/urbanterror.rb +18 -16
  2. metadata +25 -43
@@ -6,27 +6,23 @@ require 'pp'
6
6
  class UrbanTerror
7
7
  def initialize(server, port=nil, rcon=nil)
8
8
  @server = server
9
- @port = port.nil? ? 27960 : port
10
- @rcon = rcon.nil? ? '' : rcon
9
+ @port = port || 27960
10
+ @rcon = rcon || ''
11
11
  @socket = UDPSocket.open
12
12
  end
13
13
 
14
- def sendCommand(command)
14
+ def send_command(command)
15
15
  magic = "\377\377\377\377"
16
16
  @socket.send("#{magic}#{command}\n", 0, @server, @port)
17
17
  @socket.recv(2048)
18
18
  end
19
19
 
20
20
  def get(command)
21
- sendCommand("get#{command}")
21
+ send_command("get#{command}")
22
22
  end
23
23
 
24
- def getparts(command, i)
25
- get(command).split("\n")[i]
26
- end
27
-
28
24
  def rcon(command)
29
- sendCommand("rcon #{@rcon} #{command}")
25
+ send_command("rcon #{@rcon} #{command}")
30
26
  end
31
27
 
32
28
  # settings() returns a hash of settings => values.
@@ -34,14 +30,14 @@ class UrbanTerror
34
30
  # doing the same thing and just selecting one from the Hash, so
35
31
  # why not just let the user do server.settings['map'] or whatever.
36
32
  def settings
37
- result = getparts("status", 1).split("\\").reject(&:empty?)
33
+ result = get_parts("status", 1).split("\\").reject(&:empty?)
38
34
  Hash[*result]
39
35
  end
40
36
 
41
37
  # players() returns a list of hashes. Each hash contains
42
38
  # name, score, ping.
43
39
  def players
44
- results = getparts("status", 2..-1)
40
+ results = get_parts("status", 2..-1)
45
41
  results.map do |player|
46
42
  player = player.split(" ", 3)
47
43
  {
@@ -64,18 +60,19 @@ class UrbanTerror
64
60
 
65
61
  MAX_GEAR = 63
66
62
 
67
- def self.gearCalc(gearArray)
68
- gearArray.each{ |w| raise "No such gear type '#{w}'" unless GEAR_TYPES.has_key?(w) }
69
- MAX_GEAR - gearArray.map{|w| GEAR_TYPES[w] }.reduce(:+)
63
+ def self.gear_calc(gear_array)
64
+ gear_array.each{ |w| raise "No such gear type '#{w}'" unless GEAR_TYPES.has_key?(w) }
65
+ MAX_GEAR - gear_array.map{|w| GEAR_TYPES[w] }.reduce(:+)
70
66
  end
71
67
 
72
- def self.reverseGearCalc(number)
68
+ def self.reverse_gear_calc(number)
73
69
  raise "#{number} is outside of the range 0 to 63." unless (0..63).include?(number)
74
70
  GEAR_TYPES.select{|weapon, gear_val| number & gear_val == 0 }.map(&:first)
75
71
  end
76
72
 
77
73
  GAME_MODES = {
78
74
  0 => ['Free For All', 'FFA'],
75
+ 1 => ['Last Man Standing', 'LMS'],
79
76
  3 => ['Team Death Match', 'TDM'],
80
77
  4 => ['Team Survivor', 'TS'],
81
78
  5 => ['Follow the Leader', 'FTL'],
@@ -84,8 +81,13 @@ class UrbanTerror
84
81
  8 => ['Bomb mode', 'BOMB']
85
82
  }
86
83
 
87
- def self.matchType(number, abbreviate=false)
84
+ def self.match_type(number, abbreviate=false)
88
85
  raise "#{number} is not a valid gametype." unless GAME_MODES.has_key? number
89
86
  GAME_MODES[number][abbreviate ? 1 : 0]
90
87
  end
88
+
89
+ private
90
+ def get_parts(command, i)
91
+ get(command).split("\n")[i]
92
+ end
91
93
  end
metadata CHANGED
@@ -1,66 +1,48 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: urbanterror
3
- version: !ruby/object:Gem::Version
4
- hash: 13
5
- prerelease: false
6
- segments:
7
- - 1
8
- - 1
9
- version: "1.1"
3
+ version: !ruby/object:Gem::Version
4
+ version: 3.0.0
5
+ prerelease:
10
6
  platform: ruby
11
- authors:
7
+ authors:
12
8
  - Ricky Elrod
13
9
  autorequire:
14
10
  bindir: bin
15
11
  cert_chain: []
16
-
17
- date: 2011-03-20 00:00:00 -04:00
18
- default_executable:
12
+ date: 2012-08-09 00:00:00.000000000 Z
19
13
  dependencies: []
20
-
21
- description: Provides a class to access and control Urban Terror servers via RCON over UDP.
14
+ description: Provides a class to access and control Urban Terror servers via RCON
15
+ over UDP.
22
16
  email: ricky@elrod.me
23
17
  executables: []
24
-
25
18
  extensions: []
26
-
27
19
  extra_rdoc_files: []
28
-
29
- files:
20
+ files:
30
21
  - lib/urbanterror.rb
31
- has_rdoc: true
32
22
  homepage:
33
- licenses: []
34
-
23
+ licenses:
24
+ - MIT
35
25
  post_install_message:
36
26
  rdoc_options: []
37
-
38
- require_paths:
27
+ require_paths:
39
28
  - lib
40
- required_ruby_version: !ruby/object:Gem::Requirement
29
+ required_ruby_version: !ruby/object:Gem::Requirement
41
30
  none: false
42
- requirements:
43
- - - ">="
44
- - !ruby/object:Gem::Version
45
- hash: 3
46
- segments:
47
- - 0
48
- version: "0"
49
- required_rubygems_version: !ruby/object:Gem::Requirement
31
+ requirements:
32
+ - - ! '>='
33
+ - !ruby/object:Gem::Version
34
+ version: '0'
35
+ required_rubygems_version: !ruby/object:Gem::Requirement
50
36
  none: false
51
- requirements:
52
- - - ">="
53
- - !ruby/object:Gem::Version
54
- hash: 3
55
- segments:
56
- - 0
57
- version: "0"
37
+ requirements:
38
+ - - ! '>='
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
58
41
  requirements: []
59
-
60
42
  rubyforge_project:
61
- rubygems_version: 1.3.7
43
+ rubygems_version: 1.8.17
62
44
  signing_key:
63
45
  specification_version: 3
64
- summary: Provides a class to access and control Urban Terror servers via RCON over UDP.
46
+ summary: Provides a class to access and control Urban Terror servers via RCON over
47
+ UDP.
65
48
  test_files: []
66
-