DiceEvent selbst auslösen
Derzeit ist es nicht möglich ein DiceEvent programmiertechnisch selbst auszulösen. Dies ist aber vorallem bei Events/Öffentlichen Spielen notwendig, damit Mitspieler nicht auf die anderen Mitspieler warten müssen. z.B. bei einem öffentlichen Stufendicen in Gruppen.
Daher wäre mir ein triggerDiceEvent(user, config) sehr lieb.
Ahoi,
wir haben diese Funktion nun umgesetzt.
Mit dem nächsten Update gibt es die Funktion user.triggerDice(diceConfiguration)
Knuddelige Grüße
Ironist
-
David Martin commented
Geek squad tech support is the efficient and the only platform for all troubleshooting appliances with anti-virus protection and getting to help the users in no time or within it. Above all, they are 24 /7 available and in no time perform well in their services.TV and Home Theater, Home Appliances, Car Electronics, Smart Home Devices, Cameras and camcorders, Portable audio devices etc.
For more information visit site :- https://techsquadr.com/
https://chatgeekquad.com/
https://appointmentgeekr.com/ -
Kev777 commented
Ja, wäre doch ne schicke sache auf diese weise. Allerdings hier vielleicht schauen das die app dann damit nicht einen spammute für den User auslösen kann?
-
Dean Kaspar commented
ich finde es sollte trotzdem irgendwie gekennzeichnet werden, dass die app das getriggert hat. muss nicht extrem offensichtlich sein, aber wenn da öffentlich gediced wird obwohl der nutzer nichts macht, sollte da schon ein hinweis kommen... eventuell dann auch nur per /p oder so eine notification an den nutzer, den der entwickler mit einem grund füllen kann
-
Dean Kaspar commented
Für die Vollständigkeit:
Was soll gemacht werden:
App.onUserDiced soll getriggert werdenWarum:
Damit Mitspieler nicht auf andere Nutzer warten müssen bei öffentlichen SpielenWie könnte die API dazu aussehen.
DiceEvent.simulateDice(user, diceConfiguration)
oder noch besser
user.forceDice(user, diceConfiguration) //damit auch wirklich der nutzer öffentlich würfeltWie konnte man das Problem bisher umgehen?
Es gibt bisher 2 Möglichkeiten.
Das KFramework erstellt ein eigenes Objekt welches die Funktionen von DiceEvent zur Verfügung stellt. Diese Lösung ist problematisch, falls die API hier mal geändert wird.
Die andere Lösung ist, im richtigen DiceEvent die wichtigen Attribute auszulesen und an eine weitere Funktion weiterzuleiten.App.onUserDiced = function onUserDiced(diceEvent) {
var user = diceEvent.getUser();
var sum = diceEvent.getDiceResult().totalSum();
var conf = diceEvent.getDiceResult().getDiceConfiguration();
App.onUserDicedHandler(user, conf, sum);
}; und für das automatische Würfeln dann ein:var config = DiceConfigurationFactory.fromString("1w600");
var number = RandomOperations.nextInt(600)+1;
App.onUserDicedHandler(tUser, config, number); -
Enrico-nrp commented
Nutze das auch derzeit selbst, um einen Wurf durch den Bot zu simulieren.
Cool wäre eine Lösung wie DiceEvent.createSimulated() oder noch besser: BotUser.dice(DiceConfiguration), das dann wieder ein onUserDiced Event auslöst.