Skip to content

Commit a2737e2

Browse files
committed
Merge branch 'release/5.10.0'
2 parents 64bac53 + 3a04e72 commit a2737e2

135 files changed

Lines changed: 10173 additions & 4665 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

README.md

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -44,18 +44,20 @@ Explosive Gaming (often ExpGaming) is a server hosting community with a strong f
4444

4545
## Contributing
4646

47-
All are welcome to make pull requests and issues for this scenario, if you are in any doubt please ask someone in our [discord]. If you do not know lua and don't feel like learning you can always make a [feature request]. Please keep in mind while making code changes:
47+
All are welcome to make pull requests and issues for this scenario, if you are in any doubt please ask someone in our [discord]. If you do not know lua and don't feel like learning you can always make a [feature request]. All our docs can be found [here][docs]. Please keep in mind while making code changes:
4848

4949
* New features should have the branch names: `feature/feature-name`
50-
* New features are merged into `dev` after it has been completed.
51-
* After a number of features have been added a release branch is made: `release/X.Y.0`; this branch should have no new features and only bug fixes or localization.
52-
* A release is merged into `master` on the following friday in time for the the weekly reset.
53-
* Patches may be named `patch/X.Y.Z` and fill be merged into `master` and `dev` when appropriate.
50+
* New features are merged into `dev` after it has been completed, this can be done through a pull request.
51+
* After a number of features have been added a release branch is made: `release/X.Y.0`
52+
* Bug fixes and localization can be made to the release branch with a pull request rather than into dev.
53+
* A release is merged into `master` on the following friday after it is considered stable.
54+
* Patches may be named `patch/X.Y.Z` and will be merged into `dev` and then `master` when appropriate.
5455

5556
## Releases
5657

5758
| Scenario Version* | Version Name | Factorio Version** |
5859
|---|---|---|
60+
| [v5.10][s5.10] | Data Store Rewrite | [v0.17.71][f0.17.71] |
5961
| [v5.9][s5.9] | Control Modules and Documentation | [v0.17.63][f0.17.63] |
6062
| [v5.8][s5.8] | Home and Chat Bot | [v0.17.47][f0.17.49] |
6163
| [v5.7][s5.7] | Warp System | [v0.17.47][f0.17.47] |
@@ -76,6 +78,7 @@ All are welcome to make pull requests and issues for this scenario, if you are i
7678

7779
\*\* Factorio versions show the version they were made for, often the minimum requirement.
7880

81+
[s5.10]: https://github.com/explosivegaming/scenario/releases/tag/5.10.0
7982
[s5.9]: https://github.com/explosivegaming/scenario/releases/tag/5.9.0
8083
[s5.8]: https://github.com/explosivegaming/scenario/releases/tag/5.8.0
8184
[s5.7]: https://github.com/explosivegaming/scenario/releases/tag/5.7.0
@@ -92,6 +95,7 @@ All are welcome to make pull requests and issues for this scenario, if you are i
9295
[s1.0]: https://github.com/explosivegaming/scenario/releases/tag/v1.0
9396
[s0.1]: https://github.com/explosivegaming/scenario/releases/tag/v0.1
9497

98+
[f0.17.71]: https://wiki.factorio.com/Version_history/0.17.0#0.17.71
9599
[f0.17.63]: https://wiki.factorio.com/Version_history/0.17.0#0.17.63
96100
[f0.17.49]: https://wiki.factorio.com/Version_history/0.17.0#0.17.49
97101
[f0.17.47]: https://wiki.factorio.com/Version_history/0.17.0#0.17.47
@@ -111,6 +115,7 @@ All are welcome to make pull requests and issues for this scenario, if you are i
111115

112116
The Explosive Gaming codebase is licensed under the [GNU General Public License v3.0](LICENSE)
113117

118+
[docs]: https://explosivegaming.github.io/scenario/
114119
[issues]: https://github.com/explosivegaming/scenario/issues/new/choose
115120
[website]: https://explosivegaming.nl
116121
[discord]: https://discord.explosivegaming.nl

config/action_buttons.lua

Lines changed: 108 additions & 101 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,12 @@ local Jail = require 'modules.control.jail' --- @dep modules.control.jail
1515
local Colors = require 'resources.color_presets' --- @dep resources.color_presets
1616
local format_chat_player_name = ext_require('expcore.common','format_chat_player_name') --- @dep expcore.common
1717

18-
local action_player_store = 'gui.left.player-list.action-player'
19-
local action_name_store = 'gui.left.player-list.action-name'
18+
local selected_player_store = ''
19+
local selected_action_store = ''
20+
local function set_store_uids(player,action)
21+
selected_player_store = player
22+
selected_action_store = action
23+
end
2024

2125
-- common style used by all action buttons
2226
local function tool_button_style(style)
@@ -26,20 +30,20 @@ local function tool_button_style(style)
2630
end
2731

2832
-- auth that will only allow when on player's of lower roles
29-
local function auth_lower_role(player,action_player_name)
33+
local function auth_lower_role(player,selected_player_name)
3034
local player_highest = Roles.get_player_highest_role(player)
31-
local action_player_highest = Roles.get_player_highest_role(action_player_name)
35+
local action_player_highest = Roles.get_player_highest_role(selected_player_name)
3236
if player_highest.index < action_player_highest.index then
3337
return true
3438
end
3539
end
3640

3741
-- gets the action player and a coloured name for the action to be used on
3842
local function get_action_player_name(player)
39-
local action_player_name = Store.get(action_player_store,player.name)
40-
local action_player = Game.get_player_from_any(action_player_name)
41-
local action_player_name_color = format_chat_player_name(action_player)
42-
return action_player,action_player_name_color
43+
local selected_player_name = Store.get(selected_player_store,player)
44+
local selected_player = Game.get_player_from_any(selected_player_name)
45+
local selected_player_color = format_chat_player_name(selected_player)
46+
return selected_player_name, selected_player_color
4347
end
4448

4549
-- telports one player to another
@@ -60,12 +64,12 @@ Gui.new_button()
6064
:set_tooltip{'player-list.goto-player'}
6165
:set_style('tool_button',tool_button_style)
6266
:on_click(function(player,element)
63-
local action_player_name = get_action_player_name(player)
64-
local action_player = Game.get_player_from_any(action_player_name)
65-
if not player.character or not action_player.character then
67+
local selected_player_name = get_action_player_name(player)
68+
local selected_player = Game.get_player_from_any(selected_player_name)
69+
if not player.character or not selected_player.character then
6670
player.print({'expcore-commands.reject-player-alive'},Colors.orange_red)
6771
else
68-
teleport(player,action_player)
72+
teleport(player,selected_player)
6973
end
7074
end)
7175

@@ -77,12 +81,12 @@ Gui.new_button()
7781
:set_tooltip{'player-list.bring-player'}
7882
:set_style('tool_button',tool_button_style)
7983
:on_click(function(player,element)
80-
local action_player_name = get_action_player_name(player)
81-
local action_player = Game.get_player_from_any(action_player_name)
82-
if not player.character or not action_player.character then
84+
local selected_player_name = get_action_player_name(player)
85+
local selected_player = Game.get_player_from_any(selected_player_name)
86+
if not player.character or not selected_player.character then
8387
player.print({'expcore-commands.reject-player-alive'},Colors.orange_red)
8488
else
85-
teleport(action_player,player)
89+
teleport(selected_player,player)
8690
end
8791
end)
8892

@@ -94,10 +98,10 @@ Gui.new_button()
9498
:set_tooltip{'player-list.kill-player'}
9599
:set_style('tool_button',tool_button_style)
96100
:on_click(function(player,element)
97-
local action_player_name = get_action_player_name(player)
98-
local action_player = Game.get_player_from_any(action_player_name)
99-
if action_player.character then
100-
action_player.character.die()
101+
local selected_player_name = get_action_player_name(player)
102+
local selected_player = Game.get_player_from_any(selected_player_name)
103+
if selected_player.character then
104+
selected_player.character.die()
101105
else
102106
player.print({'expcom-kill.already-dead'},Colors.orange_red)
103107
end
@@ -111,20 +115,20 @@ Gui.new_button()
111115
:set_tooltip{'player-list.report-player'}
112116
:set_style('tool_button',tool_button_style)
113117
:on_click(function(player,element)
114-
local action_player_name = get_action_player_name(player)
115-
if Reports.is_reported(action_player_name,player.name) then
118+
local selected_player_name = get_action_player_name(player)
119+
if Reports.is_reported(selected_player_name,player.name) then
116120
player.print({'expcom-report.already-reported'},Colors.orange_red)
117121
else
118-
Store.set(action_name_store,player.name,'command/report')
122+
Store.set(selected_action_store,player,'command/report')
119123
end
120124
end)
121125

122126
local function report_player_callback(player,reason)
123-
local action_player_name,action_player_name_color = get_action_player_name(player)
127+
local selected_player_name, selected_player_color = get_action_player_name(player)
124128
local by_player_name_color = format_chat_player_name(player)
125-
game.print{'expcom-report.non-admin',action_player_name_color,reason}
126-
Roles.print_to_roles_higher('Trainee',{'expcom-report.admin',action_player_name_color,by_player_name_color,reason})
127-
Reports.report_player(action_player_name,player.name,reason)
129+
game.print{'expcom-report.non-admin', selected_player_color,reason}
130+
Roles.print_to_roles_higher('Trainee',{'expcom-report.admin', selected_player_color,by_player_name_color,reason})
131+
Reports.report_player(selected_player_name,player.name,reason)
128132
end
129133

130134
--- Gives the action player a warning, requires a reason
@@ -135,14 +139,14 @@ Gui.new_button()
135139
:set_tooltip{'player-list.warn-player'}
136140
:set_style('tool_button',tool_button_style)
137141
:on_click(function(player,element)
138-
Store.set(action_name_store,player.name,'command/give-warning')
142+
Store.set(selected_action_store,player,'command/give-warning')
139143
end)
140144

141145
local function warn_player_callback(player,reason)
142-
local action_player_name,action_player_name_color = get_action_player_name(player)
146+
local selected_player_name, selected_player_color = get_action_player_name(player)
143147
local by_player_name_color = format_chat_player_name(player)
144-
game.print{'expcom-warnings.received',action_player_name_color,by_player_name_color,reason}
145-
Warnings.add_warning(action_player_name,player.name,reason)
148+
game.print{'expcom-warnings.received', selected_player_color,by_player_name_color,reason}
149+
Warnings.add_warning(selected_player_name,player.name,reason)
146150
end
147151

148152
--- Jails the action player, requires a reason
@@ -153,19 +157,19 @@ Gui.new_button()
153157
:set_tooltip{'player-list.jail-player'}
154158
:set_style('tool_button',tool_button_style)
155159
:on_click(function(player,element)
156-
local action_player_name,action_player_name_color = get_action_player_name(player)
157-
if Jail.is_jailed(action_player_name) then
158-
player.print({'expcom-jail.already-jailed',action_player_name_color},Colors.orange_red)
160+
local selected_player_name, selected_player_color = get_action_player_name(player)
161+
if Jail.is_jailed(selected_player_name) then
162+
player.print({'expcom-jail.already-jailed', selected_player_color},Colors.orange_red)
159163
else
160-
Store.set(action_name_store,player.name,'command/jail')
164+
Store.set(selected_action_store,player,'command/jail')
161165
end
162166
end)
163167

164168
local function jail_player_callback(player,reason)
165-
local action_player_name,action_player_name_color = get_action_player_name(player)
169+
local selected_player_name, selected_player_color = get_action_player_name(player)
166170
local by_player_name_color = format_chat_player_name(player)
167-
game.print{'expcom-jail.give',action_player_name_color,by_player_name_color,reason}
168-
Jail.jail_player(action_player_name,player.name,reason)
171+
game.print{'expcom-jail.give', selected_player_color,by_player_name_color,reason}
172+
Jail.jail_player(selected_player_name,player.name,reason)
169173
end
170174

171175
--- Temp bans the action player, requires a reason
@@ -176,19 +180,19 @@ Gui.new_button()
176180
:set_tooltip{'player-list.temp-ban-player'}
177181
:set_style('tool_button',tool_button_style)
178182
:on_click(function(player,element)
179-
local action_player_name,action_player_name_color = get_action_player_name(player)
180-
if Jail.is_jailed(action_player_name) then
181-
player.print({'expcom-jail.already-banned',action_player_name_color},Colors.orange_red)
183+
local selected_player_name, selected_player_color = get_action_player_name(player)
184+
if Jail.is_jailed(selected_player_name) then
185+
player.print({'expcom-jail.already-banned', selected_player_color},Colors.orange_red)
182186
else
183-
Store.set(action_name_store,player.name,'command/temp-ban')
187+
Store.set(selected_action_store,player,'command/temp-ban')
184188
end
185189
end)
186190

187191
local function temp_ban_player_callback(player,reason)
188-
local action_player,action_player_name_color = get_action_player_name(player)
192+
local selected_player, selected_player_color = get_action_player_name(player)
189193
local by_player_name_color = format_chat_player_name(player)
190-
game.print{'expcom-jail.temp-ban',action_player_name_color,by_player_name_color,reason}
191-
Jail.temp_ban_player(action_player,player.name,reason)
194+
game.print{'expcom-jail.temp-ban', selected_player_color,by_player_name_color,reason}
195+
Jail.temp_ban_player(selected_player,player.name,reason)
192196
end
193197

194198
--- Kicks the action player, requires a reason
@@ -199,12 +203,12 @@ Gui.new_button()
199203
:set_tooltip{'player-list.kick-player'}
200204
:set_style('tool_button',tool_button_style)
201205
:on_click(function(player,element)
202-
Store.set(action_name_store,player.name,'command/kick')
206+
Store.set(selected_action_store,player,'command/kick')
203207
end)
204208

205209
local function kick_player_callback(player,reason)
206-
local action_player = get_action_player_name(player)
207-
game.kick_player(action_player,reason)
210+
local selected_player = get_action_player_name(player)
211+
game.kick_player(selected_player,reason)
208212
end
209213

210214
--- Bans the action player, requires a reason
@@ -215,64 +219,67 @@ Gui.new_button()
215219
:set_tooltip{'player-list.ban-player'}
216220
:set_style('tool_button',tool_button_style)
217221
:on_click(function(player,element)
218-
Store.set(action_name_store,player.name,'command/ban')
222+
Store.set(selected_action_store,player,'command/ban')
219223
end)
220224

221225
local function ban_player_callback(player,reason)
222-
local action_player = get_action_player_name(player)
223-
game.ban_player(action_player,reason)
226+
local selected_player = get_action_player_name(player)
227+
game.ban_player(selected_player,reason)
224228
end
225229

226230
return {
227-
['command/teleport'] = {
228-
auth=function(player,action_player)
229-
return player.name ~= action_player.name
230-
end, -- cant teleport to your self
231-
goto_player,
232-
bring_player
233-
},
234-
['command/kill'] = {
235-
auth=function(player,action_player)
236-
if player.name == action_player.name then
237-
return true
238-
elseif Roles.player_allowed(player,'command/kill/always') then
239-
return auth_lower_role(player,action_player)
240-
end
241-
end, -- player must be lower role, or your self
242-
kill_player
243-
},
244-
['command/report'] = {
245-
auth=function(player,action_player)
246-
if not Roles.player_allowed(player,'command/give-warning') then
247-
return not Roles.player_has_flag(action_player,'report-immune')
248-
end
249-
end, -- can report any player that isn't immune and you aren't able to give warnings
250-
reason_callback=report_player_callback,
251-
report_player
252-
},
253-
['command/give-warning'] = {
254-
auth=auth_lower_role, -- warn a lower user, replaces report
255-
reason_callback=warn_player_callback,
256-
warn_player
257-
},
258-
['command/jail'] = {
259-
auth=auth_lower_role,
260-
reason_callback=jail_player_callback,
261-
jail_player
262-
},
263-
['command/temp-ban'] = {
264-
auth=auth_lower_role,
265-
reason_callback=temp_ban_player_callback,
266-
temp_ban_player
267-
},
268-
['command/kick'] = {
269-
auth=auth_lower_role,
270-
reason_callback=kick_player_callback,
271-
kick_player
272-
},
273-
['command/ban'] = {
274-
auth=auth_lower_role,
275-
reason_callback=ban_player_callback,
276-
ban_player
231+
set_store_uids = set_store_uids,
232+
buttons = {
233+
['command/teleport'] = {
234+
auth=function(player,selected_player)
235+
return player.name ~= selected_player.name
236+
end, -- cant teleport to your self
237+
goto_player,
238+
bring_player
239+
},
240+
['command/kill'] = {
241+
auth=function(player,selected_player)
242+
if player.name == selected_player.name then
243+
return true
244+
elseif Roles.player_allowed(player,'command/kill/always') then
245+
return auth_lower_role(player,selected_player)
246+
end
247+
end, -- player must be lower role, or your self
248+
kill_player
249+
},
250+
['command/report'] = {
251+
auth=function(player,selected_player)
252+
if not Roles.player_allowed(player,'command/give-warning') then
253+
return not Roles.player_has_flag(selected_player,'report-immune')
254+
end
255+
end, -- can report any player that isn't immune and you aren't able to give warnings
256+
reason_callback=report_player_callback,
257+
report_player
258+
},
259+
['command/give-warning'] = {
260+
auth=auth_lower_role, -- warn a lower user, replaces report
261+
reason_callback=warn_player_callback,
262+
warn_player
263+
},
264+
['command/jail'] = {
265+
auth=auth_lower_role,
266+
reason_callback=jail_player_callback,
267+
jail_player
268+
},
269+
['command/temp-ban'] = {
270+
auth=auth_lower_role,
271+
reason_callback=temp_ban_player_callback,
272+
temp_ban_player
273+
},
274+
['command/kick'] = {
275+
auth=auth_lower_role,
276+
reason_callback=kick_player_callback,
277+
kick_player
278+
},
279+
['command/ban'] = {
280+
auth=auth_lower_role,
281+
reason_callback=ban_player_callback,
282+
ban_player
283+
}
277284
}
278285
}

config/advanced_start.lua

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -79,8 +79,8 @@ return {
7979
['electronic-circuit']=scale_amount_made(1000,0,6),
8080
['iron-gear-wheel']=scale_amount_made(1000,0,6),
8181
-- Starting Items
82-
['burner-mining-drill']=cutoff_time(5*minutes,4,0),
83-
['stone-furnace']=cutoff_time(5*minutes,4,0),
82+
['burner-mining-drill']=cutoff_time(10*minutes,4,0),
83+
['stone-furnace']=cutoff_time(10*minutes,4,0),
8484
-- Armor
8585
['light-armor']=cutoff_amount_made_unless(5,0,1,'heavy-armor',5),
8686
['heavy-armor']=cutoff_amount_made(5,0,1),
@@ -91,4 +91,4 @@ return {
9191
['firearm-magazine']=cutoff_amount_made_unless(100,10,0,'piercing-rounds-magazine',100),
9292
['piercing-rounds-magazine']=cutoff_amount_made(100,0,10),
9393
}
94-
}
94+
}

0 commit comments

Comments
 (0)