alexanderritter02 / varo-plugin Goto Github PK
View Code? Open in Web Editor NEWHier können Fehler im Varo-Plugin gemeldet werden. Außerdem auch Verbesserungsvorschläge
License: BSD 3-Clause "New" or "Revised" License
Hier können Fehler im Varo-Plugin gemeldet werden. Außerdem auch Verbesserungsvorschläge
License: BSD 3-Clause "New" or "Revised" License
Bezieht sich dein Vorschlag auf ein Problem?
Wenn man vergisst, worldborder center <x> <z>
am Spawn zu machen, ist die Border verschoben.
Der Vorschlag
Beim Varostart soll die Bordermitte vom Plugin auf den Worldspawn gesetzt werden.
Is this related to a problem?
To change configuration settings, the server must be stopped and restarted. This is a tedious process.
Der Vorschlag
A command /varo.reload
that re-reads config.yml+player.yml from the file system and loads it into the plugin.
Hinweis
Internal things under plugin:
shouldn't be reloaded.
Der Vorschlag
Eine Option, mit der man das Kleinerwerden der Border ausmachen kann und sie statisch auf den eingestellten Wert festlegt.
Standard
border:
shrinking: true
radius: 5000
Is your feature request related to a problem?
Handing out strikes manually is a tedious process including downloading playerdata.
The suggestion
A command /varo.strike <player> <reason>
which saves the strikes to the player.yml
and automatically punishes the player:
uuid:
strikes:
- built a trap at spawn
- violated rule 2
Punishments may be configurable at some point (see #28 ), but currently are:
Further information
Needed for the end display in #13.
Bezieht sich dein Vorschlag auf ein Problem?
Beim Start vom Varo werden die Spieler rein zufällig auf den Spawnplattfomen verteilt.
Dies führt dazu, dass man eventuell weit entfernt voneinander ist.
Vorschlag
Spawne alle Spieler eines Teams nebeneinander. Also z.B.:
Describe the bug
The worldborder shrinking message gets displayed for every world, resulting in it getting sent twice/thrice.
[Varo] Worldborder is shrinking from 5721.887255898941 to 5702.259156725387 in the next hour
[Varo] Worldborder is shrinking from 5721.887245890787 to 5702.259146717233 in the next hour
Expected behavior
Message is only sent one time. Can also be merged with the shrink per hour message.
Is your request related to a problem?
Disallowed items like for example enchanted golden apples are hard-coded, meaning they can only be changed by compiling the plugin yourself.
The suggestion
An option in config.yml
where you can specify a list of forbidden items.
The name of the items corresponds to the standar Bukkit Material and item durability should just be a number behind the name.
disallowed-items:
- GOLDEN_APPLE 1
- HOPPER_MINECART
- EYE_OF_ENDER
Potions are going to be implemented as a seperate option, as they work differently
Alternatives
An ingame command to add the items. Sounds like too much effort.
Describe the bug
For some unknown reason, spectating players are sometimes visible to normal players.
They can still fly and have all spectating abilities.
Need to investigate
Ingame bekommt man die Nachricht, wenn das Varo gestartet oder gestoppt wird.
Das soll nun auch auf dem Discord gepostet werden.
Bezieht sich dein Vorschlag auf ein Problem?
Die Option bordermode:
hat 0, 1 und 2 als Einstellungsmöglichkeit.
Es ist schwer, zu erkennen, was diese bedeuten. Auch im Code selbst ist das schlecht für die Leserlichkeit.
Der Vorschlag
Verwende sogennante Enums für bestimmte Optionen:
KILL, EDGE, SPAWN
Alternativen
Describe the bug
When a player dies, he respawns but doesn't receive a compass to teleport to other players for spectating.
He has to relog to get the compass.
Reproduction steps
/kill
yourself❌ There is no compass
Expected behaviour
To immediately get a compass for easy spectating.
Was ist das Problem?
Jeglicher Schaden vor Beginn des Varos wird geblockt. Dazu gehört auch /kill
, d.h. selbst der Admin hat Probleme, seine Spieler zu kontrollieren.
Reproduktion
Weiterer Kontext
Schaden wird in BeforeVaroListener.java
geblockt
Is your feature request related to a problem?
Currently if you are dead and your team mate is still alive, you are prohibited from joining the server if he isn't online (measure against afk cheating).
This makes you unable to watch fights between other teams.
The suggestion
Add a config.yml
option that lets the server master decide whether players should be allowed to spectate if their teammate isn't online.
spectating:
only-while-team-online: true
Is this related to a problem?
Potions are hardcoded and would be hard to block even after implementation of #20, because there are too many potion variations with different ids.
This is especially problematic e.g. if one tried to block all splash potions.
The suggestion
A seperate option in config.yml
, that allows to:
strength
instead of 8201
).Default
potions:
enabled: true
splash-potions: false
disabled-potions:
- strength
- invisibility
- regeneration
Bezieht sich dein Vorschlag auf ein Problem?
Manche Leute stört es, dass sie die Zeit und den Teamnamen rechts im Scoreboard haben.
Eine Option, mit der man die Anzeige von Zeit, Team und Sessions switchen kann zwischen:
Über den Befehl varo.hud <scoreboard | actionbar | off>
soll das für und von jeden Spieler individuell einstellbar sein.
Is your feature request related to a problem?
Theoretically you can use up all your sessions on only one day. This may lead to advantages against normal players and far more importantly prevents meeting and fighting other teams.
Your suggestion
An option to limit the sessions per day. If it is set to 0, sessions will be unlimited.
sessions-per-day: 5
Alternatives
Just make a rule on how many sessions are allowed to be played per day.
Bezieht sich dein Vorschlag auf ein Problem?
Wenn jemand hierher kommt, sieht er eine leere Liste und keine vorherigen Reports.
Der Vorschlag
Erstelle dieses Beispiel
Alternativen
Nein.
Bezieht sich dein Vorschlag auf ein Problem?
Zurzeit muss die config.yml
neu generiert werden, wenn Einstellungen bei einem Plugin-Update verändert wurden oder nicht mehr existieren.
Bei #17 würden z.B. alle alten Bordereinstellungen verloren gehen.
Der Vorschlag
Speichere in der config.yml
die Version des Plugins:
plugin:
version: 1.8
Beim Serverstart soll die Version überprüft werden und falls diese kleiner ist als die, die gerade läuft:
plugin.version
The suggestion
Count how and which players were killed by a participant.
Save it in players.yml
for later access:
069a79f4-44e9-4726-a5be-fca90e38aaf5:
kills:
- Player 1
- Player 2
- Player 3
This is needed for the end discord message in #13.
Bezieht sich dein Vorschlag auf ein Problem?
Wenn man was nachschauen und überprüfen muss, dann verliert man Zeit von seiner Session, obwohl man eigentlich gar nicht spielt.
Der Vorschlag
Eine Rolle für Varoplayer, die sämtliche Aktionen temporär stoppt und für die Serverwartung gedacht ist.
Soll über Discord hinzugefügt werden können, z. B.:
!c maintainence <Spieler>
- temporär, sollte generell genutzt werden!c maintainence <Spieler> forever
- für Admins, die nicht am Spiel teilnehmenAblauf
Describe the bug
When an admin (created through /maintainence
command) joins the server, the join message can be seen both ingame and on Discord.
Reproduction steps
/maintainence <your-player>
❌ See Discord join message
Expected behaviour
Don't send join/leave messages for admins as is currently already done for dead players.
Was ist das Problem?
Ist ein Spieler im Admin-Modus während einem Reload auf dem Server, so wird seine Position neu gespeichert.
Loggt er sich aus, wird er dorthin teleportiert anstatt an die Originalposition vor dem Reload.
Reproduktion
/maintainence <Spieler>
/reload
❌ Du spawnst in der Leere und nicht dort, wo du vor dem Admin-Modus warst.
Was hätte normalerweise passieren sollen
Der Spieler wird an den Ort zurückteleportiert, an dem er war, bevor er Admin wurde.
Weiterer Kontext
Bei einem Serverreload wird für alle Spieler ein PlayerJoinEvent
getriggert. Dort wird für Admins auch die Position abgespeichert.
Bezieht sich dein Vorschlag auf ein Problem?
Dem Gewinner-Team sollte etwas Ruhm und Ehre gezeigt werden.
Zurzeit werden jedoch keine Gewinner verkündet und das Varo endet auch nicht automatisch.
Der Vorschlag
Sobald alle Teams gestorben sind außer eines:
Is your feature request related to a problem?
No I don't think so
The suggestion
Currently if you disable enchanted golden apples for example people are still able to get them via chest they found in mines or so. I know they are not able to use them, but I think it would be nice if they directly get removed from their inventory.
Alternatives
They maybe could be already removed if a chest is opened or so, but this might nor work very well if you get them via a hopper etc. A second alternative would be to remove all of them when a chunk is loaded, but this will have huge performance impacts as far as I know.
Describe the bug
When a team name is longer than 16 characters, you will receive an error:
java.lang.IllegalArgumentException: Team name 'MountEverestHustle' is longer than the limit of 16 characters
when executing several essential commands like /varo.start
. The scoreboard for the team never registers.
[19:55:34] [Server thread/ERROR]: null
org.bukkit.command.CommandException: Unhandled exception executing command 'varo.start' in plugin Varo v2.2.0-alpha-ff5d7de
at org.bukkit.command.PluginCommand.execute(PluginCommand.java:46) ~[minecraft_server.jar:git-Spigot-db6de12-18fbb24]
at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:141) ~[minecraft_server.jar:git-Spigot-db6de12-18fbb24]
at org.bukkit.craftbukkit.v1_8_R3.CraftServer.dispatchCommand(CraftServer.java:641) ~[minecraft_server.jar:git-Spigot-db6de12-18fbb24]
at net.minecraft.server.v1_8_R3.PlayerConnection.handleCommand(PlayerConnection.java:1162) [minecraft_server.jar:git-Spigot-db6de12-18fbb24]
at net.minecraft.server.v1_8_R3.PlayerConnection.a(PlayerConnection.java:997) [minecraft_server.jar:git-Spigot-db6de12-18fbb24]
at net.minecraft.server.v1_8_R3.PacketPlayInChat.a(PacketPlayInChat.java:45) [minecraft_server.jar:git-Spigot-db6de12-18fbb24]
at net.minecraft.server.v1_8_R3.PacketPlayInChat.a(PacketPlayInChat.java:1) [minecraft_server.jar:git-Spigot-db6de12-18fbb24]
at net.minecraft.server.v1_8_R3.PlayerConnectionUtils$1.run(SourceFile:13) [minecraft_server.jar:git-Spigot-db6de12-18fbb24]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:1.8.0_251]
at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:1.8.0_251]
at net.minecraft.server.v1_8_R3.SystemUtils.a(SourceFile:44) [minecraft_server.jar:git-Spigot-db6de12-18fbb24]
at net.minecraft.server.v1_8_R3.MinecraftServer.B(MinecraftServer.java:715) [minecraft_server.jar:git-Spigot-db6de12-18fbb24]
at net.minecraft.server.v1_8_R3.DedicatedServer.B(DedicatedServer.java:374) [minecraft_server.jar:git-Spigot-db6de12-18fbb24]
at net.minecraft.server.v1_8_R3.MinecraftServer.A(MinecraftServer.java:654) [minecraft_server.jar:git-Spigot-db6de12-18fbb24]
at net.minecraft.server.v1_8_R3.MinecraftServer.run(MinecraftServer.java:557) [minecraft_server.jar:git-Spigot-db6de12-18fbb24]
at java.lang.Thread.run(Thread.java:748) [?:1.8.0_251]
Caused by: java.lang.IllegalArgumentException: Team name 'MountEverestHustle' is longer than the limit of 16 characters
at org.apache.commons.lang.Validate.isTrue(Validate.java:136) ~[minecraft_server.jar:git-Spigot-db6de12-18fbb24]
at org.bukkit.craftbukkit.v1_8_R3.scoreboard.CraftScoreboard.registerNewTeam(CraftScoreboard.java:139) ~[minecraft_server.jar:git-Spigot-db6de12-18fbb24]
at de.alexanderritter.varo.ingame.VaroPlayer.setupScoreboard(VaroPlayer.java:201) ~[?:?]
at de.alexanderritter.varo.main.Varo.reloadIngamePlayers(Varo.java:216) ~[?:?]
at de.alexanderritter.varo.commands.CMDstart.onCommand(CMDstart.java:65) ~[?:?]
at org.bukkit.command.PluginCommand.execute(PluginCommand.java:44) ~[minecraft_server.jar:git-Spigot-db6de12-18fbb24]
... 15 more
Reproduction steps
/varo.start
❌ See error
Expected behaviour
As the 16 character limit is a Minecraft limitation:
Was ist das Problem?
Sind die Sessions länger als 15 Minuten, so wird z.B. bei 20 verbleibenden Minuten die Nachricht: "Du hast noch 20 Minuten" nicht angezeigt, wie bei 10 oder 5 Minuten.
Reproduktion
Schritte, damit der Fehler ensteht:
❌ Es kommt keine Nachricht im Chat
Was hätte normalerweise passieren sollen
Jede 5 Minuten sollen im Chat die verbleibenden Minuten angekündigt werden.
Weiterer Kontext
Das ist insbesondere wichtig, wenn man nur Chat als HUD-Option verwendet.
Bezieht sich dein Vorschlag auf ein Problem?
Ist der Spawn nicht bei x=0 z=0
ist es für Spieler schwierig bis unmöglich, in die Mitte zu finden.
Entweder:
Einen Befehl, den jeder Spieler ausführen kann und der die Koordinaten des Spawns anzeigt.
Oder:
Die Koordinaten der Mitte werden zusätzlich mit /border
angezeigt
Der Vorschlag
Man soll an mehr als einem Tag pro Woche die Koordinaten automatisch posten lassen können. In der config.yml
soll man alle Koordinatenposts als Liste eingeben:
coord-post:
- Tuesday, 20
- Friday, 14
- ...
Was ist das Problem?
/varo.start
setzt die Difficulty auf Normal, egal was der Server zuvor hatte.
Reproduktion
❌ Der Schwierigkeitsgrad ist nun auf Normal.
Was hätte normalerweise passieren sollen
Das Plugin hätte die vom Server eingestellte Schwierigkeits respektieren und beibehalten sollen.
Weiterer Kontext
Das habe ich ursprünglich absichtlich hinzugefügt:
https://github.com/AlexanderRitter02/varo-issues/blob/693b85a7b61063e173f252fe495f722465b01508/src/main/java/de/alexanderritter/varo/main/Varo.java#L238
Was ist das Problem?
Es wurden alle Spieler gekickt bei varo.start
.
Da die Funktion relativ neu ist, muss ich das Problem genauer untersuchen.
Vor allem wann genau tritt es auf, da es z.B. beim Testen nicht so war.
Weiterer Kontext
Hängt damit zusammen, dass der VaroPlayer noch nicht initialisiert ist zu Beginn.
Was ist das Problem?
Die Nachricht, dass ein Spieler zu einem Admin gemacht wurde, wird an alle Spieler, die online sind, gesendet.
Reproduktion
/maintainence <Spieler>
in der Konsole❌ Du (und alle anderen Spieler) bekommen die Nachricht, dass zum Admin gemacht wurde.
Was hätte normalerweise passieren sollen
Die Nachricht hätte nur dem Sender angezeigt werden sollen.
Der Vorschlag
Eine Option, die die Worldborder komplett ausmacht und auf die standardmäßigen 30 Millionen Blöcke setzt.
Standard
border:
enabled: true
Is your feature request related to a problem?
For some players current strike punishments may be too severe or they want to allow less/more strikes until a ban.
Currently they can disable automatic punishments, but configuring the automation themselves would be better.
The suggestion
Add options to config.yml
to execute commands when a strike hits, however make sure that it happens when the player is online. Have a string for the playername {$player}
that gets replaced.
Additionally have some default options for coordinate post, inventory clear and disqualification.
strikes:
- {$coord-post}
- {$inv-clear}
- /yourcommand {$player}
- {$disqualified}
Der Vorschlag
Da die Border so viele Einstellungen hat, vereine diese als Suboptionen in der config.yml
.
border:
mode: EDGE
shrink-time: 672
radius: 5000
end-radius: 250
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.