procon_bypass_man 0.3.1 → 0.3.2

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 (28) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +5 -0
  3. data/Gemfile.lock +1 -1
  4. data/README.md +1 -1
  5. data/docs/setting/splatoon2_macro_forward_ikarole.md +2 -33
  6. data/docs/setting/splatoon3_macro_forward_ikarole.md +34 -0
  7. data/docs/setting/splatoon3_recommended_setting.md +136 -0
  8. data/lib/procon_bypass_man/background/jobs/base_job.rb +3 -2
  9. data/lib/procon_bypass_man/background/jobs/post_completed_remote_macro_job.rb +4 -0
  10. data/lib/procon_bypass_man/background.rb +0 -1
  11. data/lib/procon_bypass_man/plugin/splatoon3/macro/charge_tansan_bomb.rb +21 -0
  12. data/lib/procon_bypass_man/plugin/splatoon3/macro/fast_return.rb +21 -0
  13. data/lib/procon_bypass_man/plugin/splatoon3/macro/forward_ikarole.rb +21 -0
  14. data/lib/procon_bypass_man/plugin/splatoon3/macro/jump_to_left_key.rb +21 -0
  15. data/lib/procon_bypass_man/plugin/splatoon3/macro/jump_to_right_key.rb +21 -0
  16. data/lib/procon_bypass_man/plugin/splatoon3/macro/jump_to_up_key.rb +21 -0
  17. data/lib/procon_bypass_man/plugin/splatoon3/macro/sokuwari_for_splash_bomb.rb +26 -0
  18. data/lib/procon_bypass_man/plugin/splatoon3/mode/guruguru.rb +63 -0
  19. data/lib/procon_bypass_man/plugin/splatoon3/version.rb +9 -0
  20. data/lib/procon_bypass_man/plugins.rb +10 -0
  21. data/lib/procon_bypass_man/support/http_client.rb +3 -2
  22. data/lib/procon_bypass_man/support/remote_macro_http_client.rb +4 -0
  23. data/lib/procon_bypass_man/version.rb +1 -1
  24. data/lib/procon_bypass_man/worker.rb +16 -8
  25. data/project_template/app.rb +1 -1
  26. data/project_template/app.rb.erb +1 -1
  27. metadata +13 -3
  28. data/lib/procon_bypass_man/background/job_performer.rb +0 -15
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 3d7e6a739dbaf4be4022b97c591828d5ccca8d947c0c3bc0a0a8ffa8097a2b95
4
- data.tar.gz: f7ad824a4e34d051c3f3514d18f6c6ab4b3e23b0cf6d9c574af1038afe9118b0
3
+ metadata.gz: 7f48f74b2d080a695b673df7fead87e9c97a8fad14c8afc6c03027490e798f22
4
+ data.tar.gz: b1711feb8433cd8dc47e9a5eb05dc8b989ef0a3e95d33c292ab664b94b05ddda
5
5
  SHA512:
6
- metadata.gz: 5ab67436d5d4dbca83ec68d42b0621d6737370388e10d5d86738914506dd6261aa6f495b7074f36ec685d1392b433ec1d7070f9417c2dfe4e7927b6840829633
7
- data.tar.gz: 4c0034304beda74a99126b4dfd1cd35b2f0ac00b78c200dea9f6bfd64a19b0c39407a4e24afcd0914764e9899058a328e4a1c18130efc83421eb7202b2543e1c
6
+ metadata.gz: ff4071d2a2bdb9c3f3a26e2f27c659ef1e080b683286998fe129f7bcac72dea9e0f97e23769da495f024bd55f55b54b952accf89f3118373cf46343f2a2dc4b2
7
+ data.tar.gz: bd0faface2c631886156850b67e1480c04a05b214fddffa277c9fd9ff7d4561c3991e34baca27da001a8444797f8ade1aa00d57a1c263166ff82c3b5d2c436fa
data/CHANGELOG.md CHANGED
@@ -1,3 +1,8 @@
1
+ ## [0.3.2] - 2022-10-13
2
+ * スプラトゥーン3に対応したプラグインを追加しました
3
+ * 詳しい設定方法については docs/setting/splatoon3_recommended_setting.md を参照してください
4
+ * 自動ドット打ちが稀に途中で止まってしまうのを修正しました
5
+
1
6
  ## [0.3.1] - 2022-10-07
2
7
  * レイヤーを変更しているときにコントローラーを振動できるようになりました
3
8
  * setting.yml で `enable(:rumble_on_layer_change)` と記述してください
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- procon_bypass_man (0.3.1)
4
+ procon_bypass_man (0.3.2)
5
5
  action_cable_client
6
6
  blue_green_process
7
7
  pbmenv (>= 0.1.9)
data/README.md CHANGED
@@ -7,7 +7,6 @@
7
7
  * ドキュメントは [getting_started.md](docs/getting_started.md) にまとめています
8
8
  * https://pbm-cloud.herokuapp.com を使うと、webだけで運用が可能です
9
9
 
10
-
11
10
  <img width="880" alt="スクリーンショット 2022-04-02 9 10 38" src="https://user-images.githubusercontent.com/1664497/161356057-71e4bc2a-0217-4434-9bf1-0002b9fb261a.png">
12
11
 
13
12
  https://user-images.githubusercontent.com/1664497/171327108-f12f56a5-fc36-48da-95a5-65e976553a20.mov
@@ -24,6 +23,7 @@ https://user-images.githubusercontent.com/1664497/171327108-f12f56a5-fc36-48da-9
24
23
 
25
24
  ## プラグイン
26
25
  * https://github.com/splaplapla/procon_bypass_man-splatoon2
26
+ * [スプラトゥーン3](docs/setting/splatoon3_recommended_setting.md)
27
27
 
28
28
  ## FAQ
29
29
  * どうやって動かすの?
@@ -1,34 +1,3 @@
1
- # スプラトゥーン2: イカロール マクロの設定方法
1
+ # スプラトゥーン3: イカロール マクロの設定方法
2
2
 
3
- * procon_bypass_man: 0.3.1以上が必要です
4
- * このマクロは、右から上へ高速にスティックを入れることでイカロールを行います
5
- * 後述する設定例では、左スティックを押し込むことでイカロールを発動してます
6
-
7
- https://user-images.githubusercontent.com/1664497/193837089-1c56af8d-2c1b-436a-b2a7-89c083a408d7.mov
8
-
9
-
10
- ## 設定例1
11
- ```yaml
12
- version: 1.0
13
- setting: |-
14
- prefix_keys_for_changing_layer [:zr, :zl, :l]
15
-
16
- layer :up do
17
- open_macro :forward_ikarole, steps: [:forward_ikarole1], if_pressed: [:thumbl], force_neutral: []
18
- end
19
- ```
20
-
21
- ## 設定例2
22
- pluginとして登録してあるので、 `macro` を使っても同じことができます。
23
-
24
- ```yaml
25
- version: 1.0
26
- setting: |-
27
- prefix_keys_for_changing_layer [:zr, :zl, :l]
28
-
29
- install_macro_plugin(ProconBypassMan::Plugin::Splatoon2::Macro::ForwardIkarole)
30
-
31
- layer :up do
32
- macro ProconBypassMan::Plugin::Splatoon2::Macro::ForwardIkarole, if_pressed: [:thumbl], force_neutral: []
33
- end
34
- ```
3
+ [スプラトゥーン3: イカロール マクロの設定方法](splatoon3_macro_forward_ikarole.md)
@@ -0,0 +1,34 @@
1
+ # スプラトゥーン3: イカロール マクロの設定方法
2
+
3
+ * procon_bypass_man: 0.3.1以上が必要です
4
+ * このマクロは、右から上へ高速にスティックを入れることでイカロールを行います
5
+ * 後述する設定例では、左スティックを押し込むことでイカロールを発動してます
6
+
7
+ https://user-images.githubusercontent.com/1664497/193837089-1c56af8d-2c1b-436a-b2a7-89c083a408d7.mov
8
+
9
+
10
+ ## 設定例1
11
+ ```yaml
12
+ version: 1.0
13
+ setting: |-
14
+ prefix_keys_for_changing_layer [:zr, :zl, :l]
15
+
16
+ layer :up do
17
+ open_macro :forward_ikarole, steps: [:forward_ikarole1], if_pressed: [:thumbl], force_neutral: []
18
+ end
19
+ ```
20
+
21
+ ## 設定例2
22
+ pluginとして登録してあるので、 `macro` を使っても同じことができます。
23
+
24
+ ```yaml
25
+ version: 1.0
26
+ setting: |-
27
+ prefix_keys_for_changing_layer [:zr, :zl, :l]
28
+
29
+ install_macro_plugin(ProconBypassMan::Plugin::Splatoon2::Macro::ForwardIkarole)
30
+
31
+ layer :up do
32
+ macro ProconBypassMan::Plugin::Splatoon3::Macro::ForwardIkarole, if_pressed: [:thumbl], force_neutral: []
33
+ end
34
+ ```
@@ -0,0 +1,136 @@
1
+ # スプラトゥーン3: おすすめの設定
2
+ ## 1 全般
3
+ ### 1.1 デスしてから最速スパジャンのためのAボタン連打
4
+
5
+ `flip :a, if_pressed: [:a]`
6
+ Aボタンを連打にします。復帰してから最速で前線復帰ができます
7
+
8
+ ### 1.2 簡単スニーキング
9
+
10
+ ボタンを押している間は、水飛沫のたたないスニーキングの感度まで調整することができます。
11
+ [設定方法](/docs/setting/left-analogstick-cap.md)
12
+
13
+ ### 1.3 ナイス玉連打
14
+
15
+ `flip :down, if_pressed: :down`
16
+ 十字キーの下ボタンは常に連打にしておくとナイス玉が来たときに楽です。
17
+
18
+ ### 1.4 最速スーパージャンプ
19
+ マップを開かずにジャンプができます。トリガーは自由に設定できます。
20
+
21
+ ```ruby
22
+ install_macro_plugin ProconBypassMan::Plugin::Splatoon3::Macro::FastReturn
23
+ install_macro_plugin ProconBypassMan::Plugin::Splatoon3::Macro::JumpToUpKey
24
+ install_macro_plugin ProconBypassMan::Plugin::Splatoon3::Macro::JumpToRightKey
25
+ install_macro_plugin ProconBypassMan::Plugin::Splatoon3::Macro::JumpToLeftKey
26
+
27
+ layer :up do
28
+ macro ProconBypassMan::Plugin::Splatoon3::Macro::FastReturn, if_pressed: [:y, :b, :down]
29
+ macro ProconBypassMan::Plugin::Splatoon3::Macro::JumpToUpKey, if_pressed: [:y, :b, :up]
30
+ macro ProconBypassMan::Plugin::Splatoon3::Macro::JumpToRightKey, if_pressed: [:y, :b, :right]
31
+ macro ProconBypassMan::Plugin::Splatoon3::Macro::JumpToLeftKey, if_pressed: [:y, :b, :left]
32
+ end
33
+ ```
34
+
35
+ ### 1.5 イカロール
36
+ * このマクロは、右から上へ高速にスティックを入れることでイカロールを行います
37
+ * 後述の設定例では、左スティックを押し込むことでイカロールを発動してます
38
+
39
+ ```ruby
40
+ layer :up do
41
+ open_macro :forward_ikarole, steps: [:forward_ikarole1], if_pressed: [:thumbl], force_neutral: []
42
+ end
43
+ ```
44
+
45
+ ## 2 武器に特化した設定
46
+ ### 2.1 パブロ、ボトルガイザー向け
47
+
48
+ `flip :zr, if_pressed: :zr, force_neutral: :zl`
49
+ zrを連打にします。`force_neutral: :zl` というオプションをつけることで、ZRを押している間はZLを押しても無視されるようになります。パブロでは意味がありませんが、シューターだと煽りのような動作を抑制することができます。
50
+
51
+ ## 3 設定例
52
+ ### 3.1 シンプルなパブロ向け
53
+
54
+ * ZRボタン, ZLボタン, Lボタンを同時押しながら十字キーを押すとレイヤーを切り替える
55
+ * ナイス玉が来たときにゲージを貯めるために十字キーの下を連打
56
+ * 復帰から最速ジャンプのためにAボタンを連打
57
+ * 筆を振るためにZRボタンを連打
58
+ * 筆ダッシュをするためにLボタンをZRボタンに変更
59
+ * イカロール
60
+
61
+ ```yaml
62
+ version: 1.0
63
+ setting: |-
64
+ prefix_keys_for_changing_layer [:zr, :zl, :l]
65
+
66
+ layer :up do
67
+ flip :zr, if_pressed: :zr, force_neutral: :zl
68
+ flip :a, if_pressed: [:a]
69
+ flip :down, if_pressed: :down
70
+ remap :l, to: :zr
71
+ open_macro :forward_ikarole, steps: [:forward_ikarole1], if_pressed: [:thumbl], force_neutral: []
72
+ end
73
+
74
+ layer :right do
75
+ end
76
+
77
+ layer :left do
78
+ end
79
+
80
+ layer :down do
81
+ end
82
+ ```
83
+
84
+ ### 3.2 全部盛り
85
+
86
+ * ZRボタン, ZLボタン, Lボタンを同時押しながら十字キーを押すとレイヤーを切り替える
87
+ * ナイス玉が来たときにゲージを貯めるために十字キーの下を連打
88
+ * 筆を振るためにZRボタンを連打
89
+ * 復帰から最速ジャンプのためにAボタンを連打
90
+ * YボタンとBボタンと十字キーの上を同時に押したときに、マップ開いた時の↑に設定されている味方にスーパージャンプ
91
+ * YボタンとBボタンと十字キーの左を同時に押したときに、マップ開いた時の←に設定されている味方にスーパージャンプ
92
+ * YボタンとBボタンと十字キーの右を同時に押したときに、マップ開いた時の→に設定されている味方にスーパージャンプ
93
+ * YボタンとBボタンと十字キーの下を同時に押したときに、リスポーンにスーパージャンプ
94
+ * ZLボタンと十字キーの右ボタンを同時に、バブル即割を発動
95
+ * 筆ダッシュをするためにLボタンをZRボタンに変更
96
+ * ZLボタンとAボタンを同時に押したときに移動するとスニーキング
97
+ * イカロール
98
+
99
+ ```yaml
100
+ version: 1.0
101
+ setting: |-
102
+ install_macro_plugin ProconBypassMan::Plugin::Splatoon3::Macro::FastReturn
103
+ install_macro_plugin ProconBypassMan::Plugin::Splatoon3::Macro::JumpToUpKey
104
+ install_macro_plugin ProconBypassMan::Plugin::Splatoon3::Macro::JumpToRightKey
105
+ install_macro_plugin ProconBypassMan::Plugin::Splatoon3::Macro::JumpToLeftKey
106
+ install_macro_plugin ProconBypassMan::Plugin::Splatoon3::Macro::SokuwariForSplashBomb
107
+
108
+ prefix_keys_for_changing_layer [:zr, :zl, :l]
109
+ set_neutral_position 2100, 2000
110
+
111
+ layer :up do
112
+ flip :zr, if_pressed: :zr, force_neutral: :zl
113
+ flip :a, if_pressed: [:a]
114
+ flip :down, if_pressed: :down
115
+
116
+ macro ProconBypassMan::Plugin::Splatoon3::Macro::FastReturn, if_pressed: [:y, :b, :down]
117
+ macro ProconBypassMan::Plugin::Splatoon3::Macro::JumpToUpKey, if_pressed: [:y, :b, :up]
118
+ macro ProconBypassMan::Plugin::Splatoon3::Macro::JumpToRightKey, if_pressed: [:y, :b, :right]
119
+ macro ProconBypassMan::Plugin::Splatoon3::Macro::JumpToLeftKey, if_pressed: [:y, :b, :left]
120
+ macro ProconBypassMan::Plugin::Splatoon3::Macro::SokuwariForSplashBomb, if_pressed: [:zl, :right]
121
+
122
+ remap :l, to: :zr
123
+ left_analog_stick_cap cap: 1100, if_pressed: [:zl, :a], force_neutral: :a
124
+
125
+ open_macro :forward_ikarole, steps: [:forward_ikarole1], if_pressed: [:thumbl], force_neutral: []
126
+ end
127
+
128
+ layer :right do
129
+ end
130
+
131
+ layer :left do
132
+ end
133
+
134
+ layer :down do
135
+ end
136
+ ```
@@ -1,7 +1,8 @@
1
1
  class ProconBypassMan::BaseJob
2
2
  extend ProconBypassMan::Background::JobPerformable
3
3
 
4
- def self.servers
5
- raise NotImplementedError
4
+ # @return [Boolean]
5
+ def self.re_enqueue_if_failed
6
+ false
6
7
  end
7
8
  end
@@ -13,5 +13,9 @@ class ProconBypassMan::PostCompletedRemoteMacroJob < ProconBypassMan::BaseJob
13
13
  device_id = ProconBypassMan.device_id
14
14
  "/api/devices/#{ProconBypassMan.device_id}/completed_pbm_remote_macro_jobs"
15
15
  end
16
+
17
+ def self.re_enqueue_if_failed
18
+ true
19
+ end
16
20
  end
17
21
 
@@ -1,7 +1,6 @@
1
1
  require "procon_bypass_man/background/jobs/concerns/has_external_api_setting"
2
2
  require "procon_bypass_man/background/jobs/concerns/job_performable"
3
3
  require "procon_bypass_man/background/job_queue"
4
- require "procon_bypass_man/background/job_performer"
5
4
  require "procon_bypass_man/background/jobs/base_job"
6
5
  require "procon_bypass_man/background/jobs/report_event_base_job"
7
6
  require "procon_bypass_man/background/jobs/report_boot_job"
@@ -0,0 +1,21 @@
1
+ module ProconBypassMan
2
+ module Plugin
3
+ module Splatoon3
4
+ module Macro
5
+ module ChargeTansanBomb
6
+ def self.display_name
7
+ :charge_tansan_bomb
8
+ end
9
+
10
+ def self.steps
11
+ [:shake_left_stick_and_toggle_b_for_0_1sec].freeze
12
+ end
13
+
14
+ def self.description
15
+ 'タンサンボムのチャージ'
16
+ end
17
+ end
18
+ end
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,21 @@
1
+ module ProconBypassMan
2
+ module Plugin
3
+ module Splatoon3
4
+ module Macro
5
+ module FastReturn
6
+ def self.display_name
7
+ :fast_return
8
+ end
9
+
10
+ def self.steps
11
+ [:x, :x, :x, :down, :down, :down, :down, :down, :toggle_a_for_0_1sec, :wait_for_0_5sec]
12
+ end
13
+
14
+ def self.description
15
+ '試合中にリスポーンにスーパージャンプ'
16
+ end
17
+ end
18
+ end
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,21 @@
1
+ module ProconBypassMan
2
+ module Plugin
3
+ module Splatoon3
4
+ module Macro
5
+ module ForwardIkarole
6
+ def self.display_name
7
+ :forward_ikarole
8
+ end
9
+
10
+ def self.steps
11
+ [:forward_ikarole1].freeze
12
+ end
13
+
14
+ def self.description
15
+ '前方にイカロールをします'
16
+ end
17
+ end
18
+ end
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,21 @@
1
+ module ProconBypassMan
2
+ module Plugin
3
+ module Splatoon3
4
+ module Macro
5
+ module JumpToLeftKey
6
+ def self.display_name
7
+ :jump_to_left_key
8
+ end
9
+
10
+ def self.steps
11
+ [:x, :x, :x, :left, :left, :left, :left, :left, :toggle_a_for_0_1sec, :wait_for_0_5sec]
12
+ end
13
+
14
+ def self.description
15
+ '試合中に左キーに割り当てられている味方へのスーパージャンプ'
16
+ end
17
+ end
18
+ end
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,21 @@
1
+ module ProconBypassMan
2
+ module Plugin
3
+ module Splatoon3
4
+ module Macro
5
+ module JumpToRightKey
6
+ def self.display_name
7
+ :jump_to_right_key
8
+ end
9
+
10
+ def self.steps
11
+ [:x, :x, :x, :right, :right, :right, :right, :right, :toggle_a_for_0_1sec, :wait_for_0_5sec]
12
+ end
13
+
14
+ def self.description
15
+ '試合中に右キーに割り当てられている味方へのスーパージャンプ'
16
+ end
17
+ end
18
+ end
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,21 @@
1
+ module ProconBypassMan
2
+ module Plugin
3
+ module Splatoon3
4
+ module Macro
5
+ module JumpToUpKey
6
+ def self.display_name
7
+ :jump_to_up_key
8
+ end
9
+
10
+ def self.steps
11
+ [:x, :x, :x, :up, :up, :up, :up, :up, :toggle_a_for_0_1sec, :wait_for_0_5sec]
12
+ end
13
+
14
+ def self.description
15
+ '試合中に上キーに割り当てられている味方へのスーパージャンプ'
16
+ end
17
+ end
18
+ end
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,26 @@
1
+ module ProconBypassMan
2
+ module Plugin
3
+ module Splatoon3
4
+ module Macro
5
+ module SokuwariForSplashBomb
6
+ def self.display_name
7
+ :sokuwari_for_splash_bomb
8
+ end
9
+
10
+ # procon_bypass_man: 0.1.18以上が必要
11
+ def self.steps
12
+ [ :toggle_r_for_0_2sec,
13
+ :toggle_thumbr_for_0_14sec,
14
+ :toggle_thumbr_and_toggle_zr_for_0_34sec,
15
+ :toggle_r_for_1sec,
16
+ ].freeze
17
+ end
18
+
19
+ def self.description
20
+ 'バブル即割'
21
+ end
22
+ end
23
+ end
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,63 @@
1
+ module ProconBypassMan
2
+ module Plugin
3
+ module Splatoon3
4
+ module Mode
5
+ module Guruguru
6
+ def self.description
7
+ '適当に動きます'
8
+ end
9
+
10
+ def self.binaries
11
+ [ "309481408000362d684658750968f71cfe2c0e51000001480053f71ffedf0d4b000a013d00caf6ecfd4c0d480003011c00000000000000000000000000000000",
12
+ "30978140800037dd6748687509fdf6adfded0d6d0081005d00eef68dfdef0d6d00830059001bf791fd140e720090005400000000000000000000000000000000",
13
+ "309a8140800038cd67495875099af821fe120e40006400880042f8fcfdfd0d470067008900d4f7e0fdf20d4e006a008c00000000000000000000000000000000",
14
+ "309c8140800036ed67466875099bf878fe4a0e35005b004c00c1f875fe400e35005d004c00c4f856fe2d0e390063006c00000000000000000000000000000000",
15
+ "30a081408000371d6847587509b9f71bfee70d22002c002300e3f73afe150e2b003500280014f854fe300e2d0038002900000000000000000000000000000000",
16
+ "30a38140800039fd6743587509def70ffea10d1a0031001f00d1f70ffeb10d19002c002200c5f711feb80d18002c002500000000000000000000000000000000",
17
+ "30a58140800037dd6746687509d8f70bfe980d270035001200ddf70dfe980d240038001900dff70ffe9b0d1f0035001a00000000000000000000000000000000",
18
+ "30a98140800037ed67484875099cf7edfdb00d310020000d009ef7eefda30d310022000c00adf7f2fd980d300028000a00000000000000000000000000000000",
19
+ "30ac8140800036ed67484875099cf709fed40d3a002400160097f7fafdd30d39002200150096f7f0fdc80d380022001400000000000000000000000000000000",
20
+ "30ae8140800038fd674558750987f72efed40d360021001c0089f729fed50d39002400180092f715fed10d390022001800000000000000000000000000000000",
21
+ "30b18140800037dd6747487509b8f705fea90d19001d002000c5f70dfeb00d210019002200bff71efec20d280018002400000000000000000000000000000000",
22
+ "30b48140800038fd684868750980f7e9fdd40d0200080024007df7f1fdba0d060011001e0084f7f8fdaa0d12001a001a00000000000000000000000000000000",
23
+ "30b7814080003fdd694958750918f6a9fd510f0d00d1ff370024f7b0fda90e0100ecff30006cf7d1fd210efffff5ff2c00000000000000000000000000000000",
24
+ "30ba81408080482d744768750963f71ffe190f5e00d9fea100ccf62dfe650f510009ff980015f702fe580f4b002eff8400000000000000000000000000000000",
25
+ "30bd814080802f7d864758750974f70efe4c0f5e00c0fea000d1f726fe1c0f5d00c5fea30028f859fe0e0f5c00cafea800000000000000000000000000000000",
26
+ "30bf8140808057cc984758750961f73afe630f99009dfeae0050f738fe710f7500adfea40050f721fe720f6e00b2fea300000000000000000000000000000000",
27
+ "30c281408080f479bd483875092ef8b6feab0f0a0180feba00f1f798fe900f000181febd00c2f77dfe7c0fdb008efebd00000000000000000000000000000000",
28
+ "30c581408080ad87d846487509e1f80000a6107e0178fea2004ef88dff54106c0185fea70063f826ffe60f520182feae00000000000000000000000000000000",
29
+ "30c8810080800797d84868750995f8e1fe4b0f7a0161fe88000df96dffd00f700149fe990035f9cdff361088016afea000000000000000000000000000000000",
30
+ "30cb810080804586d848487509cef672fe8a0f6d0217ff42002df63cfe280f1d0219ff410059f61cfe070fed01f5fe4a00000000000000000000000000000000",
31
+ "30d08100808002c5d745687509d8f5aaff830f5e03e6fe3e01fbf55bffc30f3f03e4fe100158f600ff3e102903e5fee700000000000000000000000000000000",
32
+ "30d3810080807b94d14838750991f6cd00690f9903f0fff10147f6e200560f7e038fffc60101f6c900560f71033bffa901000000000000000000000000000000",
33
+ "30d681008080b743ca475875095af7f2009c0fca03a400320242f7ca00950fb503820028020af7b000820fa4034e001a02000000000000000000000000000000",
34
+ "30d9810080805be3c047587509e7f77a03c70f0e04bb00410258f79801940f0004b800410251f74401910fd803b3003602000000000000000000000000000000",
35
+ "30dc810080808a02b245587509c0fbd5086a10710475020a03b0fb8d085d106c042102e8027efb660876106a04bc01af02000000000000000000000000000000",
36
+ "30de8100808036d2a14568750970fbbf09ad103704af038003a9fb600989105c0459036103c2fb2a097210690412034603000000000000000000000000000000",
37
+ "30e281008000cbb18d4738750989f8b40b2812380341044c0429f99e0bef11510340043704f2f93c0b7911b0033704f003000000000000000000000000000000",
38
+ "30e581008000c9c18945587509a5f7ca0a2e13e400c6024c0547f7fd0a941264011703270578f74a0b6012e40168030205000000000000000000000000000000",
39
+ "30e781008000c6618948687509acf86909e813d0fe2801a1057cf8cf09ed130fff6301990516f8710aaa13ccff13028205000000000000000000000000000000",
40
+ "30ea81008000c77189475875093af93b0762136efbaeff19060cf90107b113a9fb99ff0906e1f85b07b113bafc9fffcd05000000000000000000000000000000",
41
+ "30ed81008000c791894568750950f9ce047c1432f900026007a5f9a6051f146ef9bb013707bff99206a813fef9ce00c606000000000000000000000000000000",
42
+ "30ef81008000c6d1894558750944f8ad0358143ef81c02f10780f8b403841484f84102d107ccf801049314bcf84202ad07000000000000000000000000000000",
43
+ "30f381008000c761884868750914f72105e4134cf6d001c00743f71a05f11391f6bf01e407a0f7c904fa13faf6b3011008000000000000000000000000000000",
44
+ "30f681008000c7718344587509eaf54a04c812a6f40002500627f66d041313f2f40d02940682f6a60468133ef51a02d806000000000000000000000000000000",
45
+ "30f881008000c4e1814668750b5cf5f803b51125f3b5000d0560f50f04e8118cf33c015d057df525042c1210f4b101cc05000000000000000000000000000000",
46
+ "30fb81008000c5e1814458750b19f65a02a410acf29effb804e2f5db02df10b7f2c0ffbf04a9f55c032011dcf22400d804000000000000000000000000000000",
47
+ "30fe8100800035e2814858750b81f65c00f80f8df231fe940471f6e6001f1088f2a6fe92044ef6b1015a1092f21fffa004000000000000000000000000000000",
48
+ "3001810080004b03814868750b69f6e6fdad0ffef20efdd40479f678feb40fd9f249fdc40484f6f4fec00fb0f29ffdad04000000000000000000000000000000",
49
+ "30048100800079e47d4858750b17f64cfb5f0f46f46afb430529f6c4fb710ff1f3d4fb300538f64bfc830fbbf315fc1d05000000000000000000000000000000",
50
+ "300781008000a7057e4668750bb1f5d3f9fb0e8ef5ccf96405cdf5fcf90c0f44f52dfa6505e1f52dfa210f29f550fa6305000000000000000000000000000000",
51
+ "30098100800041f67d4668750bcdf4b0f9ab0e21f602f955057ef5adf9d00ee1f559f95f05b1f5d3f9fb0e8ef5ccf96405000000000000000000000000000000",
52
+ "300d810080003d877c4838750b84f458f7dd0c89f6d0f8fc0436f4e2f7620d83f614f8430526f4c0f8a00e71f666f85c05000000000000000000000000000000",
53
+ "30108100800058e77a4668750bf7f2c3f57c0c9cf6abfa0a0470f30ef6790c89f65dfa420414f476f67e0c80f6d0f98a04000000000000000000000000000000",
54
+ "30128100800059f77a4658750b7ef249f5580cd9f69bfaa40389f269f56c0cd1f6a9fab503a3f286f5760cacf6c9faeb03000000000000000000000000000000",
55
+ "3016810080005b177b4868750ba9f298f4450b2cf774fa3102b8f2a5f47a0b24f765fa6e02b8f2b8f4b10b1df755faac02000000000000000000000000000000",
56
+ "30198100800057777a4558750b39f258f4480a80f73efaf40016f26af4940a5ef76bfa37014ef275f4d40a46f780fa8401000000000000000000000000000000",
57
+ ].map(&:freeze).freeze
58
+ end
59
+ end
60
+ end
61
+ end
62
+ end
63
+ end
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ module ProconBypassMan
4
+ module Plugin
5
+ module Splatoon3
6
+ VERSION = "0.1.0"
7
+ end
8
+ end
9
+ end
@@ -8,6 +8,16 @@ require_relative "plugin/splatoon2/macro/forward_ikarole"
8
8
  require_relative "plugin/splatoon2/macro/charge_tansan_bomb"
9
9
  require_relative "plugin/splatoon2/mode/guruguru"
10
10
 
11
+ require_relative "plugin/splatoon3/version"
12
+ require_relative "plugin/splatoon3/macro/fast_return"
13
+ require_relative "plugin/splatoon3/macro/jump_to_right_key"
14
+ require_relative "plugin/splatoon3/macro/jump_to_up_key"
15
+ require_relative "plugin/splatoon3/macro/jump_to_left_key"
16
+ require_relative "plugin/splatoon3/macro/sokuwari_for_splash_bomb"
17
+ require_relative "plugin/splatoon3/macro/forward_ikarole"
18
+ require_relative "plugin/splatoon3/macro/charge_tansan_bomb"
19
+ require_relative "plugin/splatoon3/mode/guruguru"
20
+
11
21
  module ProconBypassMan
12
22
  module Plugin
13
23
  end
@@ -96,13 +96,14 @@ module ProconBypassMan
96
96
  sleep(10)
97
97
  retry
98
98
  end
99
+ raise if respond_to?(:raise_if_failed) && raise_if_failed
99
100
  rescue Timeout::Error
100
101
  ProconBypassMan.logger.error(e)
101
102
  sleep(10)
102
- retry
103
+ raise if respond_to?(:raise_if_failed) && raise_if_failed
103
104
  rescue => e
104
- puts e
105
105
  ProconBypassMan.logger.error(e)
106
+ raise if respond_to?(:raise_if_failed) && raise_if_failed
106
107
  end
107
108
  end
108
109
  end
@@ -5,5 +5,9 @@ module ProconBypassMan
5
5
  job_id: job_id,
6
6
  })
7
7
  end
8
+
9
+ def raise_if_failed
10
+ true
11
+ end
8
12
  end
9
13
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module ProconBypassMan
4
- VERSION = "0.3.1"
4
+ VERSION = "0.3.2"
5
5
  end
@@ -6,24 +6,32 @@ module ProconBypassMan
6
6
  new.run
7
7
  end
8
8
 
9
- # @param [Boolean]
9
+ # @return [Worker]
10
10
  def run
11
11
  return self if @thread
12
12
  @thread = Thread.new do
13
13
  while(item = ProconBypassMan::Background::JobQueue.pop)
14
- begin
15
- # プロセスを越えるので、文字列でenqueueしてくれる前提. evalしてクラスにする
16
- ProconBypassMan::Background::JobPerformer.new(klass: eval(item[:job_class]), args: item[:args]).perform
17
- rescue => e
18
- ProconBypassMan.logger.error(e)
19
- sleep(0.2) # busy loopしないように
20
- end
14
+ # プロセスを越えるので文字列になっている. evalしてクラスにする
15
+ work(job_class: eval(item[:job_class]), args: item[:args])
16
+ sleep(0.2) # busy loopしないように
21
17
  end
22
18
  end
23
19
 
24
20
  return self
25
21
  end
26
22
 
23
+ def work(job_class: , args: )
24
+ begin
25
+ job_class.perform(*args)
26
+ rescue => e
27
+ ProconBypassMan.logger.error(e)
28
+ if job_class.respond_to?(:re_enqueue_if_failed) && job_class.re_enqueue_if_failed
29
+ job_class.perform_async(args)
30
+ ProconBypassMan.logger.error("エラーが起きたので#{job_class}を積み直しました。")
31
+ end
32
+ end
33
+ end
34
+
27
35
  # 重要な非同期ジョブは存在しないのでqueueが捌けるのを待たずにkill
28
36
  def shutdown
29
37
  @thread&.kill
@@ -12,7 +12,7 @@ begin
12
12
  gemfile do
13
13
  source 'https://rubygems.org'
14
14
  git_source(:github) {|repo_name| "https://github.com/#{repo_name}" }
15
- gem 'procon_bypass_man', '0.3.1'
15
+ gem 'procon_bypass_man', '0.3.2'
16
16
  end
17
17
  rescue Bundler::Source::Git::GitCommandError => e
18
18
  retry_count_on_git_command_error = retry_count_on_git_command_error + 1
@@ -12,7 +12,7 @@ begin
12
12
  gemfile do
13
13
  source 'https://rubygems.org'
14
14
  git_source(:github) {|repo_name| "https://github.com/#{repo_name}" }
15
- gem 'procon_bypass_man', '0.3.1'
15
+ gem 'procon_bypass_man', '0.3.2'
16
16
  end
17
17
  rescue Bundler::Source::Git::GitCommandError => e
18
18
  retry_count_on_git_command_error = retry_count_on_git_command_error + 1
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: procon_bypass_man
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.1
4
+ version: 0.3.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - jiikko
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-10-07 00:00:00.000000000 Z
11
+ date: 2022-10-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: pbmenv
@@ -99,6 +99,8 @@ files:
99
99
  - docs/setting/splatoon2_macro_sokuwari_bubble.md
100
100
  - docs/setting/splatoon2_recommended_setting.md
101
101
  - docs/setting/splatoon2_shake_tansan.md
102
+ - docs/setting/splatoon3_macro_forward_ikarole.md
103
+ - docs/setting/splatoon3_recommended_setting.md
102
104
  - docs/setup_raspi.md
103
105
  - docs/setup_raspi.mitamae.rb
104
106
  - docs/setup_raspi_by_mitamae.md
@@ -107,7 +109,6 @@ files:
107
109
  - lib/ext/module.rb
108
110
  - lib/procon_bypass_man.rb
109
111
  - lib/procon_bypass_man/background.rb
110
- - lib/procon_bypass_man/background/job_performer.rb
111
112
  - lib/procon_bypass_man/background/job_queue.rb
112
113
  - lib/procon_bypass_man/background/jobs/base_job.rb
113
114
  - lib/procon_bypass_man/background/jobs/concerns/has_external_api_setting.rb
@@ -171,6 +172,15 @@ files:
171
172
  - lib/procon_bypass_man/plugin/splatoon2/macro/sokuwari_for_splash_bomb.rb
172
173
  - lib/procon_bypass_man/plugin/splatoon2/mode/guruguru.rb
173
174
  - lib/procon_bypass_man/plugin/splatoon2/version.rb
175
+ - lib/procon_bypass_man/plugin/splatoon3/macro/charge_tansan_bomb.rb
176
+ - lib/procon_bypass_man/plugin/splatoon3/macro/fast_return.rb
177
+ - lib/procon_bypass_man/plugin/splatoon3/macro/forward_ikarole.rb
178
+ - lib/procon_bypass_man/plugin/splatoon3/macro/jump_to_left_key.rb
179
+ - lib/procon_bypass_man/plugin/splatoon3/macro/jump_to_right_key.rb
180
+ - lib/procon_bypass_man/plugin/splatoon3/macro/jump_to_up_key.rb
181
+ - lib/procon_bypass_man/plugin/splatoon3/macro/sokuwari_for_splash_bomb.rb
182
+ - lib/procon_bypass_man/plugin/splatoon3/mode/guruguru.rb
183
+ - lib/procon_bypass_man/plugin/splatoon3/version.rb
174
184
  - lib/procon_bypass_man/plugins.rb
175
185
  - lib/procon_bypass_man/processor.rb
176
186
  - lib/procon_bypass_man/procon.rb
@@ -1,15 +0,0 @@
1
- module ProconBypassMan
2
- module Background
3
- class JobPerformer
4
- def initialize(klass: , args: )
5
- @klass = klass
6
- @args = args
7
- end
8
-
9
- # @raise [any]
10
- def perform
11
- @klass.perform(*@args)
12
- end
13
- end
14
- end
15
- end