Skip to content

Commit

Permalink
Added ride counters in rides menu, updated global config, reworked lo…
Browse files Browse the repository at this point in the history
…re system for menus, fixed spawn entity packet for version later than 1.20.4
  • Loading branch information
JVerbruggen committed Sep 7, 2024
1 parent 8ba0d34 commit 4e740bc
Show file tree
Hide file tree
Showing 32 changed files with 963 additions and 335 deletions.
2 changes: 2 additions & 0 deletions docs/global_config.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,4 +9,6 @@ plugins/

## Attributes
- **worldName**: World name for jrides to work with (Only 1 world is supported)
- **ridesMenu**: Settings for the `/jrides rides` menu
- - **showCounters**: Whether ride counters are shown per ride (in the menu)

1 change: 1 addition & 0 deletions docs/language.md
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,7 @@ MENU_RIDE_OVERVIEW_STATUS_OPEN | "This ride is currently opened"
MENU_RIDE_OVERVIEW_STATUS_CLOSED | "This ride is currently closed"
MENU_RIDE_OVERVIEW_STATUS_MAINTENANCE | "This ride is in maintenance"
MENU_RIDE_CONTROL_TITLE | "Ride control menu"
MENU_RIDE_COUNTER_INDICATOR | "&7Ride counter: %RIDE_COUNT%"
MENU_ADMIN_RIDE_CONTROL_TITLE | "Admin ride control menu"
BUTTON_CLAIM_CABIN | "Claim operating cabin"
BUTTON_CABIN_CLAIMED | "Claim operating cabin"
Expand Down
1 change: 0 additions & 1 deletion src/main/java/com/jverbruggen/jrides/JRidesPlugin.java
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,6 @@
import com.jverbruggen.jrides.config.GlobalConfig;
import com.jverbruggen.jrides.language.LanguageFile;
import com.jverbruggen.jrides.logging.JRidesLogger;
import com.jverbruggen.jrides.logging.LogType;
import com.jverbruggen.jrides.models.entity.BroadcastMessageReceiver;
import com.jverbruggen.jrides.models.entity.MessageReceiver;
import com.jverbruggen.jrides.packets.PacketSender;
Expand Down
4 changes: 2 additions & 2 deletions src/main/java/com/jverbruggen/jrides/Main.java
Original file line number Diff line number Diff line change
Expand Up @@ -29,14 +29,15 @@
import com.jverbruggen.jrides.models.map.ridecounter.RideCounterMapListener;
import com.jverbruggen.jrides.models.entity.listener.PassengerListener;
import com.jverbruggen.jrides.models.ride.count.RideCounterRecordRideCollection;
import com.jverbruggen.jrides.packets.listener.VirtualEntityPacketListener;
import com.jverbruggen.jrides.state.player.BukkitPlayerJoinEventListener;
import com.jverbruggen.jrides.models.entity.Player;
import com.jverbruggen.jrides.models.entity.agent.MessageAgentManagerListener;
import com.jverbruggen.jrides.models.map.rideoverview.RideOverviewMapListener;
import com.jverbruggen.jrides.models.ride.count.RideCounterListener;
import com.jverbruggen.jrides.models.ride.count.RideCounterRecord;
import com.jverbruggen.jrides.models.ride.count.RideCounterRecordCollection;
import com.jverbruggen.jrides.packets.listener.VirtualEntityPacketListener;
import com.jverbruggen.jrides.packets.listener.VirtualEntityPacketListener_1_19_2;
import com.jverbruggen.jrides.serviceprovider.ServiceProvider;
import com.jverbruggen.jrides.serviceprovider.configuration.ServiceProviderConfigurator;
import com.jverbruggen.jrides.state.player.PlayerManager;
Expand All @@ -48,7 +49,6 @@
import com.jverbruggen.jrides.state.viewport.ViewportListener;
import com.jverbruggen.jrides.state.viewport.ViewportManager;
import org.bukkit.Bukkit;
import org.bukkit.World;
import org.bukkit.configuration.serialization.ConfigurationSerialization;
import org.bukkit.plugin.PluginManager;
import org.bukkit.plugin.ServicePriority;
Expand Down
14 changes: 12 additions & 2 deletions src/main/java/com/jverbruggen/jrides/config/GlobalConfig.java
Original file line number Diff line number Diff line change
Expand Up @@ -18,29 +18,39 @@
package com.jverbruggen.jrides.config;

import com.jverbruggen.jrides.config.coaster.objects.BaseConfig;
import com.jverbruggen.jrides.config.global.RidesMenuConfig;
import org.bukkit.Bukkit;
import org.bukkit.configuration.ConfigurationSection;
import org.bukkit.configuration.file.YamlConfiguration;

public class GlobalConfig extends BaseConfig {
private final String worldName;
private final RidesMenuConfig ridesMenuConfig;

public GlobalConfig(String worldName) {
public GlobalConfig(String worldName, RidesMenuConfig ridesMenuConfig) {
this.worldName = worldName;
this.ridesMenuConfig = ridesMenuConfig;
}

public String getWorldName() {
return worldName;
}

public RidesMenuConfig getRidesMenuConfig() {
return ridesMenuConfig;
}

public static void fillDefaults(YamlConfiguration yamlConfiguration){
String worldName = Bukkit.getWorlds().get(0).getName();
yamlConfiguration.set("config.worldName", worldName);

RidesMenuConfig.fillDefaults(yamlConfiguration);
}

public static GlobalConfig fromConfigurationSection(ConfigurationSection configurationSection){
String worldName = getString(configurationSection, "worldName");
RidesMenuConfig ridesMenuConfig = RidesMenuConfig.fromConfigurationSection(getConfigurationSection(configurationSection, "ridesMenu"));

return new GlobalConfig(worldName);
return new GlobalConfig(worldName, ridesMenuConfig);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
/************************************************************************************************************
* GPLv3 License *
* *
* Copyright (c) 2024-2024 JVerbruggen *
* https://github.com/JVerbruggen/jrides *
* *
* This software is protected under the GPLv3 license, *
* that can be found in the project's LICENSE file. *
* *
* In short, permission is hereby granted that anyone can copy, modify and distribute this software. *
* You have to include the license and copyright notice with each and every distribution. You can use *
* this software privately or commercially. Modifications to the code have to be indicated, and *
* distributions of this code must be distributed with the same license, GPLv3. The software is provided *
* without warranty. The software author or license can not be held liable for any damages *
* inflicted by the software. *
************************************************************************************************************/

package com.jverbruggen.jrides.config.global;

import com.jverbruggen.jrides.config.coaster.objects.BaseConfig;
import org.bukkit.configuration.ConfigurationSection;
import org.bukkit.configuration.file.YamlConfiguration;

public class RidesMenuConfig extends BaseConfig {
private final boolean showCounters;

public RidesMenuConfig(boolean showCounters) {
this.showCounters = showCounters;
}

public boolean shouldShowCounters() {
return showCounters;
}

public static void fillDefaults(YamlConfiguration yamlConfiguration){
yamlConfiguration.set("config.ridesMenu.showCounters", true);
}

public static RidesMenuConfig fromConfigurationSection(ConfigurationSection configurationSection){
boolean showCounters = getBoolean(configurationSection, "showCounters", true);

return new RidesMenuConfig(showCounters);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -22,17 +22,17 @@
import org.bukkit.Sound;

public abstract class BaseRideControlButton implements MenuButton {
protected void setButtonVisual(ButtonVisual visual){
visual.clearUpdate();
private ButtonVisual buttonVisual;

if(visual.needsFullItemStackReload()){
setItemStack(visual.toItemStack());
return;
}

changeMaterial(visual.getButtonMaterial());
changeDisplayName(visual.getButtonDisplayNameColor() + visual.getValue());
changeLore(visual.getLore());
public void setButtonVisual(ButtonVisual buttonVisual) {
buttonVisual.clearUpdate();
this.buttonVisual = buttonVisual;
}

@Override
public ButtonVisual getActiveVisual() {
return buttonVisual;
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,22 +17,22 @@

package com.jverbruggen.jrides.control.uiinterface.menu.button;

import com.jverbruggen.jrides.api.JRidesPlayer;
import com.jverbruggen.jrides.control.DispatchLock;
import com.jverbruggen.jrides.models.menu.*;
import com.jverbruggen.jrides.models.menu.ButtonVisual;
import com.jverbruggen.jrides.control.uiinterface.menu.button.controller.ButtonUpdateController;
import com.jverbruggen.jrides.models.entity.Player;
import com.jverbruggen.jrides.models.menu.lore.LoreSet;
import com.jverbruggen.jrides.serviceprovider.ServiceProvider;
import org.bukkit.ChatColor;
import org.bukkit.Material;
import org.bukkit.Sound;
import org.bukkit.inventory.ItemStack;

import java.util.List;
import java.util.UUID;

public class LockResembledControlButton extends BaseRideControlButton implements MenuButton {
private MenuButton parentButton;
private final MenuButton parentButton;
private boolean buttonOkState;
private final ButtonVisual buttonBlockedVisual;
private final ButtonVisual buttonOkVisual;
Expand Down Expand Up @@ -63,6 +63,11 @@ public void sendUpdate(){
parentButton.sendUpdate();
}

@Override
public void forceUpdate() {
parentButton.forceUpdate();
}

public void changeDisplayName(String displayName){
parentButton.changeDisplayName(displayName);
}
Expand All @@ -75,12 +80,12 @@ public void changeTitleColor(ChatColor color){
parentButton.changeTitleColor(color);
}

public void changeLore(List<String> lore){
parentButton.changeLore(lore);
public void changeLore(LoreSet loreSet){
parentButton.changeLore(loreSet);
}

public ItemStack getItemStack(){
return parentButton.getItemStack();
public ItemStack getItemStack(JRidesPlayer player){
return parentButton.getItemStack(player);
}

public void setItemStack(ItemStack itemStack) {
Expand Down Expand Up @@ -115,6 +120,8 @@ public void press(Player player){
private void updateState(){
buttonOkState = isLockOk();
setButtonVisual(getActiveVisual());
updateVisual();
forceUpdate();
sendUpdate();
}

Expand All @@ -125,9 +132,18 @@ public ButtonVisual getActiveVisual() {
}else return buttonBlockedVisual;
}

@Override
public void setActiveVisual(ButtonVisual buttonVisual) {

}

@Override
public void updateVisual() {
setButtonVisual(getActiveVisual());
sendUpdate();
ButtonVisual buttonVisual = getActiveVisual();
buttonVisual.clearUpdate();

parentButton.setActiveVisual(buttonVisual);
// forceUpdate();
// sendUpdate();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,10 @@

package com.jverbruggen.jrides.control.uiinterface.menu.button.common;

import com.jverbruggen.jrides.api.JRidesPlayer;
import com.jverbruggen.jrides.models.entity.Player;
import com.jverbruggen.jrides.models.menu.ButtonVisual;
import com.jverbruggen.jrides.models.menu.lore.LoreSet;
import org.bukkit.ChatColor;
import org.bukkit.Material;
import org.bukkit.inventory.ItemStack;
Expand Down Expand Up @@ -55,8 +58,8 @@ public Material getButtonMaterial() {
return activeVisual.getButtonMaterial();
}

public ItemStack toItemStack(){
return activeVisual.toItemStack();
public ItemStack toItemStack(JRidesPlayer player){
return activeVisual.toItemStack(player);
}

@Override
Expand All @@ -71,8 +74,8 @@ public boolean hasUpdate() {
}

@Override
public List<String> getLore() {
return activeVisual.getLore();
public List<String> getLore(JRidesPlayer player) {
return activeVisual.getLore(player);
}

@Override
Expand All @@ -85,6 +88,30 @@ public boolean needsFullItemStackReload() {
return false;
}

@Override
public void changeDisplayName(String displayName) {
blinkLowVisual.changeDisplayName(displayName);
blinkHighVisual.changeDisplayName(displayName);
}

@Override
public void changeMaterial(Material material) {
blinkLowVisual.changeMaterial(material);
blinkHighVisual.changeMaterial(material);
}

@Override
public void changeTitleColor(ChatColor color) {
blinkLowVisual.changeTitleColor(color);
blinkHighVisual.changeTitleColor(color);
}

@Override
public void changeLore(LoreSet loreSet) {
blinkLowVisual.changeLore(loreSet);
blinkHighVisual.changeLore(loreSet);
}

@Override
public String getValue() {
return activeVisual.getValue();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,10 +17,12 @@

package com.jverbruggen.jrides.control.uiinterface.menu.button.common;

import com.jverbruggen.jrides.api.JRidesPlayer;
import com.jverbruggen.jrides.control.controller.RideController;
import com.jverbruggen.jrides.items.ItemStackFactory;
import com.jverbruggen.jrides.models.entity.Player;
import com.jverbruggen.jrides.models.menu.ButtonVisual;
import com.jverbruggen.jrides.models.menu.lore.LoreSet;
import org.bukkit.ChatColor;
import org.bukkit.Material;
import org.bukkit.inventory.ItemStack;
Expand Down Expand Up @@ -80,7 +82,7 @@ public String getValue() {
}

@Override
public ItemStack toItemStack() {
public ItemStack toItemStack(JRidesPlayer player) {
if(!isBeingOperated()){
return ItemStackFactory.getRideControlButtonStack(getButtonMaterial(), getValue());
}
Expand All @@ -99,7 +101,7 @@ public boolean hasUpdate() {
}

@Override
public List<String> getLore() {
public List<String> getLore(JRidesPlayer player) {
return List.of();
}

Expand All @@ -112,4 +114,24 @@ public void clearUpdate() {
public boolean needsFullItemStackReload() {
return true;
}

@Override
public void changeDisplayName(String displayName) {

}

@Override
public void changeMaterial(Material material) {

}

@Override
public void changeTitleColor(ChatColor color) {

}

@Override
public void changeLore(LoreSet loreSet) {

}
}
Loading

0 comments on commit 4e740bc

Please sign in to comment.