Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add option to enable PvP by default #3

Merged
merged 4 commits into from
May 19, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 7 additions & 3 deletions chatcommands.lua
Original file line number Diff line number Diff line change
Expand Up @@ -493,7 +493,7 @@ minetest.register_chatcommand("area_pvp", {
S("Area @1 does not exist or is not owned by you.", id)
end

local canPvP = areas.areas[id].canPvP
local canPvP = areas:canPvP(id)

if not canPvP then
local players = {}
Expand All @@ -513,8 +513,12 @@ minetest.register_chatcommand("area_pvp", {
end
end

-- Save false as nil to avoid inflating the DB.
areas.areas[id].canPvP = not canPvP or nil
if areas.config.pvp_by_default == not canPvP then
-- Save the default value as nil to avoid inflating the DB.
areas.areas[id].canPvP = nil
else
areas.areas[id].canPvP = not canPvP
end
areas:save()
return true, S("PvP is @1 in area @2.",
not canPvP and S("enabled") or S("disabled"), id)
Expand Down
11 changes: 9 additions & 2 deletions hud.lua
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,15 @@ local function createAreaString(area, id)
tinsert(parts, " [" .. S("Open") .. "]")
end

if area.canPvP and not creative_mode then
tinsert(parts, " [" .. S("PvP enabled") .. "]")
if not creative_mode then
if areas.config.pvp_by_default then
-- Compare with false as nil = default
if area.canPvP == nil or area.canPvP == false then
tinsert(parts, " [" .. S("PvP disabled") .. "]")
end
elseif area.canPvP then
tinsert(parts, " [" .. S("PvP enabled") .. "]")
end
end

return tconcat(parts):trim()
Expand Down
8 changes: 5 additions & 3 deletions interact.lua
Original file line number Diff line number Diff line change
Expand Up @@ -38,14 +38,16 @@ minetest.register_on_protection_violation(function(pos, name)
end)

local function can_pvp_at(pos)
local default = areas.config.pvp_by_default
for id in pairs(areas:getAreasAtPos(pos)) do
-- This uses areas:canPvP instead of area.canPvP in case areas:canPvP
-- is overridden
if areas:canPvP(id) then
return true
local value = areas:canPvP(id)
if value ~= default then
return value
end
end
return false
return default
end

minetest.register_on_punchplayer(function(player, hitter, time_from_last_punch)
Expand Down
7 changes: 4 additions & 3 deletions internal.lua
Original file line number Diff line number Diff line change
Expand Up @@ -168,10 +168,11 @@ end
function areas:canPvP(id)
local area = self.areas[id]
if not area then
return true
return areas.config.pvp_by_default
elseif area.canPvP == nil then
return false
end
-- canPvP is nil when false
return area.canPvP or false
return area.canPvP
end

-- Checks if a area between two points is entirely contained by another area.
Expand Down
1 change: 1 addition & 0 deletions locale/areas.ar.tr
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,7 @@ disabled=عاجز
Areas:=المناطق:
Open=يفتح
PvP enabled=تمكين حماية الأصناف النباتية
PvP disabled=تم تعطيل حماية الأصناف النباتية

### interact.lua ###

Expand Down
1 change: 1 addition & 0 deletions locale/areas.bg.tr
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,7 @@ disabled=изключени
Areas:=Области:
Open=Отворете
PvP enabled=Разрешен PvP
PvP disabled=PvP е изключен

### interact.lua ###

Expand Down
1 change: 1 addition & 0 deletions locale/areas.cs.tr
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,7 @@ disabled=zakázané
Areas:=Oblasti:
Open=Otevřít
PvP enabled=PvP povoleno
PvP disabled=PvP zakázán

### interact.lua ###

Expand Down
1 change: 1 addition & 0 deletions locale/areas.da.tr
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,7 @@ disabled=deaktiveret
Areas:=Områder:
Open=Åbn
PvP enabled=PvP aktiveret
PvP disabled=PvP deaktiveret

### interact.lua ###

Expand Down
1 change: 1 addition & 0 deletions locale/areas.de.tr
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,7 @@ disabled=Behinderte
Areas:=Bereiche:
Open=Offen
PvP enabled=PvP aktiviert
PvP disabled=PvP deaktiviert

### interact.lua ###

Expand Down
1 change: 1 addition & 0 deletions locale/areas.el.tr
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,7 @@ disabled=disabled
Areas:=Περιοχές:
Open=Ανοίξτε το
PvP enabled=Ενεργό PvP
PvP disabled=PvP απενεργοποιημένο

### interact.lua ###

Expand Down
1 change: 1 addition & 0 deletions locale/areas.es.tr
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,7 @@ disabled=desactivado
Areas:=Áreas:
Open=Abierto
PvP enabled=PvP habilitado
PvP disabled=PvP desactivado

### interact.lua ###

Expand Down
1 change: 1 addition & 0 deletions locale/areas.et.tr
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,7 @@ disabled=puudega
Areas:=Valdkonnad:
Open=Avatud
PvP enabled=PvP lubatud
PvP disabled=PvP keelatud

### interact.lua ###

Expand Down
1 change: 1 addition & 0 deletions locale/areas.fi.tr
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,7 @@ disabled=disabled
Areas:=Alueet:
Open=Avaa
PvP enabled=PvP käytössä
PvP disabled=PvP poistettu käytöstä

### interact.lua ###

Expand Down
1 change: 1 addition & 0 deletions locale/areas.fr.tr
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,7 @@ disabled=désactivé
Areas:=Zones :
Open=Ouvrir
PvP enabled=JcJ activé
PvP disabled=PvP désactivé

### interact.lua ###

Expand Down
1 change: 1 addition & 0 deletions locale/areas.hu.tr
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,7 @@ disabled=disabled
Areas:=Területek:
Open=Nyissa meg a címet.
PvP enabled=PvP engedélyezve
PvP disabled=PvP letiltva

### interact.lua ###

Expand Down
1 change: 1 addition & 0 deletions locale/areas.id.tr
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,7 @@ disabled=dinonaktifkan
Areas:=Area:
Open=Terbuka
PvP enabled=PvP diaktifkan
PvP disabled=PvP dinonaktifkan

### interact.lua ###

Expand Down
1 change: 1 addition & 0 deletions locale/areas.it.tr
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,7 @@ disabled=disabilitato
Areas:=Aree:
Open=Aperto
PvP enabled=PvP abilitato
PvP disabled=PvP disattivato

### interact.lua ###

Expand Down
1 change: 1 addition & 0 deletions locale/areas.ja.tr
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,7 @@ disabled=使用禁止
Areas:=エリア
Open=オープン
PvP enabled=PvP対応
PvP disabled=PvP無効

### interact.lua ###

Expand Down
1 change: 1 addition & 0 deletions locale/areas.lt.tr
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,7 @@ disabled=neįgalieji
Areas:=Sritys:
Open=Atviras
PvP enabled=Įjungtas PvP
PvP disabled=PvP išjungtas

### interact.lua ###

Expand Down
1 change: 1 addition & 0 deletions locale/areas.lv.tr
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,7 @@ disabled=invalīdiem
Areas:=Jomas:
Open=Atvērt
PvP enabled=Ieslēgts PvP
PvP disabled=PvP atspējots

### interact.lua ###

Expand Down
1 change: 1 addition & 0 deletions locale/areas.nb.tr
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,7 @@ disabled=deaktivert
Areas:=Områder:
Open=Åpent
PvP enabled=PvP aktivert
PvP disabled=PvP deaktivert

### interact.lua ###

Expand Down
1 change: 1 addition & 0 deletions locale/areas.nl.tr
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,7 @@ disabled=uitgeschakeld
Areas:=Gebieden:
Open=Open
PvP enabled=PvP ingeschakeld
PvP disabled=PvP uitgeschakeld

### interact.lua ###

Expand Down
1 change: 1 addition & 0 deletions locale/areas.pl.tr
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,7 @@ disabled=wyłączony
Areas:=Obszary:
Open=Otwórz
PvP enabled=Włączony PvP
PvP disabled=PvP wyłączone

### interact.lua ###

Expand Down
1 change: 1 addition & 0 deletions locale/areas.pt.tr
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,7 @@ disabled=deficientes
Areas:=Áreas:
Open=Aberto
PvP enabled=PvP activado
PvP disabled=PvP desativado

### interact.lua ###

Expand Down
1 change: 1 addition & 0 deletions locale/areas.ro.tr
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,7 @@ disabled=dezactivat
Areas:=Domenii:
Open=Deschideți
PvP enabled=PvP activat
PvP disabled=PvP dezactivat

### interact.lua ###

Expand Down
1 change: 1 addition & 0 deletions locale/areas.ru.tr
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,7 @@ disabled=выключен
Areas:=Зоны:
Open=Открыта
PvP enabled=PvP включен
PvP disabled=PvP отключен

### interact.lua ###

Expand Down
1 change: 1 addition & 0 deletions locale/areas.sk.tr
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,7 @@ disabled=vypnuté
Areas:=Oblasti:
Open=Otvorte stránku
PvP enabled=PvP povolený
PvP disabled=PvP vypnuté

### interact.lua ###

Expand Down
1 change: 1 addition & 0 deletions locale/areas.sv.tr
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,7 @@ disabled=inaktiverad
Areas:=Områden:
Open=Öppna
PvP enabled=PvP aktiverat
PvP disabled=PvP inaktiverat

### interact.lua ###

Expand Down
1 change: 1 addition & 0 deletions locale/areas.tr.tr
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,7 @@ disabled=engelli
Areas:=Alanlar:
Open=Açık
PvP enabled=PvP etkin
PvP disabled=PvP devre dışı

### interact.lua ###

Expand Down
1 change: 1 addition & 0 deletions locale/areas.uk.tr
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,7 @@ disabled=вимкнено
Areas:=Зони:
Open=Відкрита
PvP enabled=PvP увімкнено
PvP disabled=PvP розблоковано

### interact.lua ###

Expand Down
1 change: 1 addition & 0 deletions locale/areas.vi.tr
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,7 @@ disabled=tắt
Areas:=Khu vực:
Open=Mở
PvP enabled=PvP trên
PvP disabled=PvP bị vô hiệu hóa

### interact.lua ###

Expand Down
1 change: 1 addition & 0 deletions settings.lua
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ end
--------------

setting("string", "filename", world_path.."/areas.dat")
setting("boolean", "pvp_by_default", false)

-- Allow players with a privilege create their own areas
-- within the maximum size and number.
Expand Down
3 changes: 3 additions & 0 deletions settingtypes.txt
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,9 @@
# Static paths do not work well with settings
#areas.filename (Configuration file path) string (world_path)/areas.dat

# Turn on PvP everywhere
areas.pvp_by_default (PvP by default) bool false

# Allow players with a privilege create their own areas using /protect
# within the specified size and amount limits.
areas.self_protection (Self protection) bool false
Expand Down
Loading