Item beschränkung
Item beschränkung
Hallo,
besteht die Möglichkeit bestimmte Items im Kreativmodus nur für den Admin zugänglich zu machen?
Also so das User ohne Adminrechte die ausgewählten Items nicht sehen können?
Danke im voraus für die Hilfe
Liebe Grüße
besteht die Möglichkeit bestimmte Items im Kreativmodus nur für den Admin zugänglich zu machen?
Also so das User ohne Adminrechte die ausgewählten Items nicht sehen können?
Danke im voraus für die Hilfe
Liebe Grüße
cdb_2049351dc8e7
- Desour
- Member
- Posts: 1472
- Joined: Thu Jun 19, 2014 19:49
- GitHub: Desour
- IRC: Desour
- In-game: DS
- Location: I'm scared that if this is too exact, I will be unable to use my keyboard.
Re: Item beschränkung
Es gibt die not_in_creative_inventory gruppe, die verhindert aber nur, dass man im creative inv das item sieht. Man kann sich das item trotzdem z.B. via /grant geben.
Wenn man wirklich etwas hast, was nur admins benutzen dürfen, dann sollte man weniger verhindern, dass unpriviligierte Benutzer das item bekommen können, sondern dafür sorgen, dass das item nur mit admin privs benutzt werden kann. Also bei on_place und co. nach einem priv prüfen. Der admin ist z.B. der einzige mit dem server priv.
Wenn man wirklich etwas hast, was nur admins benutzen dürfen, dann sollte man weniger verhindern, dass unpriviligierte Benutzer das item bekommen können, sondern dafür sorgen, dass das item nur mit admin privs benutzt werden kann. Also bei on_place und co. nach einem priv prüfen. Der admin ist z.B. der einzige mit dem server priv.
he/him; Codeberg; GitHub; ContentDB; public personal TODO list; "DS" is preferred (but often too short)
Re: Item beschränkung
Danke für die Antwort.DS-minetest wrote: ↑Thu Jan 20, 2022 15:13Es gibt die not_in_creative_inventory gruppe, die verhindert aber nur, dass man im creative inv das item sieht. Man kann sich das item trotzdem z.B. via /grant geben.
Wenn man wirklich etwas hast, was nur admins benutzen dürfen, dann sollte man weniger verhindern, dass unpriviligierte Benutzer das item bekommen können, sondern dafür sorgen, dass das item nur mit admin privs benutzt werden kann. Also bei on_place und co. nach einem priv prüfen. Der admin ist z.B. der einzige mit dem server priv.
Die unprivilegierten Benutzer sind Schüler im Alter von 6-11 Jahren :-).
Wo muss ich das ändern, bzw. wie?
LG
cdb_2049351dc8e7
- Desour
- Member
- Posts: 1472
- Joined: Thu Jun 19, 2014 19:49
- GitHub: Desour
- IRC: Desour
- In-game: DS
- Location: I'm scared that if this is too exact, I will be unable to use my keyboard.
Re: Item beschränkung
Das geht indem du einen mod schreibst oder umschreibst, und da die item definitionen änderst (z.B. das on_place).
Um welche items von welchem mod handelt es sich denn eigentlich? Es ist möglich, dass es da für dich eine einfachere Lösung gibt.
he/him; Codeberg; GitHub; ContentDB; public personal TODO list; "DS" is preferred (but often too short)
Re: Item beschränkung
Ich habe viele Mods (mehr als 20) integriert und würde gerne Fahrzeuge und bestimmte Items nur als Gewinn freigeben (z.B.: bei Lösung von Escaperooms).
cdb_2049351dc8e7
Re: Item beschränkung
Ich habe viele Mods (mehr als 20) integriert und würde gerne Fahrzeuge und bestimmte Items nur als Gewinn freigeben (z.B.: bei Lösung von Escaperooms).
[/quote]
[/quote]
DS-minetest wrote: ↑Mon Feb 07, 2022 10:37Um welche items von welchem mod handelt es sich denn eigentlich? Es ist möglich, dass es da für dich eine einfachere Lösung gibt.
cdb_2049351dc8e7
Re: Item beschränkung
Bedenke, wenn du die Benutzung eines Items oder Fahrzeugs nur mit priv erlaubst, dann verhinderst du, daß die Leute untereinander tauschen können.
Und daß die Anzahl der erworbenen Items keine Rolle spielt, wer einmal das priv hat, kann dann soviele Dinge benutzen, wie eben mit diesem Priv erlaubt sind.
Ohne das priv "give" kann man sich nicht einfach items geben, auch nicht mit creative.
Daher die Frage: Was sollen die Leute denn mit den reward-items machen können?
So nimmst du ein item aus dem creative inventory heraus:
1. Erstelle ein Verzeichnis "restricted_items"
2. Im restricted_items Verzeichnis erstelle eine mod.conf und eine init.lua
3. Schreibe in die moid.conf das da rein (Ersetze "mymod1" und weitere mit den Mods aus dem die Items kommen, die du aus dem creative inv rausnehmen willst):
4. Schreibe in die init.lua das da rein (Ersetze "mymod:restricted_item" durch den Itemstring):
5. Teste, obs wirklich klappt
Und daß die Anzahl der erworbenen Items keine Rolle spielt, wer einmal das priv hat, kann dann soviele Dinge benutzen, wie eben mit diesem Priv erlaubt sind.
Ohne das priv "give" kann man sich nicht einfach items geben, auch nicht mit creative.
Daher die Frage: Was sollen die Leute denn mit den reward-items machen können?
So nimmst du ein item aus dem creative inventory heraus:
1. Erstelle ein Verzeichnis "restricted_items"
2. Im restricted_items Verzeichnis erstelle eine mod.conf und eine init.lua
3. Schreibe in die moid.conf das da rein (Ersetze "mymod1" und weitere mit den Mods aus dem die Items kommen, die du aus dem creative inv rausnehmen willst):
Code: Select all
title = Restricted Items
name = restricted_items
depends = mymod1,mymod2
Code: Select all
minetest.override_item(
"mymod:restricted_item",
{
groups = {not_in_creative_inventory = 1}
}
)
Whatever I say is CC0
Re: Item beschränkung
Ok hört sich erstmal verständlich an, bei mir kommen allerdings ein paar Fragen auf:Bastrabun wrote: ↑Tue Feb 08, 2022 17:48Bedenke, wenn du die Benutzung eines Items oder Fahrzeugs nur mit priv erlaubst, dann verhinderst du, daß die Leute untereinander tauschen können.
Und daß die Anzahl der erworbenen Items keine Rolle spielt, wer einmal das priv hat, kann dann soviele Dinge benutzen, wie eben mit diesem Priv erlaubt sind.
Ohne das priv "give" kann man sich nicht einfach items geben, auch nicht mit creative.
Daher die Frage: Was sollen die Leute denn mit den reward-items machen können?
So nimmst du ein item aus dem creative inventory heraus:
1. Erstelle ein Verzeichnis "restricted_items"
2. Im restricted_items Verzeichnis erstelle eine mod.conf und eine init.lua
3. Schreibe in die moid.conf das da rein (Ersetze "mymod1" und weitere mit den Mods aus dem die Items kommen, die du aus dem creative inv rausnehmen willst):
4. Schreibe in die init.lua das da rein (Ersetze "mymod:restricted_item" durch den Itemstring):Code: Select all
title = Restricted Items name = restricted_items depends = mymod1,mymod2
5. Teste, obs wirklich klapptCode: Select all
minetest.override_item( "mymod:restricted_item", { groups = {not_in_creative_inventory = 1} } )
-(Ersetze "mymod:restricted_item" durch den Itemstring) wo finde ich den Itemstring?
- Wo soll ich den Ordner "restricted_items" erstellen?
-Wie kann ich das Privileg Give den normalen User entziehen?
cdb_2049351dc8e7
Re: Item beschränkung
Super wäre ein Beispiel mit der Mod "Wings" oder eine "Währungsmod"
cdb_2049351dc8e7
Re: Item beschränkung
> -(Ersetze "mymod:restricted_item" durch den Itemstring) wo finde ich den Itemstring?
Den itemstring kannst du durch mods finden, ich habe keine eingebaute Methode gefunden. Wenn du worldedit hast, dann kannst du dir durch folgenden code den itemstring des in der Hand von "Bastrabun" gehaltenen items an den Spieler "dein_name" ausgeben:
Du kannst "Bastrabun" und "dein_name" natürlich durch die Werte ersetzen, die du grade brauchst.
Im wings Beispiel unten ist der itemstring "wings:wings"
> - Wo soll ich den Ordner "restricted_items" erstellen?
Dort, wo du deine anderen mods hast, oder im worldmods Verzeichnis. Das liegt hier:
- minetest
-- worlds
--- name_deiner_welt
---- worldmods
Wenn es noch nicht existiert, kannst du es erstellen.
> -Wie kann ich das Privileg Give den normalen User entziehen?
Normale Spieler haben das nicht, aber mithilfe dieses Privs kannst du als admin dir trotzdem die items geben, auch wenn sie nicht im creative inv existieren.
> Super wäre ein Beispiel mit der Mod "Wings" oder eine "Währungsmod"
Das hier ist das wings item:
Das änderst du entweder direkt im mod zu
oder du schreibst es in das restricted items mod rein:
Den itemstring kannst du durch mods finden, ich habe keine eingebaute Methode gefunden. Wenn du worldedit hast, dann kannst du dir durch folgenden code den itemstring des in der Hand von "Bastrabun" gehaltenen items an den Spieler "dein_name" ausgeben:
Code: Select all
//lua local player_name = "Bastrabun" local item_name = core.get_player_by_name(player_name):get_wielded_item():get_name() core.chat_send_player("dein_name",dump(item_name))
Im wings Beispiel unten ist der itemstring "wings:wings"
> - Wo soll ich den Ordner "restricted_items" erstellen?
Dort, wo du deine anderen mods hast, oder im worldmods Verzeichnis. Das liegt hier:
- minetest
-- worlds
--- name_deiner_welt
---- worldmods
Wenn es noch nicht existiert, kannst du es erstellen.
> -Wie kann ich das Privileg Give den normalen User entziehen?
Normale Spieler haben das nicht, aber mithilfe dieses Privs kannst du als admin dir trotzdem die items geben, auch wenn sie nicht im creative inv existieren.
> Super wäre ein Beispiel mit der Mod "Wings" oder eine "Währungsmod"
Das hier ist das wings item:
Code: Select all
--the actual wings code
minetest.register_craftitem("wings:wings", {
description = Colorize("#f3e15c", "Wings (hold it in your hands to fly)"),
inventory_image = "wings.png",
})
Code: Select all
--the actual wings code
minetest.register_craftitem("wings:wings", {
description = Colorize("#f3e15c", "Wings (hold it in your hands to fly)"),
inventory_image = "wings.png",
groups = {not_in_creative_inventory = 1}
})
Code: Select all
minetest.override_item(
"wings:wings",
{
groups = {not_in_creative_inventory = 1}
}
)
Whatever I say is CC0
- Linuxdirk
- Member
- Posts: 3219
- Joined: Wed Sep 17, 2014 11:21
- In-game: Linuxdirk
- Location: Germany
- Contact:
Re: Item beschränkung
Du kannst tooltip_append_itemname = true einstellen, dann wird die ID im Tooltip mit angezeigt.
-
- Member
- Posts: 22
- Joined: Tue Oct 03, 2017 08:54
- GitHub: downad
- In-game: downad
- Location: Germany
Re: Item beschränkung
ich hatte da mal was für meine Schüler gebaut
viewtopic.php?p=311072
hab es aber nicht mehr weitergepflegt
viewtopic.php?p=311072
hab es aber nicht mehr weitergepflegt
Re: Item beschränkung
Liest sich ganz nett.Downad wrote: ↑Fri Feb 25, 2022 10:16ich hatte da mal was für meine Schüler gebaut
viewtopic.php?p=311072
hab es aber nicht mehr weitergepflegt
Bekomme es nur nicht zum Laufen :-(
2022-02-25 12:17:52: ERROR[Main]: ModError: Failed to load and run script from C:\Users\marti\OneDrive\Dokumente\minetest-5.4.1-win64\bin\..\mods\builder_master\init.lua:
2022-02-25 12:17:52: ERROR[Main]: ...te\minetest-5.4.1-win64\bin\..\builtin\game\register.lua:65: Name builder:pick_diamond does not follow naming conventions: "builder_master:" or ":" prefix required
2022-02-25 12:17:52: ERROR[Main]: stack traceback:
2022-02-25 12:17:52: ERROR[Main]: [C]: in function 'error'
2022-02-25 12:17:52: ERROR[Main]: ...te\minetest-5.4.1-win64\bin\..\builtin\game\register.lua:65: in function 'check_modname_prefix'
2022-02-25 12:17:52: ERROR[Main]: ...te\minetest-5.4.1-win64\bin\..\builtin\game\register.lua:115: in function 'register_item'
2022-02-25 12:17:52: ERROR[Main]: ...te\minetest-5.4.1-win64\bin\..\builtin\game\register.lua:271: in function 'register_tool'
2022-02-25 12:17:52: ERROR[Main]: ...64\bin\..\mods\builder_master/register_builder_tools.lua:4: in main chunk
2022-02-25 12:17:52: ERROR[Main]: [C]: in function 'dofile'
2022-02-25 12:17:52: ERROR[Main]: ...minetest-5.4.1-win64\bin\..\mods\builder_master\init.lua:52: in main chunk
2022-02-25 12:17:52: ERROR[Main]: Siehe debug.txt für Details.
2022-02-25 12:17:52: ACTION[Main]: Server: Shutting down
cdb_2049351dc8e7
- Linuxdirk
- Member
- Posts: 3219
- Joined: Wed Sep 17, 2014 11:21
- In-game: Linuxdirk
- Location: Germany
- Contact:
Re: Item beschränkung
Da fehlt der Namenseintrag in der mod.conf. Wenn der nicht da ist, nimmt das Modladesystem den Verzeichnisnamen als Modnamen an. Es müsste also entweder der Namenseintrag in die mod.conf hinzugefügt werden, oder du musst das Verzeichnis von builder_master in builder umbenennen. Ersteres ist die aktuelle Methode, das Umbenennen des Verzeichnisses ist legacy.
Re: Item beschränkung
Habe ich jetzt integriert, leider sind die Items noch erhältlich und zwar bekommt man jetzt immer alles doppelt.Downad wrote: ↑Fri Feb 25, 2022 10:16ich hatte da mal was für meine Schüler gebaut
viewtopic.php?p=311072
hab es aber nicht mehr weitergepflegt
cdb_2049351dc8e7
Re: Item beschränkung
Soooo, nach einiger Zeit habe ich es halbwegs hinbekommen. Nun ergibt sich ein neues Problem.
Wenn die Kinder ein Auto kaufen, können sie es unendlich vervielfachen.
Das ist bei den Mods Vehicles und Kartcar.
Ich versuche es mal zu erklären:
Sie kaufen ein Auto im Shop, haben es dann im Inventar und benutzen es. Wenn sie das Auto auf die Straße stellen, haben sie trotzdem noch eins im Inventar und wenn sie das auf der Straße befindliche Auto wieder "abbauen", haben sie 2 Autos im Inventar.
Ich hätte es gerne wie bei der Mod Motorbikes, benutzt man hier das Bike und stellt es auf die Straße verschwindet es aus dem Inventar. Man kann es aber wieder durch klicken ins Inventar aufnehmen, dann verschwindet es von der Straße.
Falls jemand eine Idee hat, wäre ich unendlich dankbar :-)
Wenn die Kinder ein Auto kaufen, können sie es unendlich vervielfachen.
Das ist bei den Mods Vehicles und Kartcar.
Ich versuche es mal zu erklären:
Sie kaufen ein Auto im Shop, haben es dann im Inventar und benutzen es. Wenn sie das Auto auf die Straße stellen, haben sie trotzdem noch eins im Inventar und wenn sie das auf der Straße befindliche Auto wieder "abbauen", haben sie 2 Autos im Inventar.
Ich hätte es gerne wie bei der Mod Motorbikes, benutzt man hier das Bike und stellt es auf die Straße verschwindet es aus dem Inventar. Man kann es aber wieder durch klicken ins Inventar aufnehmen, dann verschwindet es von der Straße.
Falls jemand eine Idee hat, wäre ich unendlich dankbar :-)
cdb_2049351dc8e7
Re: Item beschränkung
Wenn es bereits ein Mod gibt, das deine Idee umsetzt, dann schau mal wie dieses Mod das macht und übertrage es dann auf die Items oder Autos die du beschränken möchtest.
Klar, kann man alles zusammenbasteln, aber so ein halb-survival halb-creative wird irgendwann schwierig. Je konkreter du deine Ideen formulieren kannst, desto besser können wir dir helfen. Möglichst immer mit Links zu den beiteiligten Mods und einer Ist/Soll Zustandsbeschreibung
Klar, kann man alles zusammenbasteln, aber so ein halb-survival halb-creative wird irgendwann schwierig. Je konkreter du deine Ideen formulieren kannst, desto besser können wir dir helfen. Möglichst immer mit Links zu den beiteiligten Mods und einer Ist/Soll Zustandsbeschreibung
Whatever I say is CC0
- Linuxdirk
- Member
- Posts: 3219
- Joined: Wed Sep 17, 2014 11:21
- In-game: Linuxdirk
- Location: Germany
- Contact:
Re: Item beschränkung
Klingt ein bisschen so, als wenn eine custom on_place-Funktion genutzt wird, und da vergessen wurde, beim Platzieren das Item aus dem Inventar zu entfernen. Erste Anlaufstelle wäre hier selbstverständlich der Issue-Tracker der Mod. Dafür die Mod am besten in einer neuen Welt ohne weitere Mods testen, und gucken, ob das Problem da auch auftritt.
Re: Item beschränkung
Code: Select all
on_place = function(item, placer, pointed_thing)
local dir = placer:get_look_dir();
local playerpos = placer:getpos();
if pointed_thing.type == "node" and not is_boat then
local obj = minetest.env:add_entity(pointed_thing.above, vehicle)
local object = obj:get_luaentity()
object.owner = placer
if not minetest.setting_getbool("creative_mode") then
item:take_item()
return item
end
Linuxdirk wrote: ↑Mon Feb 28, 2022 08:19
Habe das not bei creative_mode wgegemacht und nun addiert es das Fahrzeug zumindest nicht mehr hinzu.
Falls jemand noch eine bessere Lösung hat, immer gerne her damit.
Ich bin ein absoluter Anfänger was programmieren angeht. Deswegen bin ich euch sehr Dankbar für die Hilfe.
Klingt ein bisschen so, als wenn eine custom on_place-Funktion genutzt wird, und da vergessen wurde, beim Platzieren das Item aus dem Inventar zu entfernen. Erste Anlaufstelle wäre hier selbstverständlich der Issue-Tracker der Mod. Dafür die Mod am besten in einer neuen Welt ohne weitere Mods testen, und gucken, ob das Problem da auch auftritt.
cdb_2049351dc8e7
- Linuxdirk
- Member
- Posts: 3219
- Joined: Wed Sep 17, 2014 11:21
- In-game: Linuxdirk
- Location: Germany
- Contact:
Re: Item beschränkung
Bring mal dein Posting in Ordnung, insbesondere den kaputten Zitat-Block ...
Bessere Lösung = Machen, was ich dazu geschrieben habe. Der Test, weil du dann sicher sein kannst, ob es an der Mod an sich liegt, oder an deinem Server (weitere Mods + Konfiguration). Wenn es an der Mod liegt, solltest du natürlich einen Bugreport erstellen.
Bessere Lösung = Machen, was ich dazu geschrieben habe. Der Test, weil du dann sicher sein kannst, ob es an der Mod an sich liegt, oder an deinem Server (weitere Mods + Konfiguration). Wenn es an der Mod liegt, solltest du natürlich einen Bugreport erstellen.
- Desour
- Member
- Posts: 1472
- Joined: Thu Jun 19, 2014 19:49
- GitHub: Desour
- IRC: Desour
- In-game: DS
- Location: I'm scared that if this is too exact, I will be unable to use my keyboard.
Re: Item beschränkung
minetest.env is deprecated. Falls du die Dokumentation suchst, siehe hier: https://github.com/minetest/minetest/bl ... ua_api.txt
he/him; Codeberg; GitHub; ContentDB; public personal TODO list; "DS" is preferred (but often too short)
Re: Item beschränkung
Habe das not bei creative_mode wgegemacht und nun addiert es das Fahrzeug zumindest nicht mehr hinzu.
Falls jemand noch eine bessere Lösung hat, immer gerne her damit.
Ich bin ein absoluter Anfänger was programmieren angeht. Deswegen bin ich euch sehr Dankbar für die Hilfe
Falls jemand noch eine bessere Lösung hat, immer gerne her damit.
Ich bin ein absoluter Anfänger was programmieren angeht. Deswegen bin ich euch sehr Dankbar für die Hilfe
Podo wrote: ↑Mon Feb 28, 2022 09:21Code: Select all
on_place = function(item, placer, pointed_thing) local dir = placer:get_look_dir(); local playerpos = placer:getpos(); if pointed_thing.type == "node" and not is_boat then local obj = minetest.env:add_entity(pointed_thing.above, vehicle) local object = obj:get_luaentity() object.owner = placer if not minetest.setting_getbool("creative_mode") then item:take_item() return item end
Linuxdirk wrote: ↑Mon Feb 28, 2022 08:19
Klingt ein bisschen so, als wenn eine custom on_place-Funktion genutzt wird, und da vergessen wurde, beim Platzieren das Item aus dem Inventar zu entfernen. Erste Anlaufstelle wäre hier selbstverständlich der Issue-Tracker der Mod. Dafür die Mod am besten in einer neuen Welt ohne weitere Mods testen, und gucken, ob das Problem da auch auftritt.
cdb_2049351dc8e7
Re: Item beschränkung
Zu erst einmal vielen Dank für die Hilfe und Entschuldigung wegen der falschen Zitierung. Ich habe wohl etwas beim posten durcheinander gebracht.
Leider kann ich den Post anscheinend nicht löschen.
Lieber Linuxdirk, ich habe deinen Vorschlag ausprobiert, das Problem bestand weiterhin.
Da ich kein Programmierer bin und das ganze sehr viel Zeit raubt, eure und meine, gebe ich mich mit dem jetzigen Zustand zufrieden.
Ich bin wirklich sehr dankbar für eure Unterstützung, ihr habt mir sehr geholfen. Ich würde das ganze hiermit abschließen.
Danke.
Leider kann ich den Post anscheinend nicht löschen.
Lieber Linuxdirk, ich habe deinen Vorschlag ausprobiert, das Problem bestand weiterhin.
Da ich kein Programmierer bin und das ganze sehr viel Zeit raubt, eure und meine, gebe ich mich mit dem jetzigen Zustand zufrieden.
Ich bin wirklich sehr dankbar für eure Unterstützung, ihr habt mir sehr geholfen. Ich würde das ganze hiermit abschließen.
Danke.
cdb_2049351dc8e7
- Linuxdirk
- Member
- Posts: 3219
- Joined: Wed Sep 17, 2014 11:21
- In-game: Linuxdirk
- Location: Germany
- Contact:
Re: Item beschränkung
Also ein Problem mit der Mod, das ist in sofern gut, dass es nun einen „schuldigen“ gibt. Neben dem angemerkten minetest.env ist auch minetest.setting_getbool nicht mehr stand der Technik.
Die Mod scheint schon älter zu sein und/oder nicht gut gepflegt zu werden. Wer weiß, was da noch alles nicht so läuft, wie es heutzutage laufen sollte.
Eventuell wäre aber trotzdem ein Bugreport sinnvoll. Vielleicht kann der Modautor das ja vernünftig in Ordnung bringen :)
Who is online
Users browsing this forum: No registered users and 6 guests