craftbelt 0.0.3 → 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: a1b100532f050384f8ba6dd827e674cfda68a489
4
+ data.tar.gz: e83fa30cf1026d1e945d186c3ecfae55d4b240c9
5
+ SHA512:
6
+ metadata.gz: 22ccdbc1dcd50aa85620363d19db985ffd2f8dcb55951f08b834e490f853c8724ca4ccec0c7f4a9f1933ea78d9b25ea55eba5bc0039d52595ded8a61c3313dff
7
+ data.tar.gz: d0bd24ba508ed3c72ea5db77ce266689a1d32d4ac000b525df1ef5f075e4b47a1f8cff32d6ef66599adde63f26add9cdc30bb37e44e75046d170aba3ec33ef7f
@@ -0,0 +1,59 @@
1
+ class MinecraftSettings
2
+ attr_reader :build_dir, :instance, :settings
3
+
4
+ def initialize(build_dir)
5
+ @build_dir = build_dir
6
+ @instance = Craftbelt::MinecraftInstance.new('.')
7
+ end
8
+
9
+ def data
10
+ @data ||= begin
11
+ data_text = ENV['DATA']
12
+ if !data_text
13
+ data_text = File.read(File.expand_path(ENV['DATAFILE']))
14
+ end
15
+
16
+ JSON.parse(data_text, symbolize_names: true)
17
+ end
18
+ end
19
+
20
+ def settings
21
+ @settings ||= begin
22
+ # TODO remove when access policies are standard
23
+ access = data[:access] || {
24
+ whitelist: (data['settings']['whitelist'] || '').split
25
+ }
26
+
27
+ schema = JSON.parse(File.read("#{@build_dir}/funpack.json"))['schema']
28
+
29
+ Settings.new(schema, data[:settings].merge(
30
+ "name" => data[:name],
31
+ "enable-white-list" => data[:access],
32
+ "level-name" => (@instance.level_paths.first || 'level')
33
+ )
34
+ )
35
+ end
36
+ end
37
+
38
+ def write_player_files
39
+ File.write('ops.txt', player_list(data[:settings][:ops]))
40
+ File.write('white-list.txt', player_list(data[:settings][:whitelist]))
41
+ File.write('banned-players.txt', player_list(data[:settings][:blacklist]))
42
+ end
43
+
44
+ def write_templates(templates)
45
+ templates.each do |src, dest|
46
+ `mkdir -p #{File.dirname(dest)}`
47
+ File.write(dest, settings.erb(File.read("#{@build_dir}/templates/#{src}")))
48
+ end
49
+ end
50
+
51
+ # TODO remove this when players are passed as an array
52
+ def player_list(player_setting)
53
+ if player_setting.is_a? Array
54
+ player_setting.join("\n")
55
+ else
56
+ player_setting || ''
57
+ end
58
+ end
59
+ end
@@ -1,5 +1,5 @@
1
1
  module Craftbelt
2
- VERSION = '0.0.3'
2
+ VERSION = '0.0.4'
3
3
 
4
4
  def self.version
5
5
  VERSION
metadata CHANGED
@@ -1,46 +1,41 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: craftbelt
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
5
- prerelease:
4
+ version: 0.0.4
6
5
  platform: ruby
7
6
  authors:
8
7
  - Dave Newman
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2013-02-28 00:00:00.000000000 Z
11
+ date: 2013-03-14 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: nbtfile
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
- - - ! '>='
17
+ - - '>='
20
18
  - !ruby/object:Gem::Version
21
19
  version: '0'
22
20
  type: :runtime
23
21
  prerelease: false
24
22
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
23
  requirements:
27
- - - ! '>='
24
+ - - '>='
28
25
  - !ruby/object:Gem::Version
29
26
  version: '0'
30
27
  - !ruby/object:Gem::Dependency
31
28
  name: rspec
32
29
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
30
  requirements:
35
- - - ! '>='
31
+ - - '>='
36
32
  - !ruby/object:Gem::Version
37
33
  version: '0'
38
34
  type: :development
39
35
  prerelease: false
40
36
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
37
  requirements:
43
- - - ! '>='
38
+ - - '>='
44
39
  - !ruby/object:Gem::Version
45
40
  version: '0'
46
41
  description: Useful Minecraft utilities
@@ -54,33 +49,32 @@ files:
54
49
  - README.md
55
50
  - craftbelt.gemspec
56
51
  - lib/craftbelt/minecraft_instance.rb
52
+ - lib/craftbelt/minecraft_settings.rb
57
53
  - lib/craftbelt/version.rb
58
54
  - lib/craftbelt.rb
59
55
  - spec/craftbelt/minecraft_instance_spec.rb
60
56
  - spec/spec_helper.rb
61
57
  homepage: https://minefold.com
62
58
  licenses: []
59
+ metadata: {}
63
60
  post_install_message:
64
61
  rdoc_options: []
65
62
  require_paths:
66
63
  - lib
67
64
  required_ruby_version: !ruby/object:Gem::Requirement
68
- none: false
69
65
  requirements:
70
- - - ! '>='
66
+ - - '>='
71
67
  - !ruby/object:Gem::Version
72
68
  version: '0'
73
69
  required_rubygems_version: !ruby/object:Gem::Requirement
74
- none: false
75
70
  requirements:
76
- - - ! '>='
71
+ - - '>='
77
72
  - !ruby/object:Gem::Version
78
73
  version: '0'
79
74
  requirements: []
80
75
  rubyforge_project:
81
- rubygems_version: 1.8.23
76
+ rubygems_version: 2.0.0
82
77
  signing_key:
83
- specification_version: 3
78
+ specification_version: 4
84
79
  summary: Test Minefold funpacks
85
80
  test_files: []
86
- has_rdoc: