Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 12 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,14 @@ reibungsloser und angenehmer gestalten.
- Beim Beten wird nach 15 Sekunden automatisch der zweite Befehl ausgeführt
- Es gibt Benachrichtigungen, wenn ein Spieler den Server betritt oder verlässt, einen Report betritt oder verlässt, den Baumodus
betritt oder verlässt und den Admindienst betritt oder verlässt
- Beim Anklicken eines Bankautomaten wird das verfügbare Geld (im Automaten) angezeigt
- Die Hitbox eines Spielers wird in der Fraktionsfarbe des Spielers angezeigt
- Der Aktienmarkt besitzt farbliche Hervorhebungen, die den Gewinn anzeigen
- Die Benachrichtigung, dass man ein Levelup kaufen kann, ist weniger penetrant und in die EXP-Nachricht integriert
- Sollte bei `/einzahlen` der Bankautomat nicht so viel Platz haben wie eingezahlt werden soll, wird ein zusätzlicher Button angezeigt,
der so viel Geld einzahlt, bis der Bankautomat voll ist
- Mit dem `/aktien` Befehl wird die Aktien-App auf dem Händy direkt geöffnet, sodass man nicht mehr manuell durch das Handy navigieren
muss

### Auto

Expand All @@ -31,6 +39,7 @@ reibungsloser und angenehmer gestalten.
- Wenn man schleicht und ein Auto rechtsklickt, wird `/checkkfz` ausgeführt

Folgende Funktionen sind nur für Spieler ohne Premium-Rang verfügbar, da Spieler mit Premium diese Funktion vom Server aus können:

- Das Auf-/Abschließen eines Fahrzeuges wurde teilweise automatisiert (automatisches Klicken des Items im Inventar)
- Beim Rechtsklick auf das eigene Fahrzeug wird automatisch `/car lock` ausgeführt
- Steigt man in ein Fahrzeug ein, wird dieses automatisch gestartet und abgeschlossen
Expand All @@ -42,7 +51,8 @@ Folgende Funktionen sind nur für Spieler ohne Premium-Rang verfügbar, da Spiel
- Der Fraktionschat kann individuell eingefärbt werden
- Für den Rettungsdienst gibt es im Herstellungs-Inventar für Medikamente einen Button, um die benötigte Anzahl an Stoffen in den
Fraktionschat zu senden
- Für den Dealer und Schwarzmarkt wird (in der Übersicht) angezeigt, an welchem Ort der Händler gefunden wurde
- Für den Bluthändler, Dealer und Schwarzmarkt wird eine Nachricht angezeigt, wenn sich dieser in unmittelbarer Nähe befindet
- Für den Bluthändler, Dealer und Schwarzmarkt wird (in der Übersicht) angezeigt, an welchem Ort er gefunden wurde

### Jobs

Expand All @@ -58,10 +68,10 @@ Folgende Funktionen sind nur für Spieler ohne Premium-Rang verfügbar, da Spiel

### Widgets

- Aktuelles Datum und Uhrzeit
- Informationen über den PayDay (Dauer bis zum nächsten PayDay, Gehalt und Erfahrung) einschließlich Reichensteuer-Warnung
- Status des Autos (offen/abgeschlossen)
- Geld auf der Hand und auf der Bank
- Offene Notrufe

## Befehle

Expand Down
24 changes: 24 additions & 0 deletions src/main/java/de/rettichlp/ucutils/command/StockMarketCommand.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
package de.rettichlp.ucutils.command;

import com.mojang.brigadier.builder.LiteralArgumentBuilder;
import de.rettichlp.ucutils.common.registry.CommandBase;
import de.rettichlp.ucutils.common.registry.UCUtilsCommand;
import net.fabricmc.fabric.api.client.command.v2.FabricClientCommandSource;
import org.jetbrains.annotations.NotNull;

import static de.rettichlp.ucutils.UCUtils.commandService;
import static de.rettichlp.ucutils.UCUtils.storage;

@UCUtilsCommand(label = "aktien")
public class StockMarketCommand extends CommandBase {

@Override
public LiteralArgumentBuilder<FabricClientCommandSource> execute(@NotNull LiteralArgumentBuilder<FabricClientCommandSource> node) {
return node
.executes(_ -> {
storage.setStockMarketCommandRunning(true);
commandService.sendCommand("mobile");
return 1;
});
}
}
6 changes: 6 additions & 0 deletions src/main/java/de/rettichlp/ucutils/common/Storage.java
Original file line number Diff line number Diff line change
Expand Up @@ -107,6 +107,10 @@ public class Storage {
@Setter
private boolean premium = false;

@Getter
@Setter
private boolean stockMarketCommandRunning = false;

@Getter
@Setter
@Nullable
Expand Down Expand Up @@ -163,6 +167,8 @@ public void print() {
LOGGER.info("minecartEntityToHighlight: {}", this.minecartEntityToHighlight);
// premium
LOGGER.info("premium: {}", this.premium);
// stockMarketCommandRunning
LOGGER.info("stockMarketCommandRunning: {}", this.stockMarketCommandRunning);
// summerTreasurePosition
LOGGER.info("summerTreasurePosition: {}", this.summerTreasurePosition);
// team
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -92,9 +92,20 @@ protected AbstractContainerScreenMixin(Component title) {
}
}
case "ᴀᴋᴛɪᴇɴᴍᴀʀᴋᴛ", "Handy-Aktien" -> {
storage.setStockMarketCommandRunning(false);
extractStockMarketHighlight(graphics, mouseX, mouseY, a);
extractStockMarketLegend(graphics, mouseX, mouseY, a);
}
case "Telefon" -> {
if (storage.isStockMarketCommandRunning()) {
clickOnItemWithName("Apps", gameMode);
}
}
case "App-Menü" -> {
if (storage.isStockMarketCommandRunning()) {
clickOnItemWithName("Aktien", gameMode);
}
}
default -> {
if (commandService.isSuperUser()) {
LOGGER.info("Screen opened: {}", title);
Expand Down Expand Up @@ -207,6 +218,14 @@ private int getStoredAmount(@NonNull MenuAccess<T> containerScreen, int slotId)
return matcher.find() ? parseInt(matcher.group()) : 0;
}

@Unique
private void clickOnItemWithName(String itemName, MultiPlayerGameMode gameMode) {
getMenu().slots.stream()
.filter(slot -> slot.getItem().getHoverName().getString().equals(itemName))
.findFirst()
.ifPresent(slot -> gameMode.handleContainerInput(getMenu().containerId, slot.index, 0, PICKUP, player));
}

private static class CompanyShareTooltipPositioner implements ClientTooltipPositioner {

@Override
Expand Down