geforkt von Mirrors/FastAsyncWorldEdit
Fixed //limit being overridden each time a LocalSession is fetched.
Dieser Commit ist enthalten in:
Ursprung
5402da6c70
Commit
caa5fcdcdf
@ -277,6 +277,7 @@ public class WorldEdit {
|
|||||||
session = sessions.get(player.getName());
|
session = sessions.get(player.getName());
|
||||||
} else {
|
} else {
|
||||||
session = new LocalSession(config);
|
session = new LocalSession(config);
|
||||||
|
session.setBlockChangeLimit(config.defaultChangeLimit);
|
||||||
// Remember the session
|
// Remember the session
|
||||||
sessions.put(player.getName(), session);
|
sessions.put(player.getName(), session);
|
||||||
}
|
}
|
||||||
@ -284,22 +285,25 @@ public class WorldEdit {
|
|||||||
// Set the limit on the number of blocks that an operation can
|
// Set the limit on the number of blocks that an operation can
|
||||||
// change at once, or don't if the player has an override or there
|
// change at once, or don't if the player has an override or there
|
||||||
// is no limit. There is also a default limit
|
// is no limit. There is also a default limit
|
||||||
|
int currentChangeLimit = session.getBlockChangeLimit();
|
||||||
|
|
||||||
if (!player.hasPermission("worldedit.limit.unrestricted")
|
if (!player.hasPermission("worldedit.limit.unrestricted")
|
||||||
&& config.maxChangeLimit > -1) {
|
&& config.maxChangeLimit > -1) {
|
||||||
|
|
||||||
// If the default limit is infinite but there is a maximum
|
// If the default limit is infinite but there is a maximum
|
||||||
// limit, make sure to not have it be overridden
|
// limit, make sure to not have it be overridden
|
||||||
if (config.defaultChangeLimit < 0) {
|
if (config.defaultChangeLimit < 0) {
|
||||||
|
if (currentChangeLimit < 0 || currentChangeLimit > config.maxChangeLimit) {
|
||||||
session.setBlockChangeLimit(config.maxChangeLimit);
|
session.setBlockChangeLimit(config.maxChangeLimit);
|
||||||
} else {
|
|
||||||
// Bound the change limit
|
|
||||||
int limit = Math.min(config.defaultChangeLimit,
|
|
||||||
config.maxChangeLimit);
|
|
||||||
session.setBlockChangeLimit(limit);
|
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
// No change limit or override
|
// Bound the change limit
|
||||||
session.setBlockChangeLimit(config.defaultChangeLimit);
|
int maxChangeLimit = Math.min(config.defaultChangeLimit,
|
||||||
|
config.maxChangeLimit);
|
||||||
|
if (currentChangeLimit == -1 || currentChangeLimit > maxChangeLimit) {
|
||||||
|
session.setBlockChangeLimit(maxChangeLimit);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Have the session use inventory if it's enabled and the player
|
// Have the session use inventory if it's enabled and the player
|
||||||
|
Laden…
In neuem Issue referenzieren
Einen Benutzer sperren