diff --git a/README.md b/README.md
index f312154ac..4b0acd109 100644
--- a/README.md
+++ b/README.md
@@ -37,7 +37,7 @@
 
 ##### Running requirements:
 >- Java 1.8
->- TacoSpigot, PaperSpigot or Spigot (1.7.10, 1.8.X, 1.9.X, 1.10.X, 1.11.X)<br>
+>- TacoSpigot, PaperSpigot or Spigot (1.7.10, 1.8.X, 1.9.X, 1.10.X, 1.11.X, 1.12.X)<br>
    (In case you use Thermos, Cauldron or similar, you have to update the SpecialSource library to support Java 8 plugins.
    HowTo: https://github.com/games647/FastLogin/issues/111#issuecomment-272331347)
 >- ProtocolLib (optional, required by some features)
diff --git a/pom.xml b/pom.xml
index 4075dd567..77ce9b564 100644
--- a/pom.xml
+++ b/pom.xml
@@ -220,7 +220,7 @@
                 than already loaded libs (i.e. by Mojang -> gson)
                 -->
                 <executions>
-                    <!-- Spigot 1.8+ -->
+                    <!-- Spigot 1.12+ -->
                     <execution>
                         <id>spigot-shade</id>
                         <phase>package</phase>
@@ -281,7 +281,7 @@
                             <outputFile>target/${project.finalName}-spigot.jar</outputFile>
                         </configuration>
                     </execution>
-                    <!-- 1.7.10 and lower -->
+                    <!-- 1.11.2 and lower -->
                     <execution>
                         <id>legacy-shade</id>
                         <phase>package</phase>
@@ -290,7 +290,7 @@
                         </goals>
                         <configuration>
                             <relocations>
-                                <!-- Include all google libraries, because they are not available before 1.8 -->
+                                <!-- Include all google libraries, because they are not available before 1.12 -->
                                 <relocation>
                                     <pattern>com.google</pattern>
                                     <shadedPattern>fr.xephi.authme.libs.google</shadedPattern>
@@ -469,7 +469,7 @@
         <dependency>
             <groupId>com.google.guava</groupId>
             <artifactId>guava</artifactId>
-            <version>17.0</version>
+            <version>21.0</version>
             <scope>compile</scope>
             <optional>true</optional>
         </dependency>
diff --git a/src/main/java/fr/xephi/authme/data/auth/PlayerAuth.java b/src/main/java/fr/xephi/authme/data/auth/PlayerAuth.java
index ec8fc47e3..addfdead5 100644
--- a/src/main/java/fr/xephi/authme/data/auth/PlayerAuth.java
+++ b/src/main/java/fr/xephi/authme/data/auth/PlayerAuth.java
@@ -3,7 +3,7 @@
 import fr.xephi.authme.security.crypts.HashedPassword;
 import org.bukkit.Location;
 
-import static com.google.common.base.Objects.firstNonNull;
+import static com.google.common.base.MoreObjects.firstNonNull;
 import static com.google.common.base.Preconditions.checkNotNull;
 
 
diff --git a/src/main/java/fr/xephi/authme/settings/SettingsMigrationService.java b/src/main/java/fr/xephi/authme/settings/SettingsMigrationService.java
index 7e41196f8..c2dd46558 100644
--- a/src/main/java/fr/xephi/authme/settings/SettingsMigrationService.java
+++ b/src/main/java/fr/xephi/authme/settings/SettingsMigrationService.java
@@ -4,7 +4,7 @@
 import ch.jalu.configme.properties.Property;
 import ch.jalu.configme.properties.StringListProperty;
 import ch.jalu.configme.resource.PropertyResource;
-import com.google.common.base.Objects;
+import com.google.common.base.MoreObjects;
 import fr.xephi.authme.ConsoleLogger;
 import fr.xephi.authme.initialization.DataFolder;
 import fr.xephi.authme.output.LogLevel;
@@ -203,7 +203,7 @@ private static boolean changeBooleanSettingToLogLevelProperty(PropertyResource r
         final Property<LogLevel> newProperty = PluginSettings.LOG_LEVEL;
         if (!newProperty.isPresent(resource) && resource.contains(oldPath)) {
             ConsoleLogger.info("Moving '" + oldPath + "' to '" + newProperty.getPath() + "'");
-            boolean oldValue = Objects.firstNonNull(resource.getBoolean(oldPath), false);
+            boolean oldValue = MoreObjects.firstNonNull(resource.getBoolean(oldPath), false);
             LogLevel level = oldValue ? LogLevel.INFO : LogLevel.FINE;
             resource.setValue(newProperty.getPath(), level.name());
             return true;
diff --git a/src/test/java/fr/xephi/authme/datasource/AbstractResourceClosingTest.java b/src/test/java/fr/xephi/authme/datasource/AbstractResourceClosingTest.java
index 40d8ad3bf..1da098e1e 100644
--- a/src/test/java/fr/xephi/authme/datasource/AbstractResourceClosingTest.java
+++ b/src/test/java/fr/xephi/authme/datasource/AbstractResourceClosingTest.java
@@ -1,7 +1,7 @@
 package fr.xephi.authme.datasource;
 
 import ch.jalu.configme.properties.Property;
-import com.google.common.base.Objects;
+import com.google.common.base.MoreObjects;
 import com.google.common.base.Preconditions;
 import com.google.common.collect.ImmutableMap;
 import com.google.common.collect.ImmutableSet;
@@ -143,7 +143,7 @@ public static Collection<Object[]> data() {
         // Use XFBCRYPT if nothing else specified as there is a lot of specific behavior to this hash algorithm in MySQL
         final HashAlgorithm[] defaultAlgorithm = new HashAlgorithm[]{HashAlgorithm.XFBCRYPT};
         for (Method method : methods) {
-            HashAlgorithm[] algorithms = Objects.firstNonNull(CUSTOM_ALGORITHMS.get(method.getName()), defaultAlgorithm);
+            HashAlgorithm[] algorithms = MoreObjects.firstNonNull(CUSTOM_ALGORITHMS.get(method.getName()), defaultAlgorithm);
             for (HashAlgorithm algorithm : algorithms) {
                 data.add(new Object[]{method, method.getName(), algorithm});
             }
diff --git a/src/test/java/tools/docs/translations/TranslationPageGenerator.java b/src/test/java/tools/docs/translations/TranslationPageGenerator.java
index 5460e33d3..0bb58f7bf 100644
--- a/src/test/java/tools/docs/translations/TranslationPageGenerator.java
+++ b/src/test/java/tools/docs/translations/TranslationPageGenerator.java
@@ -12,7 +12,7 @@
 import java.util.Map;
 import java.util.stream.Collectors;
 
-import static com.google.common.base.Objects.firstNonNull;
+import static com.google.common.base.MoreObjects.firstNonNull;
 
 /**
  * Generates the translations page in docs.