Skip to content

Commit

Permalink
Release 2.8
Browse files Browse the repository at this point in the history
  • Loading branch information
lucko committed Sep 7, 2016
1 parent d84767a commit ea07f05
Show file tree
Hide file tree
Showing 28 changed files with 361 additions and 313 deletions.
2 changes: 1 addition & 1 deletion api/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
<parent>
<artifactId>luckperms</artifactId>
<groupId>me.lucko.luckperms</groupId>
<version>2.7-SNAPSHOT</version>
<version>2.8-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>

Expand Down
12 changes: 12 additions & 0 deletions api/src/main/java/me/lucko/luckperms/api/LPConfiguration.java
Original file line number Diff line number Diff line change
Expand Up @@ -88,6 +88,18 @@ public interface LPConfiguration {
*/
boolean getLogNotify();

/**
* @return true if the vanilla op system is enabled
* @since 2.8
*/
boolean getEnableOps();

/**
* @return true if opped players are allowed to use LuckPerms commands
* @since 2.8
*/
boolean getCommandsAllowOp();

/**
* @return the name of the server used within Vault operations
* @since 2.7
Expand Down
2 changes: 2 additions & 0 deletions api/src/main/java/me/lucko/luckperms/api/MetaUtils.java
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,8 @@
*/
public class MetaUtils {

private MetaUtils(){}

/**
* Escapes special characters used within LuckPerms, so the string can be saved without issues
* @param s the string to escape
Expand Down
28 changes: 22 additions & 6 deletions api/src/main/java/me/lucko/luckperms/api/Node.java
Original file line number Diff line number Diff line change
Expand Up @@ -247,18 +247,34 @@ public interface Node extends Map.Entry<String, Boolean> {
Map.Entry<Integer, String> getSuffix();

/**
* Similar to {@link #equals(Object)}, except doesn't take note of the value
* @param node the other node
* Checks if this Node is equal to another node
* @param obj the other node
* @return true if this node is equal to the other provided
* @see #equalsIgnoringValue(Node) for a less strict implementation of this method
*/
boolean equals(Object obj);

/**
* Similar to {@link Node#equals(Object)}, except doesn't take note of the value
* @param other the other node
* @return true if the two nodes are almost equal
*/
boolean equalsIgnoringValue(Node other);

/**
* Similar to {@link Node#equals(Object)}, except doesn't take note of the expiry time or value
* @param other the other node
* @return true if the two nodes are almost equal
*/
boolean equalsIgnoringValue(Node node);
boolean almostEquals(Node other);

/**
* Similar to {@link #equals(Object)}, except doesn't take note of the expiry time or value
* @param node the other node
* Similar to {@link Node#equals(Object)}, except doesn't take note of the value or if the node is temporary
* @param other the other node
* @return true if the two nodes are almost equal
* @since 2.8
*/
boolean almostEquals(Node node);
boolean equalsIgnoringValueOrTemp(Node other);

/**
* Builds a Node instance
Expand Down
2 changes: 1 addition & 1 deletion bukkit-placeholders/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
<parent>
<artifactId>luckperms</artifactId>
<groupId>me.lucko.luckperms</groupId>
<version>2.7-SNAPSHOT</version>
<version>2.8-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>

Expand Down
2 changes: 1 addition & 1 deletion bukkit/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
<parent>
<artifactId>luckperms</artifactId>
<groupId>me.lucko.luckperms</groupId>
<version>2.7-SNAPSHOT</version>
<version>2.8-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>

Expand Down
18 changes: 18 additions & 0 deletions bukkit/src/main/java/me/lucko/luckperms/BukkitListener.java
Original file line number Diff line number Diff line change
Expand Up @@ -105,4 +105,22 @@ public void onPlayerQuit(PlayerQuitEvent e) {
plugin.getUserManager().getWorldCache().remove(e.getPlayer().getUniqueId());
onLeave(e.getPlayer().getUniqueId());
}

@EventHandler
public void onPlayerCommand(PlayerCommandPreprocessEvent e) {
if (plugin.getConfiguration().getEnableOps()) {
return;
}

String s = e.getMessage()
.replace("/", "")
.replace("bukkit:", "")
.replace("spigot:", "")
.replace("minecraft:", "");

if (s.startsWith("op") || s.startsWith("deop")) {
e.setCancelled(true);
e.getPlayer().sendMessage(Message.OP_DISABLED.toString());
}
}
}
37 changes: 37 additions & 0 deletions bukkit/src/main/java/me/lucko/luckperms/LPBukkitPlugin.java
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,8 @@
import me.lucko.luckperms.utils.LogFactory;
import org.bukkit.command.PluginCommand;
import org.bukkit.entity.Player;
import org.bukkit.permissions.Permission;
import org.bukkit.permissions.PermissionDefault;
import org.bukkit.plugin.PluginManager;
import org.bukkit.plugin.ServicePriority;
import org.bukkit.plugin.java.JavaPlugin;
Expand Down Expand Up @@ -133,6 +135,11 @@ public void onEnable() {
e.printStackTrace();
}

registerPermissions(getConfiguration().getCommandsAllowOp() ? PermissionDefault.OP : PermissionDefault.FALSE);
if (!getConfiguration().getEnableOps()) {
getServer().getOperators().forEach(o -> o.setOp(false));
}

getLog().info("Successfully loaded.");
}

Expand Down Expand Up @@ -237,4 +244,34 @@ public boolean isPluginLoaded(String name) {
public void runUpdateTask() {
getServer().getScheduler().runTaskAsynchronously(this, new UpdateTask(this));
}

private void registerPermissions(PermissionDefault def) {
PluginManager pm = getServer().getPluginManager();

Map<String, List<String>> wildcards = new HashMap<>();
List<String> all = new ArrayList<>();
for (me.lucko.luckperms.constants.Permission p : me.lucko.luckperms.constants.Permission.values()) {
pm.addPermission(new Permission(p.getNode(), def));
if (p.getGroup() != null) {
if (!wildcards.containsKey(p.getGroup())) {
wildcards.put(p.getGroup(), new ArrayList<>());
}
wildcards.get(p.getGroup()).add(p.getTag());
}

all.add(p.getNode());
}

for (Map.Entry<String, List<String>> e : wildcards.entrySet()) {
pm.addPermission(new Permission(
"luckperms." + e.getKey() + ".*", def,
e.getValue().stream()
.map(tag -> "luckperms." + e.getKey() + "." + tag)
.collect(Collectors.toMap(s -> s, s -> false))
)
);
}

pm.addPermission(new Permission("luckperms.*", def, all.stream().collect(Collectors.toMap(s -> s, s -> false))));
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -109,7 +109,7 @@ private String getMeta(PermissionHolder holder, String world, String node, Strin
if (node.equals("")) return defaultValue;
node = escapeCharacters(node);

for (Node n : holder.getPermissions()) {
for (Node n : holder.getPermissions(true)) {
if (!n.getValue()) {
continue;
}
Expand Down
6 changes: 6 additions & 0 deletions bukkit/src/main/resources/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,12 @@ apply-shorthand: true
# If the plugin should send log notifications to users whenever permissions are modified.
log-notify: true

# If the vanilla OP system is enabled. If set to false, all users will be de-opped, and the op/deop commands will be disabled.
enable-ops: true

# If opped players should be allowed to use LuckPerms commands. Set to false to only allow users with the permission access
commands-allow-op: true

# The name of the server used within Vault operations. If you don't want Vault operations to be server specific, set this
# to "global".
vault-server: global
Expand Down
158 changes: 2 additions & 156 deletions bukkit/src/main/resources/plugin.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,159 +12,5 @@ commands:
description: Manage permissions
aliases: [perms, permissions, lp, p, perm]

permissions:
luckperms.*:
description: Gives access to all LuckPerms commands
children:
luckperms.sync: true
luckperms.info: true
luckperms.debug: true
luckperms.import: true
luckperms.creategroup: true
luckperms.deletegroup: true
luckperms.listgroups: true
luckperms.createtrack: true
luckperms.deletetrack: true
luckperms.listtracks: true
luckperms.user.info: true
luckperms.user.getuuid: true
luckperms.user.listnodes: true
luckperms.user.haspermission: true
luckperms.user.inheritspermission: true
luckperms.user.setpermission: true
luckperms.user.unsetpermission: true
luckperms.user.addgroup: true
luckperms.user.removegroup: true
luckperms.user.settemppermission: true
luckperms.user.unsettemppermission: true
luckperms.user.addtempgroup: true
luckperms.user.removetempgroup: true
luckperms.user.setprimarygroup: true
luckperms.user.showtracks: true
luckperms.user.promote: true
luckperms.user.demote: true
luckperms.user.showpos: true
luckperms.user.chatmeta: true
luckperms.user.addprefix: true
luckperms.user.addsuffix: true
luckperms.user.removeprefix: true
luckperms.user.removesuffix: true
luckperms.user.addtempprefix: true
luckperms.user.addtempsuffix: true
luckperms.user.removetempprefix: true
luckperms.user.removetempsuffix: true
luckperms.user.clear: true
luckperms.group.info: true
luckperms.group.listnodes: true
luckperms.group.haspermission: true
luckperms.group.inheritspermission: true
luckperms.group.setpermission: true
luckperms.group.unsetpermission: true
luckperms.group.setinherit: true
luckperms.group.unsetinherit: true
luckperms.group.settemppermission: true
luckperms.group.unsettemppermission: true
luckperms.group.settempinherit: true
luckperms.group.unsettempinherit: true
luckperms.group.showtracks: true
luckperms.group.chatmeta: true
luckperms.group.addprefix: true
luckperms.group.addsuffix: true
luckperms.group.removeprefix: true
luckperms.group.removesuffix: true
luckperms.group.addtempprefix: true
luckperms.group.addtempsuffix: true
luckperms.group.removetempprefix: true
luckperms.group.removetempsuffix: true
luckperms.group.clear: true
luckperms.group.rename: true
luckperms.track.info: true
luckperms.track.append: true
luckperms.track.insert: true
luckperms.track.remove: true
luckperms.track.clear: true
luckperms.track.rename: true
luckperms.log.export: true
luckperms.log.userhistory: true
luckperms.log.grouphistory: true
luckperms.log.trackhistory: true
luckperms.log.notify: true
luckperms.log.recent: true
luckperms.log.search: true
luckperms.user.*:
description: Gives access to all LuckPerms user commands
children:
luckperms.user.info: true
luckperms.user.getuuid: true
luckperms.user.listnodes: true
luckperms.user.haspermission: true
luckperms.user.inheritspermission: true
luckperms.user.setpermission: true
luckperms.user.unsetpermission: true
luckperms.user.addgroup: true
luckperms.user.removegroup: true
luckperms.user.settemppermission: true
luckperms.user.unsettemppermission: true
luckperms.user.addtempgroup: true
luckperms.user.removetempgroup: true
luckperms.user.setprimarygroup: true
luckperms.user.showtracks: true
luckperms.user.promote: true
luckperms.user.demote: true
luckperms.user.showpos: true
luckperms.user.chatmeta: true
luckperms.user.addprefix: true
luckperms.user.addsuffix: true
luckperms.user.removeprefix: true
luckperms.user.removesuffix: true
luckperms.user.addtempprefix: true
luckperms.user.addtempsuffix: true
luckperms.user.removetempprefix: true
luckperms.user.removetempsuffix: true
luckperms.user.clear: true
luckperms.group.*:
description: Gives access to all LuckPerms group commands
children:
luckperms.group.info: true
luckperms.group.listnodes: true
luckperms.group.haspermission: true
luckperms.group.inheritspermission: true
luckperms.group.setpermission: true
luckperms.group.unsetpermission: true
luckperms.group.setinherit: true
luckperms.group.unsetinherit: true
luckperms.group.settemppermission: true
luckperms.group.unsettemppermission: true
luckperms.group.settempinherit: true
luckperms.group.unsettempinherit: true
luckperms.group.showtracks: true
luckperms.group.chatmeta: true
luckperms.group.addprefix: true
luckperms.group.addsuffix: true
luckperms.group.removeprefix: true
luckperms.group.removesuffix: true
luckperms.group.addtempprefix: true
luckperms.group.addtempsuffix: true
luckperms.group.removetempprefix: true
luckperms.group.removetempsuffix: true
luckperms.group.clear: true
luckperms.group.rename: true
luckperms.track.*:
description: Gives access to all LuckPerms track commands
children:
luckperms.track.info: true
luckperms.track.append: true
luckperms.track.insert: true
luckperms.track.remove: true
luckperms.track.clear: true
luckperms.track.rename: true
luckperms.log.*:
description: Gives access to all LuckPerms log commands
children:
luckperms.log.export: true
luckperms.log.userhistory: true
luckperms.log.grouphistory: true
luckperms.log.trackhistory: true
luckperms.log.notify: true
luckperms.log.recent: true
luckperms.log.search: true

# Permissions are registered programmatically instead of here.
2 changes: 1 addition & 1 deletion bungee/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
<parent>
<artifactId>luckperms</artifactId>
<groupId>me.lucko.luckperms</groupId>
<version>2.7-SNAPSHOT</version>
<version>2.8-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>

Expand Down
6 changes: 5 additions & 1 deletion common/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
<parent>
<artifactId>luckperms</artifactId>
<groupId>me.lucko.luckperms</groupId>
<version>2.7-SNAPSHOT</version>
<version>2.8-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>

Expand Down Expand Up @@ -112,6 +112,10 @@
<groupId>org.bukkit</groupId>
<artifactId>bukkit</artifactId>
</exclusion>
<exclusion>
<groupId>net.gravitydevelopment.updater</groupId>
<artifactId>updater</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ public void runUpdateTask() {

@Override
public double getApiVersion() {
return 2.7;
return 2.8;
}

@Override
Expand Down
Loading

0 comments on commit ea07f05

Please sign in to comment.