mirror of
https://github.com/mcMMO-Dev/mcMMO.git
synced 2024-11-24 22:26:46 +01:00
Merge branch 'master' of github.com:mcMMO-Dev/mcMMO into tridentsxbows
This commit is contained in:
commit
abcf6413f5
@ -97,6 +97,24 @@ Version 2.2.000
|
|||||||
Parties got unnecessarily complex in my absence, I have removed many party features in order to simplify parties and bring them closer to my vision. I have also added new features which should improve parties where it matters.
|
Parties got unnecessarily complex in my absence, I have removed many party features in order to simplify parties and bring them closer to my vision. I have also added new features which should improve parties where it matters.
|
||||||
About the removed party features, all the features I removed I consider poor quality features and I don't think they belong in mcMMO. Feel free to yell at me in discord if you disagree.
|
About the removed party features, all the features I removed I consider poor quality features and I don't think they belong in mcMMO. Feel free to yell at me in discord if you disagree.
|
||||||
I don't know what genius decided to make parties public by default, when I found out that parties had been changed to such a system I could barely contain my disgust. Parties are back to being private, you get invited by a party leader or party officer. That is the only way to join a party.
|
I don't know what genius decided to make parties public by default, when I found out that parties had been changed to such a system I could barely contain my disgust. Parties are back to being private, you get invited by a party leader or party officer. That is the only way to join a party.
|
||||||
|
Version 2.1.163
|
||||||
|
Fixed the translate URL pointing to the wrong place (thanks chew)
|
||||||
|
Fixed a bug where FlatFile databases would always attempt a UUID conversion task every save operation (every 10 minutes) causing console spam
|
||||||
|
mcMMO will no longer throw errors when incoming XP is below 0 (it will just silently cancel the operation)
|
||||||
|
COTW Summoned entities are now removed when the chunk they are in is unloaded (prevents some exploits)
|
||||||
|
|
||||||
|
NOTES:
|
||||||
|
I often test in SQL environments so I missed this bug, reminder to come bother me on discord if you find any annoying bugs!
|
||||||
|
Also work on T&C is going great lately, I feel great. Perhaps my depression is getting better!
|
||||||
|
|
||||||
|
Version 2.1.162
|
||||||
|
Fixed a bug where Alchemy brew events were processed after setting brew results (thanks Wolf2323)
|
||||||
|
|
||||||
|
Version 2.1.161
|
||||||
|
Fixed a bug where a bunch of text from mcMMO was never being sent and or being sent as blank messages
|
||||||
|
|
||||||
|
NOTES:
|
||||||
|
Adventure (the chat library we use) had an update that required shading in another new module, but there were no errors thrown without running a jvm debug flag and testing it, which is why I missed it. I also missed it because I don't read update notes very closely
|
||||||
Version 2.1.160
|
Version 2.1.160
|
||||||
Fixed another 9+ year old exploit
|
Fixed another 9+ year old exploit
|
||||||
Silenced a harmless "error" related to Rupture/Bleed often produced when using mcMMO and crazy enchantments together
|
Silenced a harmless "error" related to Rupture/Bleed often produced when using mcMMO and crazy enchantments together
|
||||||
|
20
pom.xml
20
pom.xml
@ -115,6 +115,7 @@
|
|||||||
<include>net.kyori:adventure-text-serializer-legacy</include>
|
<include>net.kyori:adventure-text-serializer-legacy</include>
|
||||||
<include>net.kyori:adventure-text-serializer-bungeecord</include>
|
<include>net.kyori:adventure-text-serializer-bungeecord</include>
|
||||||
<include>net.kyori:adventure-text-serializer-craftbukkit</include>
|
<include>net.kyori:adventure-text-serializer-craftbukkit</include>
|
||||||
|
<include>net.kyori:adventure-text-serializer-gson-legacy-impl</include>
|
||||||
<include>co.aikar:acf-bukkit</include>
|
<include>co.aikar:acf-bukkit</include>
|
||||||
<include>com.neetgames:mcMMO-API</include>
|
<include>com.neetgames:mcMMO-API</include>
|
||||||
<include>com.neetgames:jmal</include>
|
<include>com.neetgames:jmal</include>
|
||||||
@ -123,6 +124,10 @@
|
|||||||
</artifactSet>
|
</artifactSet>
|
||||||
<!-- <dependencyReducedPomLocation>${project.build.directory}/dependency-reduced-pom.xml</dependencyReducedPomLocation>-->
|
<!-- <dependencyReducedPomLocation>${project.build.directory}/dependency-reduced-pom.xml</dependencyReducedPomLocation>-->
|
||||||
<relocations>
|
<relocations>
|
||||||
|
<relocation>
|
||||||
|
<pattern>net.kyori.adventure</pattern>
|
||||||
|
<shadedPattern>com.gmail.nossr50.mcmmo.kyori.adventure</shadedPattern>
|
||||||
|
</relocation>
|
||||||
<relocation>
|
<relocation>
|
||||||
<pattern>com.neetgames.neetlib</pattern>
|
<pattern>com.neetgames.neetlib</pattern>
|
||||||
<shadedPattern>com.gmail.nossr50.neetlib</shadedPattern>
|
<shadedPattern>com.gmail.nossr50.neetlib</shadedPattern>
|
||||||
@ -147,10 +152,6 @@
|
|||||||
<pattern>org.apache.tomcat</pattern>
|
<pattern>org.apache.tomcat</pattern>
|
||||||
<shadedPattern>com.gmail.nossr50.mcmmo.database.tomcat</shadedPattern>
|
<shadedPattern>com.gmail.nossr50.mcmmo.database.tomcat</shadedPattern>
|
||||||
</relocation>
|
</relocation>
|
||||||
<relocation>
|
|
||||||
<pattern>net.kyori.adventure</pattern>
|
|
||||||
<shadedPattern>com.gmail.nossr50.mcmmo.kyori.adventure</shadedPattern>
|
|
||||||
</relocation>
|
|
||||||
<relocation>
|
<relocation>
|
||||||
<pattern>org.bstats</pattern>
|
<pattern>org.bstats</pattern>
|
||||||
<shadedPattern>com.gmail.nossr50.mcmmo.metrics.bstat</shadedPattern>
|
<shadedPattern>com.gmail.nossr50.mcmmo.metrics.bstat</shadedPattern>
|
||||||
@ -229,17 +230,17 @@
|
|||||||
<dependency>
|
<dependency>
|
||||||
<groupId>net.kyori</groupId>
|
<groupId>net.kyori</groupId>
|
||||||
<artifactId>adventure-text-serializer-gson</artifactId>
|
<artifactId>adventure-text-serializer-gson</artifactId>
|
||||||
<version>4.3.0-SNAPSHOT</version>
|
<version>4.3.0</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>net.kyori</groupId>
|
<groupId>net.kyori</groupId>
|
||||||
<artifactId>adventure-api</artifactId>
|
<artifactId>adventure-api</artifactId>
|
||||||
<version>4.2.0</version>
|
<version>4.3.0</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>net.kyori</groupId>
|
<groupId>net.kyori</groupId>
|
||||||
<artifactId>adventure-nbt</artifactId>
|
<artifactId>adventure-nbt</artifactId>
|
||||||
<version>4.2.0-SNAPSHOT</version>
|
<version>4.3.0</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>net.kyori</groupId>
|
<groupId>net.kyori</groupId>
|
||||||
@ -256,6 +257,11 @@
|
|||||||
<artifactId>adventure-platform-common</artifactId>
|
<artifactId>adventure-platform-common</artifactId>
|
||||||
<version>4.0.0-SNAPSHOT</version>
|
<version>4.0.0-SNAPSHOT</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>net.kyori</groupId>
|
||||||
|
<artifactId>adventure-text-serializer-gson-legacy-impl</artifactId>
|
||||||
|
<version>4.3.0</version>
|
||||||
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.apache.maven.scm</groupId>
|
<groupId>org.apache.maven.scm</groupId>
|
||||||
<artifactId>maven-scm-provider-gitexe</artifactId>
|
<artifactId>maven-scm-provider-gitexe</artifactId>
|
||||||
|
@ -125,8 +125,6 @@ public class ExperienceManager {
|
|||||||
* @param xp Experience amount to process
|
* @param xp Experience amount to process
|
||||||
*/
|
*/
|
||||||
public void beginXpGain(@NotNull PrimarySkillType primarySkillType, float xp, @NotNull XPGainReason xpGainReason, @NotNull XPGainSource xpGainSource) {
|
public void beginXpGain(@NotNull PrimarySkillType primarySkillType, float xp, @NotNull XPGainReason xpGainReason, @NotNull XPGainSource xpGainSource) {
|
||||||
Validate.isTrue(xp >= 0.0, "XP gained should be greater than or equal to zero.");
|
|
||||||
|
|
||||||
if (xp <= 0.0) {
|
if (xp <= 0.0) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -6,7 +6,7 @@ public class McMMOUrl {
|
|||||||
public static final String urlPatreon = "https://www.patreon.com/nossr50";
|
public static final String urlPatreon = "https://www.patreon.com/nossr50";
|
||||||
public static final String urlWiki = "https://www.mcmmo.org/wiki/";
|
public static final String urlWiki = "https://www.mcmmo.org/wiki/";
|
||||||
public static final String urlSpigot = "http://spigot.mcmmo.org";
|
public static final String urlSpigot = "http://spigot.mcmmo.org";
|
||||||
public static final String urlTranslate = "https://www.mcmmo.org/translate/";
|
public static final String urlTranslate = "https://translate.mcmmo.org/";
|
||||||
|
|
||||||
public static String getUrl(McMMOWebLinks webLinks)
|
public static String getUrl(McMMOWebLinks webLinks)
|
||||||
{
|
{
|
||||||
|
30
src/main/java/com/gmail/nossr50/listeners/ChunkListener.java
Normal file
30
src/main/java/com/gmail/nossr50/listeners/ChunkListener.java
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
package com.gmail.nossr50.listeners;
|
||||||
|
|
||||||
|
import com.gmail.nossr50.mcMMO;
|
||||||
|
import com.gmail.nossr50.util.compat.layers.persistentdata.MobMetaFlagType;
|
||||||
|
import org.bukkit.entity.Entity;
|
||||||
|
import org.bukkit.entity.LivingEntity;
|
||||||
|
import org.bukkit.event.EventHandler;
|
||||||
|
import org.bukkit.event.Listener;
|
||||||
|
import org.bukkit.event.world.ChunkUnloadEvent;
|
||||||
|
|
||||||
|
public class ChunkListener implements Listener {
|
||||||
|
|
||||||
|
@EventHandler(ignoreCancelled = true)
|
||||||
|
public void onChunkUnload(ChunkUnloadEvent event) {
|
||||||
|
for(Entity entity : event.getChunk().getEntities()) {
|
||||||
|
if(entity instanceof LivingEntity) {
|
||||||
|
LivingEntity livingEntity = (LivingEntity) entity;
|
||||||
|
if(mcMMO.getCompatibilityManager().getPersistentDataLayer().hasMobFlag(MobMetaFlagType.COTW_SUMMONED_MOB, livingEntity)) {
|
||||||
|
|
||||||
|
//Remove from existence
|
||||||
|
if(livingEntity.isValid()) {
|
||||||
|
mcMMO.getCompatibilityManager().getPersistentDataLayer().removeMobFlags(livingEntity);
|
||||||
|
livingEntity.setHealth(0);
|
||||||
|
livingEntity.remove();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -559,6 +559,7 @@ public class mcMMO extends JavaPlugin {
|
|||||||
pluginManager.registerEvents(new InventoryListener(this), this);
|
pluginManager.registerEvents(new InventoryListener(this), this);
|
||||||
pluginManager.registerEvents(new SelfListener(this), this);
|
pluginManager.registerEvents(new SelfListener(this), this);
|
||||||
pluginManager.registerEvents(new WorldListener(this), this);
|
pluginManager.registerEvents(new WorldListener(this), this);
|
||||||
|
pluginManager.registerEvents(new ChunkListener(), this);
|
||||||
// pluginManager.registerEvents(new CommandListener(this), this);
|
// pluginManager.registerEvents(new CommandListener(this), this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -102,6 +102,7 @@ public class UUIDUpdateAsyncTask implements Runnable {
|
|||||||
if (position == userNames.size()) {
|
if (position == userNames.size()) {
|
||||||
mcMMO.getUpgradeManager().setUpgradeCompleted(UpgradeType.ADD_UUIDS);
|
mcMMO.getUpgradeManager().setUpgradeCompleted(UpgradeType.ADD_UUIDS);
|
||||||
awaiter.countDown();
|
awaiter.countDown();
|
||||||
|
plugin.getLogger().info("UUID checks completed");
|
||||||
} else
|
} else
|
||||||
this.runTaskLaterAsynchronously(plugin, Misc.TICK_CONVERSION_FACTOR * DELAY_PERIOD); // Schedule next batch
|
this.runTaskLaterAsynchronously(plugin, Misc.TICK_CONVERSION_FACTOR * DELAY_PERIOD); // Schedule next batch
|
||||||
}
|
}
|
||||||
|
@ -113,6 +113,7 @@ public final class AlchemyPotionBrewer {
|
|||||||
}
|
}
|
||||||
|
|
||||||
List<AlchemyPotion> inputList = new ArrayList<>();
|
List<AlchemyPotion> inputList = new ArrayList<>();
|
||||||
|
ItemStack[] outputList = new ItemStack[3];
|
||||||
|
|
||||||
for (int i = 0; i < 3; i++) {
|
for (int i = 0; i < 3; i++) {
|
||||||
ItemStack item = inventory.getItem(i);
|
ItemStack item = inventory.getItem(i);
|
||||||
@ -127,7 +128,7 @@ public final class AlchemyPotionBrewer {
|
|||||||
inputList.add(input);
|
inputList.add(input);
|
||||||
|
|
||||||
if (output != null) {
|
if (output != null) {
|
||||||
inventory.setItem(i, output.toItemStack(item.getAmount()).clone());
|
outputList[i] = output.toItemStack(item.getAmount()).clone();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -138,6 +139,12 @@ public final class AlchemyPotionBrewer {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
for (int i = 0; i < 3; i++) {
|
||||||
|
if(outputList[i] != null) {
|
||||||
|
inventory.setItem(i, outputList[i]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
removeIngredient(inventory, player);
|
removeIngredient(inventory, player);
|
||||||
|
|
||||||
for (AlchemyPotion input : inputList) {
|
for (AlchemyPotion input : inputList) {
|
||||||
|
@ -570,6 +570,7 @@ public class TamingManager extends SkillManager {
|
|||||||
|
|
||||||
//Remove from existence
|
//Remove from existence
|
||||||
if(livingEntity != null && livingEntity.isValid()) {
|
if(livingEntity != null && livingEntity.isValid()) {
|
||||||
|
mcMMO.getCompatibilityManager().getPersistentDataLayer().removeMobFlags(livingEntity);
|
||||||
livingEntity.setHealth(0);
|
livingEntity.setHealth(0);
|
||||||
livingEntity.remove();
|
livingEntity.remove();
|
||||||
}
|
}
|
||||||
|
@ -11,3 +11,4 @@ Upgrades_Finished:
|
|||||||
FIX_SPELLING_NETHERITE_REPAIR: false
|
FIX_SPELLING_NETHERITE_REPAIR: false
|
||||||
FIX_NETHERITE_SALVAGE_QUANTITIES: false
|
FIX_NETHERITE_SALVAGE_QUANTITIES: false
|
||||||
ADD_SQL_2_2: false
|
ADD_SQL_2_2: false
|
||||||
|
ADD_UUIDS: false
|
||||||
|
Loading…
Reference in New Issue
Block a user