itamae-plugin-recipe-bedrock_server 0.2.1 → 0.3.4

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
2
  SHA256:
3
- metadata.gz: 2d8c6c043d8df11258b85810c7f8a9da7da5bc3607bf31daee60893938b3ed66
4
- data.tar.gz: 7aaf21c89202a709645344f64e260c2d11ecc5fa2c7061198970c6b5bedd55ec
3
+ metadata.gz: cb3b051f86d16d811ef54d5c6da31d5fade3cc6ee3949e527d46f3c7f344c6d9
4
+ data.tar.gz: 745bebb170e885eb42cac295434a2ace522d9252cb1da5f72ccbaf609094ee0d
5
5
  SHA512:
6
- metadata.gz: 7892611447478997371d6dcb17e0a4b9d7d9f63e049edfa2760877a4e37a7acc061810b62e018e1124097182dfe5be72f9677296fcd93ffe51b3b7b662868a5c
7
- data.tar.gz: dc954c33183675dd7f19a7640f73cee62deb1ee2fe4f81d9a9d0b2b38d1438cc3336d828af03439c2d04e15f693547881d7016c7e40b59d626ea1e518e47cb8c
6
+ metadata.gz: 9d36e51dcf64e59524476e5d17338336b0d245d115b5035d4f54800b97b88050fbe64763fed17229e74cd32e602670193701aff4432d2d982072c08fcb24a162
7
+ data.tar.gz: c2890679928a5581b4dccaa3fa2748baa204ed895b84fba1eb9f1a6541da25f78a99b7eef69ad2a574250b5c31eed318fc4f231781bdfb8a46d35e8c149bfd90
data/README.md CHANGED
@@ -1,7 +1,7 @@
1
1
  # Itamae::Plugin::Recipe::BedrockServer
2
2
 
3
3
  Itamae plugin to install [Minecraft](https://www.minecraft.net/) with init scripts.
4
- You must read [Minecraft Server Download](https://www.minecraft.net/en-us/download/server/bedrock/)[Minecraft End User License Agreement](https://account.mojang.com/terms) and [Privacy Policy](https://privacy.microsoft.com/ja-jp/privacystatement).
4
+ You must read [Minecraft Server Download](https://www.minecraft.net/en-us/download/server/bedrock/) in [Minecraft End User License Agreement](https://account.mojang.com/terms) and [Privacy Policy](https://privacy.microsoft.com/ja-jp/privacystatement).
5
5
 
6
6
  [![Gem Version](https://badge.fury.io/rb/itamae-plugin-recipe-bedrock_server.svg)](https://badge.fury.io/rb/itamae-plugin-recipe-bedrock_server)
7
7
  ![test](https://github.com/kyohah/itamae-plugin-recipe-bedrock_server/workflows/test/badge.svg)
@@ -98,9 +98,9 @@ bedrock_server:
98
98
  ## Development
99
99
 
100
100
  ```
101
- $ docker run --name tmp-ubuntu $IMAGE bash -c "apt-get update && apt-get install -y systemd-sysv"
101
+ $ docker run --name tmp-ubuntu ubuntu:latest bash -c "apt-get update && apt-get install -y systemd-sysv"
102
102
  $ docker commit tmp-ubuntu ubuntu-with-systemd
103
- $ docker run --privileged -d ubuntu-with-systemd /sbin/init
103
+ $ docker run --rm --privileged -d --name container-with-service -p 19132:19132 ubuntu-with-systemd /sbin/init
104
104
  $ bundle exec itamae docker --node-yaml=recipes/node.yml recipes/install.rb --container=container-with-service
105
105
  ```
106
106
 
@@ -1,11 +1,19 @@
1
- require 'open-uri'
1
+ package 'unzip'
2
+ package 'curl'
2
3
 
3
- package "unzip"
4
- package "curl"
4
+ VERSION_URL = 'https://minecraft.net/en-us/download/server/bedrock/'.freeze
5
5
 
6
- bedrock_server_url = node[:bedrock_server][:url] || URI.open("https://minecraft.net/en-us/download/server/bedrock/").read.match(/https:\/\/minecraft\.azureedge\.net\/bin-linux\/bedrock-server-[.0-9]*\.zip/).to_s
6
+ bedrock_server_url =
7
+ if node[:bedrock_server][:url]
8
+ node[:bedrock_server][:url]
9
+ elsif RUBY_ENGINE == 'mruby'
10
+ run_command(%s(curl -fsSL #{VERSION_URL} | grep -o 'https:\/\/minecraft\.azureedge\.net\/bin-linux\/bedrock-server-[0-9.]\+\.zip')).stdout.chomp
11
+ else
12
+ require 'open-uri'
13
+ URI.parse(VERSION_URL).read.match(%r{https://minecraft.azureedge.net/bin-linux/bedrock-server-[0-9.]+.zip}).to_s
14
+ end
7
15
 
8
- http_request "bedrock-server.zip" do
16
+ http_request 'bedrock-server.zip' do
9
17
  url bedrock_server_url
10
18
  end
11
19
 
@@ -6,6 +6,11 @@ template environment_file do
6
6
  notifies :restart, "service[bedrock_server]"
7
7
  end
8
8
 
9
+ template "/etc/systemd/system/bedrock_server.socket" do
10
+ mode "644"
11
+ notifies :restart, "service[bedrock_server]"
12
+ end
13
+
9
14
  template "/etc/systemd/system/bedrock_server.service" do
10
15
  mode "644"
11
16
  variables(
@@ -1,4 +1,37 @@
1
- hash = YAML.load_file("#{__dir__}/../../../../../recipes/node.yml")
1
+ hash = {
2
+ 'bedrock_server' => {
3
+ 'app_dir' => '/opt',
4
+ 'environment' => { 'LD_LIBRARY_PATH' => '.' },
5
+ 'service_actions' => %i[enable start],
6
+ 'configuration' => {
7
+ 'server-name' => 'Dedicated Server',
8
+ 'gamemode' => 'survival',
9
+ 'difficulty' => 'easy',
10
+ 'allow-cheats' => false,
11
+ 'max-players' => 10,
12
+ 'online-mode' => true,
13
+ 'white-list' => false,
14
+ 'server-port' => 19_132,
15
+ 'server-portv6' => 19_133,
16
+ 'view-distance' => 32,
17
+ 'tick-distance' => 4,
18
+ 'player-idle-timeout' => 30,
19
+ 'max-threads' => 8,
20
+ 'level-name' => 'Bedrock level',
21
+ 'level-seed' => '',
22
+ 'level-type' => 'DEFAULT',
23
+ 'default-player-permission-level' => 'member',
24
+ 'texturepack-required' => false,
25
+ 'content-log-file-enabled' => false,
26
+ 'compression-threshold' => 1,
27
+ 'server-authoritative-movement' => 'server-auth',
28
+ 'player-movement-score-threshold' => 20,
29
+ 'player-movement-distance-threshold' => 0.3,
30
+ 'player-movement-duration-threshold-in-ms' => 500,
31
+ 'correct-player-movement' => false
32
+ }
33
+ }
34
+ }
2
35
 
3
36
  node.reverse_merge!(hash)
4
37
 
@@ -6,31 +39,31 @@ node.validate! do
6
39
  {
7
40
  bedrock_server: {
8
41
  configuration: {
9
- "server-name" => string,
10
- "gamemode" => match(/^(survival|creative|adventure)$/),
11
- "difficulty" => match(/^(peaceful|easy|normal|hard)$/),
12
- "allow-cheats" => boolean,
13
- "max-players" => integer,
14
- "online-mode" => boolean,
15
- "white-list" => boolean,
16
- "server-port" => integer,
17
- "server-portv6" => integer,
18
- "view-distance" => integer,
19
- "tick-distance" => integer,
20
- "player-idle-timeout" => integer,
21
- "max-threads" => integer,
22
- "level-name" => string,
23
- "level-seed" => optional(string),
24
- "level-type" => match(/^(FLAT|LEGACY|DEFAULT)$/),
25
- "default-player-permission-level" => match(/^(visitor|member|operator)$/),
26
- "texturepack-required" => boolean,
27
- "content-log-file-enabled" => boolean,
28
- "compression-threshold" => integer,
29
- "server-authoritative-movement" => match(/^(client-auth|server-auth)$/),
30
- "player-movement-score-threshold" => integer,
31
- "player-movement-distance-threshold" => float,
32
- "player-movement-duration-threshold-in-ms" => integer,
33
- "correct-player-movement" => boolean
42
+ 'server-name' => string,
43
+ 'gamemode' => match(/^(survival|creative|adventure)$/),
44
+ 'difficulty' => match(/^(peaceful|easy|normal|hard)$/),
45
+ 'allow-cheats' => boolean,
46
+ 'max-players' => integer,
47
+ 'online-mode' => boolean,
48
+ 'white-list' => boolean,
49
+ 'server-port' => integer,
50
+ 'server-portv6' => integer,
51
+ 'view-distance' => integer,
52
+ 'tick-distance' => integer,
53
+ 'player-idle-timeout' => integer,
54
+ 'max-threads' => integer,
55
+ 'level-name' => string,
56
+ 'level-seed' => optional(string),
57
+ 'level-type' => match(/^(FLAT|LEGACY|DEFAULT)$/),
58
+ 'default-player-permission-level' => match(/^(visitor|member|operator)$/),
59
+ 'texturepack-required' => boolean,
60
+ 'content-log-file-enabled' => boolean,
61
+ 'compression-threshold' => integer,
62
+ 'server-authoritative-movement' => match(/^(client-auth|server-auth)$/),
63
+ 'player-movement-score-threshold' => integer,
64
+ 'player-movement-distance-threshold' => float,
65
+ 'player-movement-duration-threshold-in-ms' => integer,
66
+ 'correct-player-movement' => boolean
34
67
  }
35
68
  }
36
69
  }
@@ -8,6 +8,10 @@ Type=simple
8
8
  WorkingDirectory=<%= @app_dir %>/bedrock-server
9
9
  ExecStart=<%= @app_dir %>/bedrock-server/bedrock_server
10
10
  Restart=on-failure
11
+ Sockets=bedrock_server.socket
12
+ StandardInput=socket
13
+ StandardOutput=journal
14
+ StandardError=journal
11
15
 
12
16
  [Install]
13
17
  WantedBy=multi-user.target
@@ -0,0 +1,5 @@
1
+ [Unit]
2
+ BindsTo=bedrock_server.service
3
+
4
+ [Socket]
5
+ ListenFIFO=%t/bedrock_server
@@ -4,7 +4,7 @@ module Itamae
4
4
  module Plugin
5
5
  module Recipe
6
6
  module BedrockServer
7
- VERSION = "0.2.1"
7
+ VERSION = "0.3.4"
8
8
  end
9
9
  end
10
10
  end
data/mrblib ADDED
@@ -0,0 +1 @@
1
+ ./lib
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: itamae-plugin-recipe-bedrock_server
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.3.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - kyohah
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-01-24 00:00:00.000000000 Z
11
+ date: 2021-01-31 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: itamae
@@ -79,7 +79,9 @@ files:
79
79
  - lib/itamae/plugin/recipe/bedrock_server/templates/bedrock-server/server.properties.erb
80
80
  - lib/itamae/plugin/recipe/bedrock_server/templates/etc/default/bedrock_server.erb
81
81
  - lib/itamae/plugin/recipe/bedrock_server/templates/etc/systemd/system/bedrock_server.service.erb
82
+ - lib/itamae/plugin/recipe/bedrock_server/templates/etc/systemd/system/bedrock_server.socket.erb
82
83
  - lib/itamae/plugin/recipe/bedrock_server/version.rb
84
+ - mrblib
83
85
  - recipes/install.rb
84
86
  - recipes/node.yml
85
87
  homepage: https://github.com/kyohah/itamae-plugin-recipe-bedrock_server