Code Monkey home page Code Monkey logo

bluebridge's Introduction

BlueBridge

BlueBridge is a modular bridge plugin for Bukkit (or Spigot/Paper) servers with the aim to bring multiple minecraft region plugins to BlueMap (Currently, WorldGuard and GriefPrevention are supported but there's always more on its way and the issues are open for ideas and suggestions).

How to use

Install BlueBridgeCore and the addons you need just like any other plugin, configure them to fit your needs and you are ready to go!
For more detailed information, check out the wiki!

Download

Take a look at the releases section for direct downloads of the plugin jar files or build the plugin yourself by cloning this repo and executing "gradlew build" from the main directory.

bluebridge's People

Contributors

artshade avatar aurelien30000 avatar mark-225 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

bluebridge's Issues

Marker file gets flushed after reload

I found another bug and thought it would be better to open up a new issue.

If you do a reload of BlueMap, the marker file is newly generated and it's empty then.
After a server restart it retrieves the data from worldguard and fills the marker file again with information, at least for the overworld.

My currently used workaround is to copy the content of the marker file before reloading and filling it again afterwards. Then a refresh of the browser is enough to bring back the markings on BlueMap.

Using the latest version of all involved plugins:

BlueBridge (v1.3-alpha)
BlueMap (1.5.5)
WorldGuard (7.0.5)
Paper 1.16.5 (Build #779)

BlueBridgeCore with WorldGuard - High Performance Usage

Hi Everyone,

we are using BlueMap (Version 1.5.0) with your Plugin BlueBridgeCore and BlueBridgeWG (Both Version 1.2.1).

In our timings report we saw a very high usage from BlueBridgeCore. Our WorldGuard File contains about 1000 Regions.
We set the UpdateInterval to 1200 Ticks, that should mean, every 60 Seconds Update.
This Update isn't scheduled as Asynchron Task, so the CPU Usage from Core 1 is during the Update at a peak from 100% for several seconds. This leads to a significant TPS drop during the Update.

In the timings Report here you can see the high usage of 97% usage of all Plugins. Is it possible to Update the WorldGuard Region asynchron or only event-based? It doesn't make sense so import the whole WorldGuard File every 60 Seconds, but if we create a new Region, we don't want to wait until next server reboot or every hour to Import.

BLueBridgeCore

If you need any further Details, please let me know.

Kind Regards
Cola

[Bug] Can't overwrite min/max distances

From the wiki:

Name Datatype Description Default Can be overwritten?
minDistancemaxDistance Integer When set to any value greater than 0, determines the min/max distance of the camera to the region for it to be visible. -1-1 Yes

Every time I change "minDistance" and "maxDistance" values in my bluemap markers.json, it get's reset to the values in my BlueBridge Core config.yml

Is this a bug or is there an other way to overwrite this values for a specific region?

Server Version: purpur 1.18.1 #1502
Bluemap Version: 1.7.2
BlueBridgeCore Version: 1.3.1
BlueBridgeWG Version: 1.3.1

Color-Flags are not saved

After setting any of the color flags 'bluemap-color' or 'bluemap-color-outline' there is nothing changing on the map itself.
I can set the color directly in the marker file but after changing any other flag like 'bluemap-render-height' for example, the color is set back again to the default value and not to the value defined in the region flag. The value in the region flag itself is never overriden by the way, so it appears that its just not setting the values in the marker file.

Using the latest version of all involved plugins:

BlueBridge (v1.3.1-alpha)
BlueMap (1.5.5)
WorldGuard (7.0.5)
Paper 1.16.5 (Build #779)

More worldguard replacement variables.

I would appreciate the ability to add the dimensions to worldguard regions.

The primary reason for using the display for us is to list plots available.

The X and Z width/breadth is readily apparent by viewing them on the map, but having them directly listed would be useful for cuboid regions.

The option to have a 'height' and 'depth' display, which could be the y component, offset by a 'sea-level' flag or value, (or worst case, just the y value)

Plans for a partial rewrite

Now that BlueMap's API has drastically changed, there are a few things about the design of the plugin that just don't seem necessary anymore, especially related to the core module and its communication with the addons.

A list of things that were once necessary but are now just confusing, limiting or even adding computational overhead (might be expanded):

Region Snapshots

Region snapshots were necessary because in API v1, it was beneficial to collect as many marker updates as possible before actually applying them. You also couldn't create any Marker instances in advance and save them for later, because they had to be linked to a MarkerAPI instance.
Just letting the addons generate Marker objects directly would not only remove an unnecessary class but it would also allow for any of BlueMap's current or future marker types to be used by addons.

The update task

The global update task was a performance benefit for the same reasons stated above: It allowed to update all markers of all addons in just one IO operation.
Now that that is completely irrelevant, addons can just notify the core module, if there are changes. Similar to how "active" addons are currently doing it but the markers would also be able to update instantly. That way, addons that benefit from region/claim modification events (currently GriefPrevention) can still use the events in the same way while passive addons that were previously polled in regular intervals could just schedule their own repeating tasks using the same entry point in the core module.

Filtering marker changes

Also related to the IO changes, it is no longer beneficial to filter which regions have actually changed before applying the markers.
Just replacing a marker instance with the updated one and ignoring their content is most likely not slower than comparing each marker with its old instance before replacing it. BlueMap now serializes the entire marker map in regular intervals, so this computation can't be sped up by minimizing updates anyways.

1.21

Do you have plans to update this plugin to 1.21?

Edit 12/08/24: 1.21.1

BlueBridgeGP uses a deprecated event that affects server performance

BlueBridgeGP vv1.3.1-alpha" has registered a listener for me.ryanhamshire.GriefPrevention.events.ClaimModifiedEvent on method "public void de.mark225.bluebridge.griefprevention.addon.listener.GriefPreventionListener.onClaimModified(me.ryanhamshire.GriefPrevention.events.ClaimModifiedEvent)", but the event is Deprecated. "Server performance will be affected"; please notify the authors [Mark_225, Aurelien30000].

As requested by grief prevention, I'm opening an issue. Let me know if I can be off any help

WorldGuard random region color

How about making the region colors in WorldGuard random, so that all regions are visually distinguishable from each other, and players don't have to manually change the region color themselves? It can be done so that each region is assigned its own random color, or each player is assigned a random color, and all their regions are of that color.

Rework handling of optional parameters of RegionSnapshots

Just a reminder for myself because I noticed that the constructor parameters are getting really messy on RegionSnapshots.
Will probably make a RegionSnapshot Builder that requires the addon config and mandatory parameters (like id, addon, etc.) and provides optional setters for everything else. If something is not set in the builder, the actual RegionSnapshot will just be initialized with the config's default values. That way, the messy constructor would only be needed once in the Builder's build method.

A way to override the template based on region

It would be cool to be able to override the html template used based on region.

The most flexible way I propose is being able to list multiple templates, then have a region flag which selects which template to use.

Deprecated event listener

[13:11:08 WARN]: [BlueBridgeGP] "BlueBridgeGP v2.1" has registered a listener for me.ryanhamshire.GriefPrevention.events.ClaimModifiedEvent on method "public void de.mark225.bluebridge.griefprevention.addon.listener.GriefPreventionListener.onClaimModified(me.ryanhamshire.GriefPrevention.events.ClaimModifiedEvent)", but the event is Deprecated. "ClaimModifiedEvent will be removed in favor of ClaimResizeEvent"; please notify the authors [Mark_225, Aurelien30000].

Startup Error DistanceRangedMarker

Dear all,

we receive an startup error on Paper 1.19.2 and BlueMap 3.0:

[04:26:04] [Server thread/INFO]: [BlueBridgeCore] Enabling BlueBridgeCore vv1.3.1-alpha
[04:26:04] [Server thread/ERROR]: Error occurred while enabling BlueBridgeCore vv1.3.1-alpha (Is it up to date?)
java.lang.NoClassDefFoundError: de/bluecolored/bluemap/api/marker/DistanceRangedMarker
	at de.mark225.bluebridge.core.BlueBridgeCore.onEnable(BlueBridgeCore.java:39) ~[BlueBridgeCore-v1.3.1-alpha.jar:?]
	at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:264) ~[paper-api-1.19.2-R0.1-SNAPSHOT.jar:?]
	at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:370) ~[paper-api-1.19.2-R0.1-SNAPSHOT.jar:?]
	at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:542) ~[paper-api-1.19.2-R0.1-SNAPSHOT.jar:?]
	at org.bukkit.craftbukkit.v1_19_R1.CraftServer.enablePlugin(CraftServer.java:565) ~[paper-1.19.2.jar:git-Paper-130]
	at org.bukkit.craftbukkit.v1_19_R1.CraftServer.enablePlugins(CraftServer.java:479) ~[paper-1.19.2.jar:git-Paper-130]
	at net.minecraft.server.MinecraftServer.loadWorld0(MinecraftServer.java:636) ~[paper-1.19.2.jar:git-Paper-130]
	at net.minecraft.server.MinecraftServer.loadLevel(MinecraftServer.java:422) ~[paper-1.19.2.jar:git-Paper-130]
	at net.minecraft.server.dedicated.DedicatedServer.initServer(DedicatedServer.java:306) ~[paper-1.19.2.jar:git-Paper-130]
	at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:1125) ~[paper-1.19.2.jar:git-Paper-130]
	at net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:305) ~[paper-1.19.2.jar:git-Paper-130]
	at java.lang.Thread.run(Thread.java:833) ~[?:?]
Caused by: java.lang.ClassNotFoundException: de.bluecolored.bluemap.api.marker.DistanceRangedMarker
	at org.bukkit.plugin.java.PluginClassLoader.loadClass0(PluginClassLoader.java:151) ~[paper-api-1.19.2-R0.1-SNAPSHOT.jar:?]
	at org.bukkit.plugin.java.PluginClassLoader.loadClass(PluginClassLoader.java:103) ~[paper-api-1.19.2-R0.1-SNAPSHOT.jar:?]
	at java.lang.ClassLoader.loadClass(ClassLoader.java:520) ~[?:?]
	... 12 more
[04:26:04] [Server thread/INFO]: [BlueBridgeCore] Disabling BlueBridgeCore vv1.3.1-alpha

Kind regards
Cola

Flagname with colors

Hey,

I'm currently using protectionstones and bluemap. I am using this flag in the BlueBridgeWG:
${flag:ps-name} But it will also show the color/markup.
image
What can I do to remove these?

WorldBorder is unnamed

WorldBorder is unnamed
The name settings have no effect on the map.

Screenshot 2024-04-12 000649

# Markerset display name in the sidebar of Bluemap's webinterface
markerSetName: "WorldBorder"

# Name of World border markers (Appears in the marker section in BlueMap's menu and when the user clicks exactly on the world border)
markerLabel: "WorldBorder"

# Overrides the default outline color from BlueBridgeCore's config.yml
defaultOutlineColor: "e700f3"

Marker not updating

When using Worldguard to define regions, a marker in the bluemap should be created after some time.
Unfortunately this is not working for the dimension "world_nether".

The console is stating, that the changes done to worldguard have been saved to background but the marker is never generated .
Using the latest version of all involved plugins:

  • BlueBridge (v1.3-alpha)
  • BlueMap (1.5.5)
  • WorldGuard (7.0.5)
  • Paper 1.16.5 (Build #779)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.