Item beschränkung

German
Post Reply
Podo
Member
Posts: 29
Joined: Mon Jul 12, 2021 08:02

Item beschränkung

by Podo » Post

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
cdb_2049351dc8e7

User avatar
Desour
Member
Posts: 1469
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

by Desour » Post

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.
he/him; Codeberg; GitHub; ContentDB; public personal TODO list; "DS" is preferred (but often too short)

Podo
Member
Posts: 29
Joined: Mon Jul 12, 2021 08:02

Re: Item beschränkung

by Podo » Post

DS-minetest wrote:
Thu Jan 20, 2022 15:13
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.
Danke für die Antwort.

Die unprivilegierten Benutzer sind Schüler im Alter von 6-11 Jahren :-).
Wo muss ich das ändern, bzw. wie?

LG
cdb_2049351dc8e7

User avatar
Desour
Member
Posts: 1469
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

by Desour » Post

Podo wrote:
Fri Jan 21, 2022 08:53
Wo muss ich das ändern, bzw. wie?
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)

Podo
Member
Posts: 29
Joined: Mon Jul 12, 2021 08:02

Re: Item beschränkung

by Podo » Post

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

Podo
Member
Posts: 29
Joined: Mon Jul 12, 2021 08:02

Re: Item beschränkung

by Podo » Post

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]
DS-minetest wrote:
Mon Feb 07, 2022 10:37
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.
cdb_2049351dc8e7

Bastrabun
Member
Posts: 211
Joined: Mon Nov 04, 2019 19:48

Re: Item beschränkung

by Bastrabun » Post

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):

Code: Select all

title = Restricted Items
name = restricted_items
depends = mymod1,mymod2
4. Schreibe in die init.lua das da rein (Ersetze "mymod:restricted_item" durch den Itemstring):

Code: Select all


    minetest.override_item(
        "mymod:restricted_item",
        {
            groups = {not_in_creative_inventory = 1}
        }
    )

5. Teste, obs wirklich klappt
Whatever I say is CC0

Podo
Member
Posts: 29
Joined: Mon Jul 12, 2021 08:02

Re: Item beschränkung

by Podo » Post

Bastrabun wrote:
Tue Feb 08, 2022 17:48
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):

Code: Select all

title = Restricted Items
name = restricted_items
depends = mymod1,mymod2
4. Schreibe in die init.lua das da rein (Ersetze "mymod:restricted_item" durch den Itemstring):

Code: Select all


    minetest.override_item(
        "mymod:restricted_item",
        {
            groups = {not_in_creative_inventory = 1}
        }
    )

5. Teste, obs wirklich klappt
Ok hört sich erstmal verständlich an, bei mir kommen allerdings ein paar Fragen auf:

-(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

Podo
Member
Posts: 29
Joined: Mon Jul 12, 2021 08:02

Re: Item beschränkung

by Podo » Post

Super wäre ein Beispiel mit der Mod "Wings" oder eine "Währungsmod"
cdb_2049351dc8e7

Bastrabun
Member
Posts: 211
Joined: Mon Nov 04, 2019 19:48

Re: Item beschränkung

by Bastrabun » Post

> -(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:

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))
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:

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",
})
Das änderst du entweder direkt im mod zu

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}
})
oder du schreibst es in das restricted items mod rein:

Code: Select all

    minetest.override_item(
        "wings:wings",
        {
            groups = {not_in_creative_inventory = 1}
        }
    )

Whatever I say is CC0

User avatar
Linuxdirk
Member
Posts: 3216
Joined: Wed Sep 17, 2014 11:21
In-game: Linuxdirk
Location: Germany
Contact:

Re: Item beschränkung

by Linuxdirk » Post

Bastrabun wrote:
Thu Feb 24, 2022 13:45
Den itemstring kannst du durch mods finden, ich habe keine eingebaute Methode gefunden.
Du kannst tooltip_append_itemname = true einstellen, dann wird die ID im Tooltip mit angezeigt.

Podo
Member
Posts: 29
Joined: Mon Jul 12, 2021 08:02

Re: Item beschränkung

by Podo » Post

Vielen Dank für die Hilfe, die Kinder werden sich freuen =)
cdb_2049351dc8e7

Downad
Member
Posts: 22
Joined: Tue Oct 03, 2017 08:54
GitHub: downad
In-game: downad
Location: Germany

Re: Item beschränkung

by Downad » Post

ich hatte da mal was für meine Schüler gebaut
viewtopic.php?p=311072
hab es aber nicht mehr weitergepflegt

Podo
Member
Posts: 29
Joined: Mon Jul 12, 2021 08:02

Re: Item beschränkung

by Podo » Post

Downad wrote:
Fri Feb 25, 2022 10:16
ich hatte da mal was für meine Schüler gebaut
viewtopic.php?p=311072
hab es aber nicht mehr weitergepflegt
Liest sich ganz nett.
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

User avatar
Linuxdirk
Member
Posts: 3216
Joined: Wed Sep 17, 2014 11:21
In-game: Linuxdirk
Location: Germany
Contact:

Re: Item beschränkung

by Linuxdirk » Post

Podo wrote:
Fri Feb 25, 2022 11:21
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
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.

Podo
Member
Posts: 29
Joined: Mon Jul 12, 2021 08:02

Re: Item beschränkung

by Podo » Post

Downad wrote:
Fri Feb 25, 2022 10:16
ich hatte da mal was für meine Schüler gebaut
viewtopic.php?p=311072
hab es aber nicht mehr weitergepflegt
Habe ich jetzt integriert, leider sind die Items noch erhältlich und zwar bekommt man jetzt immer alles doppelt.
cdb_2049351dc8e7

Podo
Member
Posts: 29
Joined: Mon Jul 12, 2021 08:02

Re: Item beschränkung

by Podo » Post

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 :-)
cdb_2049351dc8e7

Bastrabun
Member
Posts: 211
Joined: Mon Nov 04, 2019 19:48

Re: Item beschränkung

by Bastrabun » Post

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
Whatever I say is CC0

User avatar
Linuxdirk
Member
Posts: 3216
Joined: Wed Sep 17, 2014 11:21
In-game: Linuxdirk
Location: Germany
Contact:

Re: Item beschränkung

by Linuxdirk » Post

Podo wrote:
Sun Feb 27, 2022 13:02
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.
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.

Podo
Member
Posts: 29
Joined: Mon Jul 12, 2021 08:02

Re: Item beschränkung

by Podo » Post

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.
Podo wrote:
Sun Feb 27, 2022 13:02
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.
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

User avatar
Linuxdirk
Member
Posts: 3216
Joined: Wed Sep 17, 2014 11:21
In-game: Linuxdirk
Location: Germany
Contact:

Re: Item beschränkung

by Linuxdirk » Post

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.

User avatar
Desour
Member
Posts: 1469
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

by Desour » Post

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)

Podo
Member
Posts: 29
Joined: Mon Jul 12, 2021 08:02

Re: Item beschränkung

by Podo » Post

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


Podo wrote:
Mon Feb 28, 2022 09:21

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

Podo wrote:
Sun Feb 27, 2022 13:02
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.
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

Podo
Member
Posts: 29
Joined: Mon Jul 12, 2021 08:02

Re: Item beschränkung

by Podo » Post

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.
cdb_2049351dc8e7

User avatar
Linuxdirk
Member
Posts: 3216
Joined: Wed Sep 17, 2014 11:21
In-game: Linuxdirk
Location: Germany
Contact:

Re: Item beschränkung

by Linuxdirk » Post

Podo wrote:
Mon Feb 28, 2022 20:30
Lieber Linuxdirk, ich habe deinen Vorschlag ausprobiert, das Problem bestand weiterhin.
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.
Podo wrote:
Mon Feb 28, 2022 20:30
Ich würde das ganze hiermit abschließen.
Eventuell wäre aber trotzdem ein Bugreport sinnvoll. Vielleicht kann der Modautor das ja vernünftig in Ordnung bringen :)

Post Reply

Who is online

Users browsing this forum: Bing [Bot], soeren06 and 5 guests