MCPcopy Create free account
hub / github.com/GoMudEngine/GoMud / handleSet

Method handleSet

modules/zombiemode/command.zombie.go:190–245  ·  view source on GitHub ↗
(field string, valueArgs []string, user *users.UserRecord, cfg ZombieConfig)

Source from the content-addressed store, hash-verified

188}
189
190func (m *ZombieModule) handleSet(field string, valueArgs []string, user *users.UserRecord, cfg ZombieConfig) (bool, error) {
191 value := strings.Join(valueArgs, ` `)
192
193 switch field {
194 case `combat`:
195 name := value
196 if name == `all` {
197 name = `*`
198 }
199 if !containsString(cfg.CombatTargets, name) {
200 cfg.CombatTargets = append(cfg.CombatTargets, name)
201 }
202 m.configs[user.UserId] = cfg
203 user.SendText(fmt.Sprintf(`Combat target <ansi fg="yellow">%s</ansi> added.`, name))
204
205 case `roam`:
206 radius, err := strconv.Atoi(value)
207 if err != nil || radius < 0 {
208 user.SendText(`Roam radius must be a non-negative integer.`)
209 return true, nil
210 }
211 if maxRoam, ok := m.plug.Config.Get(`MaximumRoam`).(int); ok && maxRoam > 0 && radius > maxRoam {
212 user.SendText(fmt.Sprintf(`Roam radius cannot exceed <ansi fg="yellow">%d</ansi> on this server.`, maxRoam))
213 return true, nil
214 }
215 cfg.RoamRadius = radius
216 m.configs[user.UserId] = cfg
217 user.SendText(fmt.Sprintf(`Roam radius set to <ansi fg="yellow">%d</ansi>.`, radius))
218
219 case `rest`:
220 pct, err := strconv.Atoi(value)
221 if err != nil || pct < 1 || pct > 99 {
222 user.SendText(`Rest threshold must be an integer between 1 and 99.`)
223 return true, nil
224 }
225 cfg.RestThreshold = pct
226 m.configs[user.UserId] = cfg
227 user.SendText(fmt.Sprintf(`Rest threshold set to <ansi fg="yellow">%d%%</ansi>.`, pct))
228
229 case `loot`:
230 name := value
231 if name == `all` {
232 name = `*`
233 }
234 if !containsString(cfg.LootTargets, name) {
235 cfg.LootTargets = append(cfg.LootTargets, name)
236 }
237 m.configs[user.UserId] = cfg
238 user.SendText(fmt.Sprintf(`Loot target <ansi fg="yellow">%s</ansi> added.`, name))
239
240 default:
241 user.SendText(`Unknown setting. Valid settings: combat, roam, rest, loot`)
242 }
243
244 return true, nil
245}
246
247func (m *ZombieModule) handleUnset(field string, valueArgs []string, user *users.UserRecord, cfg ZombieConfig) (bool, error) {

Callers 1

zombieCommandMethod · 0.95

Calls 3

containsStringFunction · 0.70
SendTextMethod · 0.45
GetMethod · 0.45

Tested by

no test coverage detected