Redlist 0.0.1

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.
Files changed (3) hide show
  1. checksums.yaml +7 -0
  2. data/lib/redlist.rb +44 -0
  3. metadata +46 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 89ba9d36afee0f87c753cd487128d4d6bcf4fd99
4
+ data.tar.gz: 6f021c980564980531804aadb39d9add64b2f389
5
+ SHA512:
6
+ metadata.gz: f90169aa9ccaa5491dd82a604703cae6ca86c6fbe5b3eb9d1ea22a0ec7ccb5f278340544eeeceb4c9f0e12982a337dc0908a06a5587f009743ad4396f43311da
7
+ data.tar.gz: 9e416ae46d8b6515752fd0eb910565a1b8c89d9fc01658ecde06d2eed87cfa4b341abcc576afe8e04e811e26a7907ecc01c79e5ad85ee744d40cf2494ae27aaa
data/lib/redlist.rb ADDED
@@ -0,0 +1,44 @@
1
+ require 'json'
2
+ require 'rest-client'
3
+ require 'rcon/rcon'
4
+ require 'minecraft-query'
5
+ module Redlist
6
+ def self.add(whitelistPath, _username, rconPassword, rconIP = '127.0.0.1', rconPort = '25575')
7
+ whitelist = JSON.parse(File.read(whitelistPath))
8
+ shouldUpdateList = true
9
+ whitelist.each do |line|
10
+ shouldUpdateList = false if line['name'] == _username
11
+ end
12
+
13
+ if shouldUpdateList == true
14
+
15
+ res = RestClient.post 'https://api.mojang.com/profiles/minecraft',
16
+ _username.to_json,
17
+ content_type: :json,
18
+ accept: :json
19
+
20
+ result = JSON.parse res
21
+ if res.code == 200 && !result[0].nil? && !result.nil?
22
+ whitelist << { 'uuid' => result[0]['id'], 'name' => result[0]['name'] }
23
+ File.open(whitelistPath, 'w') do |f|
24
+ f.write(whitelist.to_json)
25
+ end
26
+ updateList(rconPassword, rconIP, rconPort)
27
+ return 'Username added to list.'
28
+ else
29
+ return 'Unable to add user to list. Check username, or internet connection. '
30
+ end
31
+
32
+ else
33
+ updateList(rconPassword, rconIP, rconPort)
34
+ return 'Username already on list'
35
+ end
36
+ end
37
+
38
+ def self.updateList(_rconPassword, _rconIP, _rconPort)
39
+ rcon = RCON::Minecraft.new(_rconIP, _rconPort)
40
+ rcon.auth(_rconPassword)
41
+ output = rcon.command('whitelist reload')
42
+ output
43
+ end
44
+ end
metadata ADDED
@@ -0,0 +1,46 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: Redlist
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Keaton Burleson
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2017-01-25 00:00:00.000000000 Z
12
+ dependencies: []
13
+ description: A gem which adds a Minecraft player to a whitelist, useful for automated
14
+ applications.
15
+ email:
16
+ - keaton.burleson@me.com
17
+ executables: []
18
+ extensions: []
19
+ extra_rdoc_files: []
20
+ files:
21
+ - lib/redlist.rb
22
+ homepage: https://github.com/128keaton/Redlist
23
+ licenses:
24
+ - MIT
25
+ metadata: {}
26
+ post_install_message:
27
+ rdoc_options: []
28
+ require_paths:
29
+ - lib
30
+ required_ruby_version: !ruby/object:Gem::Requirement
31
+ requirements:
32
+ - - ">="
33
+ - !ruby/object:Gem::Version
34
+ version: '0'
35
+ required_rubygems_version: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - ">="
38
+ - !ruby/object:Gem::Version
39
+ version: '0'
40
+ requirements: []
41
+ rubyforge_project:
42
+ rubygems_version: 2.5.1
43
+ signing_key:
44
+ specification_version: 4
45
+ summary: A gem which adds a Minecraft player to a whitelist.
46
+ test_files: []