forked from mtcontrib/3d_armor
Merge remote-tracking branch 'upstream/master'
This commit is contained in:
commit
357cc3aada
|
@ -352,7 +352,7 @@ armor.update_player_visuals = function(self, player)
|
|||
end
|
||||
local name = player:get_player_name()
|
||||
if self.textures[name] then
|
||||
default.player_set_textures(player, {
|
||||
player_api.set_textures(player, {
|
||||
self.textures[name].skin,
|
||||
self.textures[name].armor,
|
||||
self.textures[name].wielditem,
|
||||
|
@ -373,7 +373,7 @@ armor.set_player_armor = function(self, player)
|
|||
local state = 0
|
||||
local count = 0
|
||||
local preview = armor:get_preview(name)
|
||||
local texture = "3d_armor_trans.png"
|
||||
local texture = "blank.png"
|
||||
local physics = {}
|
||||
local attributes = {}
|
||||
local levels = {}
|
||||
|
@ -415,7 +415,7 @@ armor.set_player_armor = function(self, player)
|
|||
end
|
||||
-- DEPRECATED, use armor_groups instead
|
||||
if def.groups["armor_radiation"] and levels["radiation"] then
|
||||
levels["radiation"] = def.groups["armor_radiation"]
|
||||
levels["radiation"] = levels["radiation"] + def.groups["armor_radiation"]
|
||||
end
|
||||
end
|
||||
local item = stack:get_name()
|
||||
|
@ -719,11 +719,14 @@ armor.unequip = function(self, player, armor_element)
|
|||
if self:get_element(stack:get_name()) == armor_element then
|
||||
armor_inv:set_stack("armor", i, "")
|
||||
minetest.after(0, function()
|
||||
local inv = player:get_inventory()
|
||||
local pplayer = minetest.get_player_by_name(name)
|
||||
if pplayer then -- player is still online
|
||||
local inv = pplayer:get_inventory()
|
||||
if inv:room_for_item("main", stack) then
|
||||
inv:add_item("main", stack)
|
||||
else
|
||||
minetest.add_item(player:get_pos(), stack)
|
||||
minetest.add_item(pplayer:get_pos(), stack)
|
||||
end
|
||||
end
|
||||
end)
|
||||
self:run_callbacks("on_unequip", player, i, stack)
|
||||
|
|
|
@ -268,8 +268,8 @@ local function init_player_armor(initplayer)
|
|||
local skin = armor:get_player_skin(name)
|
||||
armor.textures[name] = {
|
||||
skin = skin,
|
||||
armor = "3d_armor_trans.png",
|
||||
wielditem = "3d_armor_trans.png",
|
||||
armor = "blank.png",
|
||||
wielditem = "blank.png",
|
||||
preview = armor.default_skin.."_preview.png",
|
||||
}
|
||||
local texture_path = minetest.get_modpath("player_textures")
|
||||
|
@ -291,8 +291,8 @@ player_api.register_model("3d_armor_character.b3d", {
|
|||
animation_speed = 30,
|
||||
textures = {
|
||||
armor.default_skin..".png",
|
||||
"3d_armor_trans.png",
|
||||
"3d_armor_trans.png",
|
||||
"blank.png",
|
||||
"blank.png",
|
||||
},
|
||||
animations = {
|
||||
stand = {x=0, y=79},
|
||||
|
@ -322,7 +322,7 @@ minetest.register_on_player_receive_fields(function(player, formname, fields)
|
|||
end)
|
||||
|
||||
minetest.register_on_joinplayer(function(player)
|
||||
default.player_set_model(player, "3d_armor_character.b3d")
|
||||
player_api.set_model(player, "3d_armor_character.b3d")
|
||||
init_player_armor(player)
|
||||
end)
|
||||
|
||||
|
@ -395,10 +395,14 @@ if armor.config.punch_damage == true then
|
|||
minetest.register_on_punchplayer(function(player, hitter,
|
||||
time_from_last_punch, tool_capabilities)
|
||||
local name = player:get_player_name()
|
||||
if hitter then
|
||||
local hit_ip = hitter:is_player()
|
||||
if name and hit_ip and minetest.is_protected(player:get_pos(), "") then
|
||||
return
|
||||
elseif name then
|
||||
end
|
||||
end
|
||||
|
||||
if name then
|
||||
armor:punch(player, hitter, time_from_last_punch, tool_capabilities)
|
||||
last_punch_time[name] = minetest.get_gametime()
|
||||
end
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
# textdomain: 3d_armor
|
||||
Radiation=Radiado
|
||||
Level=Nivelo
|
||||
Heal=Sanigi
|
||||
Heal=Blokŝanco
|
||||
Fire=Fajro
|
||||
Your @1 is almost broken!=Via @1 estas preskaŭ rompita!
|
||||
Your @1 got destroyed!=Via @1 detruiĝis!
|
||||
|
|
Binary file not shown.
Before Width: | Height: | Size: 273 B |
|
@ -1,3 +1,3 @@
|
|||
# textdomain: 3d_armor_ip
|
||||
Back=Dorso
|
||||
Armor=Kiraso
|
||||
Armor=Armaĵo
|
||||
|
|
|
@ -1,2 +1,2 @@
|
|||
# textdomain: 3d_armor_sfinv
|
||||
Armor=Kiraso
|
||||
Armor=Armaĵoj
|
||||
|
|
|
@ -62,7 +62,7 @@ local function update_entity(pos)
|
|||
object = minetest.add_entity(pos, "3d_armor_stand:armor_entity")
|
||||
end
|
||||
if object then
|
||||
local texture = "3d_armor_trans.png"
|
||||
local texture = "blank.png"
|
||||
local textures = {}
|
||||
local meta = minetest.get_meta(pos)
|
||||
local inv = meta:get_inventory()
|
||||
|
@ -144,8 +144,9 @@ minetest.register_node("3d_armor_stand:top", {
|
|||
buildable_to = false,
|
||||
drop = "",
|
||||
groups = {not_in_creative_inventory = 1},
|
||||
is_ground_content = false,
|
||||
on_blast = function() end,
|
||||
tiles = {"3d_armor_trans.png"},
|
||||
tiles = {"blank.png"},
|
||||
})
|
||||
|
||||
minetest.register_node("3d_armor_stand:armor_stand", {
|
||||
|
@ -165,6 +166,7 @@ minetest.register_node("3d_armor_stand:armor_stand", {
|
|||
},
|
||||
},
|
||||
groups = {choppy=2, oddly_breakable_by_hand=2},
|
||||
is_ground_content = false,
|
||||
sounds = default.node_sound_wood_defaults(),
|
||||
on_construct = function(pos)
|
||||
local meta = minetest.get_meta(pos)
|
||||
|
@ -234,6 +236,7 @@ minetest.register_node("3d_armor_stand:locked_armor_stand", {
|
|||
},
|
||||
},
|
||||
groups = {choppy=2, oddly_breakable_by_hand=2},
|
||||
is_ground_content = false,
|
||||
sounds = default.node_sound_wood_defaults(),
|
||||
on_construct = function(pos)
|
||||
local meta = minetest.get_meta(pos)
|
||||
|
@ -316,6 +319,7 @@ minetest.register_node("3d_armor_stand:shared_armor_stand", {
|
|||
},
|
||||
},
|
||||
groups = {choppy=2, oddly_breakable_by_hand=2},
|
||||
is_ground_content = false,
|
||||
sounds = default.node_sound_wood_defaults(),
|
||||
on_construct = function(pos)
|
||||
local meta = minetest.get_meta(pos)
|
||||
|
@ -384,7 +388,7 @@ minetest.register_entity("3d_armor_stand:armor_entity", {
|
|||
mesh = "3d_armor_entity.obj",
|
||||
visual_size = {x=1, y=1},
|
||||
collisionbox = {0,0,0,0,0,0},
|
||||
textures = {"3d_armor_trans.png"},
|
||||
textures = {"blank.png"},
|
||||
},
|
||||
_pos = nil,
|
||||
on_activate = function(self)
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# textdomain: 3d_armor_stand
|
||||
Armor Stand Top=Kirasstando Supro
|
||||
Armor Stand=Kirasstando
|
||||
Locked Armor Stand=Ŝlosita Kirasstando
|
||||
Armor Stand (owned by @1)=Kirasstando (posedata de @1)
|
||||
Armor Stand Top=Armaĵtenila Supro
|
||||
Armor Stand=Armaĵtenilo
|
||||
Locked Armor Stand=Ŝlosita Armaĵtenilo
|
||||
Armor Stand (owned by @1)=Ŝlosita Armaĵtenilo (posedata de @1)
|
||||
|
|
6
3d_armor_stand/locale/3d_armor_stand.es.tr
Normal file
6
3d_armor_stand/locale/3d_armor_stand.es.tr
Normal file
|
@ -0,0 +1,6 @@
|
|||
# textdomain: 3d_armor_stand
|
||||
Armor Stand Top=
|
||||
Armor Stand=Soporte de armadura
|
||||
Locked Armor Stand=Soporte de armadura privado
|
||||
Shared Armor Stand=Soporte de armadura compartido
|
||||
Armor Stand (owned by @1)=Soporte de armadura (de @1)
|
5
3d_armor_stand/locale/3d_armor_stand.ru.tr
Executable file
5
3d_armor_stand/locale/3d_armor_stand.ru.tr
Executable file
|
@ -0,0 +1,5 @@
|
|||
# textdomain: 3d_armor_stand
|
||||
Armor Stand Top=верх стойки для брони
|
||||
Armor Stand=стойка для брони
|
||||
Locked Armor Stand=стойка для брони с замком
|
||||
Armor Stand (owned by @1)=стойка для бони (владелец @1)
|
|
@ -2,4 +2,5 @@
|
|||
Armor Stand Top=
|
||||
Armor Stand=
|
||||
Locked Armor Stand=
|
||||
Shared Armor Stand=
|
||||
Armor Stand (owned by @1)=
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
# textdomain: 3d_armor_ui
|
||||
3D Armor=3D Kiraso
|
||||
Armor not initialized!=Kiraso ne pravigita!
|
||||
Armor=Kiraso
|
||||
3D Armor=3D Armaĵoj
|
||||
Armor not initialized!=Armaĵoj ne pretigitaj!
|
||||
Armor=Armaĵo
|
||||
Level=Nivelo
|
||||
Heal=Sanigi
|
||||
Fire=Fajro
|
||||
|
|
|
@ -41,7 +41,7 @@ armor:register_armor(":3d_armor:chestplate_admin", {
|
|||
description = S("Admin Chestplate"),
|
||||
inventory_image = "3d_armor_inv_chestplate_admin.png",
|
||||
armor_groups = {fleshy=100},
|
||||
groups = {armor_torso=1, armor_heal=100, armor_use=0,
|
||||
groups = {armor_torso=1, armor_heal=100, armor_use=0, armor_water=1,
|
||||
not_in_creative_inventory=1},
|
||||
on_drop = function(itemstack, dropper, pos)
|
||||
return
|
||||
|
@ -61,7 +61,7 @@ armor:register_armor(":3d_armor:leggings_admin", {
|
|||
description = S("Admin Leggings"),
|
||||
inventory_image = "3d_armor_inv_leggings_admin.png",
|
||||
armor_groups = {fleshy=100},
|
||||
groups = {armor_legs=1, armor_heal=100, armor_use=0,
|
||||
groups = {armor_legs=1, armor_heal=100, armor_use=0, armor_water=1,
|
||||
not_in_creative_inventory=1},
|
||||
on_drop = function(itemstack, dropper, pos)
|
||||
return
|
||||
|
@ -82,7 +82,7 @@ armor:register_armor(":3d_armor:boots_admin", {
|
|||
inventory_image = "3d_armor_inv_boots_admin.png",
|
||||
armor_groups = {fleshy=100},
|
||||
groups = {armor_feet=1, armor_heal=100, armor_use=0, physics_speed=1,
|
||||
not_in_creative_inventory=1},
|
||||
armor_water=1, not_in_creative_inventory=1},
|
||||
on_drop = function(itemstack, dropper, pos)
|
||||
return
|
||||
end,
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# textdomain: armor_admin
|
||||
Admin Helmet=Administra Kasko
|
||||
Admin Chestplate=Administra Brustkiraso
|
||||
Admin Chestplate=Administra Kiraso
|
||||
Admin Leggings=Administra Pantalono
|
||||
Admin Boots=Administra Botoj
|
||||
Admin Boots=Administraj Botoj
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# textdomain: armor_admin
|
||||
Admin Helmet=шлем админа
|
||||
Admin Chestplate=бронежилет админа
|
||||
Admin Leggings=гамаши админа
|
||||
Admin Chestplate=нагрудник админа
|
||||
Admin Leggings=штаны админа
|
||||
Admin Boots=ботинки админа
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# textdomain: armor_bronze
|
||||
Bronze Helmet=Bronza Kasko
|
||||
Bronze Chestplate=Bronza Brustkiraso
|
||||
Bronze Chestplate=Bronza Kiraso
|
||||
Bronze Leggings=Bronza Pantalono
|
||||
Bronze Boots=Bronza Botoj
|
||||
Bronze Boots=Bronzaj Botoj
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# textdomain: armor_bronze
|
||||
Bronze Helmet=бронзовый шлем
|
||||
Bronze Chestplate=бронзовый бронежилет
|
||||
Bronze Leggings=бронзовые гамаши
|
||||
Bronze Chestplate=бронзовый нагрудник
|
||||
Bronze Leggings=бронзовые штаны
|
||||
Bronze Boots=бронзовые ботинки
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# textdomain: armor_cactus
|
||||
Cactus Helmet=Kakta Kasko
|
||||
Cactus Chestplate=Kakta Brustkiraso
|
||||
Cactus Chestplate=Kakta Kiraso
|
||||
Cactus Leggings=Kakta Pantalono
|
||||
Cactus Boots=Kakta Botoj
|
||||
Cactus Boots=Kaktaj Botoj
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# textdomain: armor_cactus
|
||||
Cactus Helmet=кактусовый шлем
|
||||
Cactus Chestplate=кактусовый бронежилет
|
||||
Cactus Leggings=кактусовые гамаши
|
||||
Cactus Chestplate=кактусовый нагрудник
|
||||
Cactus Leggings=кактусовые штаны
|
||||
Cactus Boots=кактусовые ботинки
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# textdomain: armor_crystal
|
||||
Crystal Helmet=Kristala Kasko
|
||||
Crystal Chestplate=Kristala Brustkiraso
|
||||
Crystal Chestplate=Kristala Kiraso
|
||||
Crystal Leggings=Kristala Pantalono
|
||||
Crystal Boots=Kristala Botoj
|
||||
Crystal Boots=Kristalaj Botoj
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# textdomain: armor_crystal
|
||||
Crystal Helmet=кристалловый шлем
|
||||
Crystal Chestplate=кристалловый бронежилет
|
||||
Crystal Leggings=кристалловые гамаши
|
||||
Crystal Chestplate=кристалловый нагрудник
|
||||
Crystal Leggings=кристалловые штаны
|
||||
Crystal Boots=кристалловые ботинки
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# textdomain: armor_diamond
|
||||
Diamond Helmet=Diamanta Kasko
|
||||
Diamond Chestplate=Diamanta Brustkiraso
|
||||
Diamond Chestplate=Diamanta Kiraso
|
||||
Diamond Leggings=Diamanta Pantalono
|
||||
Diamond Boots=Diamanta Botoj
|
||||
Diamond Boots=Diamantaj Botoj
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# textdomain: armor_diamond
|
||||
Diamond Helmet=алмазный шлем
|
||||
Diamond Chestplate=алмазный бронежилет
|
||||
Diamond Leggings=алмазные гамаши
|
||||
Diamond Chestplate=алмазный нагрудник
|
||||
Diamond Leggings=алмазные штаны
|
||||
Diamond Boots=алмазные ботинки
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# textdomain: armor_gold
|
||||
Gold Helmet=Ora Kasko
|
||||
Gold Chestplate=Ora Brustkiraso
|
||||
Gold Chestplate=Ora Kiraso
|
||||
Gold Leggings=Ora Pantalono
|
||||
Gold Boots=Ora Botoj
|
||||
Gold Boots=Oraj Botoj
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# textdomain: armor_gold
|
||||
Gold Helmet=золотой шлем
|
||||
Gold Chestplate=золотой бронежилет
|
||||
Gold Leggings=золотые гамаши
|
||||
Gold Chestplate=золотой нагрудник
|
||||
Gold Leggings=золотые штаны
|
||||
Gold Boots=золотые ботинки
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# textdomain: armor_mithril
|
||||
Mithril Helmet=Mitrila Kasko
|
||||
Mithril Chestplate=Mitrila Brustkiraso
|
||||
Mithril Chestplate=Mitrila Kiraso
|
||||
Mithril Leggings=Mitrila Pantalono
|
||||
Mithril Boots=Mitrila Botoj
|
||||
Mithril Boots=Mitrilaj Botoj
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# textdomain: armor_mithril
|
||||
Mithril Helmet=мифриловый шлем
|
||||
Mithril Chestplate=мифриловый бронежилет
|
||||
Mithril Leggings=мифриловые гамаши
|
||||
Mithril Chestplate=мифриловый нагрудник
|
||||
Mithril Leggings=мифриловые штаны
|
||||
Mithril Boots=мифриловые ботинки
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# textdomain: armor_nether
|
||||
Nether Helmet=Inferna Kasko
|
||||
Nether Chestplate=Inferna Brustkiraso
|
||||
Nether Chestplate=Inferna Kiraso
|
||||
Nether Leggings=Inferna Pantalono
|
||||
Nether Boots=Inferna Botoj
|
||||
Nether Boots=Infernaj Botoj
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# textdomain: armor_nether
|
||||
Nether Helmet=адский шлем
|
||||
Nether Chestplate=адский бронежилет
|
||||
Nether Leggings=адские гамаши
|
||||
Nether Chestplate=адский нагрудник
|
||||
Nether Leggings=адские штаны
|
||||
Nether Boots=адские ботинки
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# textdomain: armor_steel
|
||||
Steel Helmet=Ŝtala Kasko
|
||||
Steel Chestplate=Ŝtala Brustkiraso
|
||||
Steel Chestplate=Ŝtala Kiraso
|
||||
Steel Leggings=Ŝtala Pantalono
|
||||
Steel Boots=Ŝtala Botoj
|
||||
Steel Boots=Ŝtalaj Botoj
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# textdomain: armor_steel
|
||||
Steel Helmet=стальной шлем
|
||||
Steel Chestplate=стальной бронежилет
|
||||
Steel Leggings=стальные гамаши
|
||||
Steel Chestplate=стальной нагрудник
|
||||
Steel Leggings=стальные штаны
|
||||
Steel Boots=стальные ботинки
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# textdomain: armor_wood
|
||||
Wood Helmet=Ligna Kasko
|
||||
Wood Chestplate=Ligna Brustkiraso
|
||||
Wood Chestplate=Ligna Kiraso
|
||||
Wood Leggings=Ligna Pantalono
|
||||
Wood Boots=Ligna Botoj
|
||||
Wood Boots=Lignaj Botoj
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# textdomain: armor_wood
|
||||
Wood Helmet=деревянный шлем
|
||||
Wood Chestplate=деревянный бронежилет
|
||||
Wood Leggings=деревянные гамаши
|
||||
Wood Chestplate=деревянный нагрудник
|
||||
Wood Leggings=деревянные штаны
|
||||
Wood Boots=деревянные ботинки
|
||||
|
|
13
shields/locale/shields.es.tr
Normal file
13
shields/locale/shields.es.tr
Normal file
|
@ -0,0 +1,13 @@
|
|||
# textdomain: shields
|
||||
Admin Shield=Escudo de admin
|
||||
Wooden Shield=Escudo de madera
|
||||
Enhanced Wood Shield=Escudo de madera mejorado
|
||||
Cactus Shield=Escudo de cactus
|
||||
Enhanced Cactus Shield=Escudo de cactus mejorado
|
||||
Steel Shield=Escudo de acero
|
||||
Bronze Shield=Escudo de bronce
|
||||
Diamond Shield=Escudo de diamante
|
||||
Gold Shield=Escudo de oro
|
||||
Mithril Shield=Escudo de mitrilo
|
||||
Crystal Shield=Escudo de cristal
|
||||
Nether Shield=Escudo de nether
|
13
shields/locale/shields.ru.tr
Executable file
13
shields/locale/shields.ru.tr
Executable file
|
@ -0,0 +1,13 @@
|
|||
# textdomain: shields
|
||||
Admin Shield=щит админа
|
||||
Wooden Shield=деревянный щит
|
||||
Enhanced Wood Shield=усиленный деревянный щит
|
||||
Cactus Shield=кактусовый щит
|
||||
Enhanced Cactus Shield=усиленный кактусовый щит
|
||||
Steel Shield=стальной щит
|
||||
Bronze Shield=бронзовый щит
|
||||
Diamond Shield=алмазный щит
|
||||
Gold Shield=золотой щит
|
||||
Mithril Shield=мифриловый щит
|
||||
Crystal Shield=кристальный щит
|
||||
Nether Shield=адский щит
|
|
@ -92,7 +92,7 @@ local get_image_from_tile = memoize(function(tile)
|
|||
end
|
||||
end
|
||||
|
||||
return "3d_armor_trans.png"
|
||||
return "blank.png"
|
||||
end)
|
||||
|
||||
local function get_image_cube(tiles)
|
||||
|
@ -139,7 +139,7 @@ local function get_image_cube(tiles)
|
|||
)
|
||||
end
|
||||
|
||||
return "3d_armor_trans.png"
|
||||
return "blank.png"
|
||||
end
|
||||
|
||||
local function is_normal_node(drawtype)
|
||||
|
@ -158,7 +158,7 @@ armor.get_wield_image = memoize(function(item)
|
|||
item = ItemStack(item)
|
||||
|
||||
if item:is_empty() then
|
||||
return "3d_armor_trans.png"
|
||||
return "blank.png"
|
||||
end
|
||||
|
||||
local def = item:get_definition()
|
||||
|
@ -169,7 +169,7 @@ armor.get_wield_image = memoize(function(item)
|
|||
local meta = item:get_meta()
|
||||
local color = meta:get("color") or def.color
|
||||
|
||||
local image = "3d_armor_trans.png"
|
||||
local image = "blank.png"
|
||||
|
||||
if def.wield_image and def.wield_image ~= "" then
|
||||
local parts = {def.wield_image}
|
||||
|
@ -193,7 +193,7 @@ armor.get_wield_image = memoize(function(item)
|
|||
|
||||
elseif def.type == "node" then
|
||||
if def.drawtype == "nodebox" or def.drawtype == "mesh" then
|
||||
image = "3d_armor_trans.png"
|
||||
image = "blank.png"
|
||||
|
||||
else
|
||||
local tiles = def.tiles
|
||||
|
|
|
@ -14,7 +14,7 @@ dofile(minetest.get_modpath(minetest.get_current_modname()).."/get_texture.lua")
|
|||
dofile(minetest.get_modpath(minetest.get_current_modname()).."/transform.lua")
|
||||
|
||||
wieldview.get_item_texture = function(self, item)
|
||||
local texture = "3d_armor_trans.png"
|
||||
local texture = "blank.png"
|
||||
if item ~= "" then
|
||||
texture = armor.get_wield_image(item)
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user