Skip to content

Commit 559fb53

Browse files
committed
Messaging.kt implemented sendMessage method.
Server user added with all permissions in `users` in `PermissionModel.kt`. `UseExperimental` annotation renamed to `OptIn`. changelog.md and update.json updated. Signed-off-by: Pavel Erokhin (MairwunNx) <[email protected]>
1 parent b2622c9 commit 559fb53

File tree

7 files changed

+73
-130
lines changed

7 files changed

+73
-130
lines changed

changelog.md

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,16 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
66

77
## [Unreleased]
88

9-
## [1.14.4-1.2.1] - 2020-03-12
9+
## [1.14.4-1.2.1] - 2020-03-13
10+
11+
### Added
12+
- Server-side only safe localization.
13+
- Default user `#server` with all permissions.
14+
15+
### Changed
16+
- Improved internal code.
17+
- Dependencies: Kotlin, KotlinxSerialization updated.
18+
- Dokka and Forge API updated.
1019

1120
## [1.14.4-1.2.0] - 2020-02-08
1221

src/main/kotlin/com/mairwunnx/projectessentials/permissions/EntryPoint.kt

Lines changed: 2 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ package com.mairwunnx.projectessentials.permissions
22

33
import com.mairwunnx.projectessentials.core.EssBase
44
import com.mairwunnx.projectessentials.core.configuration.localization.LocalizationConfigurationUtils
5-
import com.mairwunnx.projectessentials.core.extensions.sendMsg
65
import com.mairwunnx.projectessentials.core.localization.processLocalizations
76
import com.mairwunnx.projectessentials.permissions.commands.PermissionsCommand
87
import com.mairwunnx.projectessentials.permissions.permissions.PermissionBase
@@ -67,11 +66,7 @@ internal class EntryPoint : EssBase() {
6766
) && !PermissionsAPI.hasPermission(
6867
player.name.string, "native.event.block.place"
6968
) -> {
70-
sendMsg(
71-
"permissions",
72-
player.commandSource,
73-
"perm.block_break.place"
74-
)
69+
sendMessage(player.commandSource, "block_break.place")
7570
event.isCanceled = true
7671
return
7772
}
@@ -87,11 +82,7 @@ internal class EntryPoint : EssBase() {
8782
) && !PermissionsAPI.hasPermission(
8883
event.player.name.string, "native.event.block.break"
8984
) -> {
90-
sendMsg(
91-
"permissions",
92-
event.player.commandSource,
93-
"perm.block_break.restricted"
94-
)
85+
sendMessage(event.player.commandSource, "block_break.restricted")
9586
event.isCanceled = true
9687
return
9788
}
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
package com.mairwunnx.projectessentials.permissions
2+
3+
import com.mairwunnx.projectessentials.core.configuration.localization.LocalizationConfigurationUtils
4+
import com.mairwunnx.projectessentials.core.extensions.sendMsg
5+
import com.mairwunnx.projectessentials.core.localization.sendMsgV2
6+
import net.minecraft.command.CommandSource
7+
8+
internal fun sendMessage(
9+
source: CommandSource,
10+
message: String,
11+
vararg args: String
12+
) {
13+
if (LocalizationConfigurationUtils.getConfig().enabled) {
14+
sendMsgV2(
15+
source.asPlayer(),
16+
"project_essentials_permissions.perm.$message", *args
17+
)
18+
} else {
19+
sendMsg(
20+
"permissions", source, "perm.$message", *args
21+
)
22+
}
23+
}

src/main/kotlin/com/mairwunnx/projectessentials/permissions/commands/PermissionsCommand.kt

Lines changed: 34 additions & 115 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,11 @@ package com.mairwunnx.projectessentials.permissions.commands
33
import com.mairwunnx.projectessentials.cooldown.essentials.CommandsAliases
44
import com.mairwunnx.projectessentials.core.extensions.isPlayerSender
55
import com.mairwunnx.projectessentials.core.extensions.playerName
6-
import com.mairwunnx.projectessentials.core.extensions.sendMsg
7-
import com.mairwunnx.projectessentials.core.helpers.PERMISSION_LEVEL
6+
import com.mairwunnx.projectessentials.core.helpers.throwPermissionLevel
87
import com.mairwunnx.projectessentials.permissions.EntryPoint
98
import com.mairwunnx.projectessentials.permissions.permissions.PermissionBase
109
import com.mairwunnx.projectessentials.permissions.permissions.PermissionsAPI
10+
import com.mairwunnx.projectessentials.permissions.sendMessage
1111
import com.mojang.brigadier.CommandDispatcher
1212
import com.mojang.brigadier.arguments.StringArgumentType
1313
import com.mojang.brigadier.builder.LiteralArgumentBuilder
@@ -52,10 +52,9 @@ internal object PermissionsCommand {
5252
): Int {
5353
if (c.isPlayerSender()) {
5454
if (PermissionsAPI.hasPermission(c.playerName(), "ess.perm")) {
55-
sendMsg(
56-
"permissions",
55+
sendMessage(
5756
c.source,
58-
"perm.about.out",
57+
"about.out",
5958
EntryPoint.modInstance.modName,
6059
EntryPoint.modInstance.modVersion,
6160
EntryPoint.modInstance.modMaintainer,
@@ -66,12 +65,8 @@ internal object PermissionsCommand {
6665
EntryPoint.modInstance.modCurseForge
6766
)
6867
} else {
69-
sendMsg("permissions", c.source, "perm.about.restricted")
70-
logger.info(
71-
PERMISSION_LEVEL
72-
.replace("%0", c.playerName())
73-
.replace("%1", "permissions")
74-
)
68+
sendMessage(c.source, "about.restricted")
69+
throwPermissionLevel(c.playerName(), "permissions")
7570
}
7671
} else {
7772
logger.info(" ${EntryPoint.modInstance.modName}")
@@ -99,12 +94,8 @@ internal object PermissionsCommand {
9994
c.isPlayerSender() && !PermissionsAPI.hasPermission(
10095
c.playerName(), "ess.perm.reload"
10196
) -> {
102-
sendMsg("permissions", c.source, "perm.reload.restricted")
103-
logger.info(
104-
PERMISSION_LEVEL
105-
.replace("%0", c.playerName())
106-
.replace("%1", "permissions reload")
107-
)
97+
sendMessage(c.source, "reload.restricted")
98+
throwPermissionLevel(c.playerName(), "permisions reload")
10899
0
109100
}
110101
else -> {
@@ -113,9 +104,7 @@ internal object PermissionsCommand {
113104
PermissionsAPI.oppedPlayers.addAll(c.source.server.playerList.oppedPlayerNames)
114105
tryAssignAliases()
115106
when {
116-
c.isPlayerSender() -> sendMsg(
117-
"permissions", c.source, "perm.reload.success"
118-
)
107+
c.isPlayerSender() -> sendMessage(c.source, "reload.success")
119108
else -> logger.info("Permission configuration reloaded.")
120109
}
121110
0
@@ -136,20 +125,14 @@ internal object PermissionsCommand {
136125
c.isPlayerSender() && !PermissionsAPI.hasPermission(
137126
c.source.asPlayer().name.string, "ess.perm.save"
138127
) -> {
139-
sendMsg("permissions", c.source, "perm.save.restricted")
140-
logger.info(
141-
PERMISSION_LEVEL
142-
.replace("%0", c.playerName())
143-
.replace("%1", "permissions save")
144-
)
128+
sendMessage(c.source, "save.restricted")
129+
throwPermissionLevel(c.playerName(), "permissions save")
145130
0
146131
}
147132
else -> {
148133
PermissionBase.saveData()
149134
when {
150-
c.isPlayerSender() -> sendMsg(
151-
"permissions", c.source, "perm.save.success"
152-
)
135+
c.isPlayerSender() -> sendMessage(c.source, "save.success")
153136
else -> logger.info("Permission configuration saved.")
154137
}
155138
0
@@ -195,18 +178,12 @@ internal object PermissionsCommand {
195178
if (c.isPlayerSender() &&
196179
!PermissionsAPI.hasPermission(c.playerName(), "ess.perm.group")
197180
) {
198-
sendMsg("permissions", c.source, "perm.group.restricted")
199-
logger.info(
200-
PERMISSION_LEVEL
201-
.replace("%0", c.playerName())
202-
.replace("%1", "permissions group [...]")
203-
)
181+
sendMessage(c.source, "group.restricted")
182+
throwPermissionLevel(c.playerName(), "permissions group [...]")
204183
return 0
205184
}
206185
when {
207-
c.isPlayerSender() -> sendMsg(
208-
"permissions", c.source, "perm.group.example"
209-
)
186+
c.isPlayerSender() -> sendMessage(c.source, "group.example")
210187
else -> logger.info("Usage example: /ess permissions group <group> [set|remove] <node>")
211188
}
212189
return 0
@@ -216,25 +193,15 @@ internal object PermissionsCommand {
216193
if (c.isPlayerSender() &&
217194
!PermissionsAPI.hasPermission(c.playerName(), "ess.perm.group")
218195
) {
219-
sendMsg("permissions", c.source, "perm.group.restricted")
220-
logger.info(
221-
PERMISSION_LEVEL
222-
.replace("%0", c.playerName())
223-
.replace("%1", "permissions group [...]")
224-
)
196+
sendMessage(c.source, "group.restricted")
197+
throwPermissionLevel(c.playerName(), "permissions group [...]")
225198
return 0
226199
}
227200
val targetGroup = StringArgumentType.getString(c, "name")
228201
val targetNode = StringArgumentType.getString(c, "node")
229202
PermissionsAPI.setGroupPermissionNode(targetGroup, targetNode)
230203
if (c.isPlayerSender()) {
231-
sendMsg(
232-
"permissions",
233-
c.source,
234-
"perm.group.success",
235-
targetNode,
236-
targetGroup
237-
)
204+
sendMessage(c.source, "group.success", targetNode, targetGroup)
238205
} else {
239206
logger.info("Permission $targetNode added to group $targetGroup.")
240207
}
@@ -245,25 +212,15 @@ internal object PermissionsCommand {
245212
if (c.isPlayerSender() &&
246213
!PermissionsAPI.hasPermission(c.playerName(), "ess.perm.group")
247214
) {
248-
sendMsg("permissions", c.source, "perm.group.restricted")
249-
logger.info(
250-
PERMISSION_LEVEL
251-
.replace("%0", c.playerName())
252-
.replace("%1", "permissions group [...]")
253-
)
215+
sendMessage(c.source, "group.restricted")
216+
throwPermissionLevel(c.playerName(), "permissions group [...]")
254217
return 0
255218
}
256219
val targetGroup = StringArgumentType.getString(c, "name")
257220
val targetNode = StringArgumentType.getString(c, "node")
258221
PermissionsAPI.removeGroupPermission(targetGroup, targetNode)
259222
if (c.isPlayerSender()) {
260-
sendMsg(
261-
"permissions",
262-
c.source,
263-
"perm.group.remove.success",
264-
targetNode,
265-
targetGroup
266-
)
223+
sendMessage(c.source, "group.remove.success", targetNode, targetGroup)
267224
} else {
268225
logger.info("Permission $targetNode removed from group $targetGroup.")
269226
}
@@ -319,18 +276,12 @@ internal object PermissionsCommand {
319276
if (c.isPlayerSender() &&
320277
!PermissionsAPI.hasPermission(c.playerName(), "ess.perm.user")
321278
) {
322-
sendMsg("permissions", c.source, "perm.user.restricted")
323-
logger.info(
324-
PERMISSION_LEVEL
325-
.replace("%0", c.playerName())
326-
.replace("%1", "permissions user [...]")
327-
)
279+
sendMessage(c.source, "user.restricted")
280+
throwPermissionLevel(c.playerName(), "permissions user [...]")
328281
return 0
329282
}
330283
when {
331-
c.isPlayerSender() -> sendMsg(
332-
"permissions", c.source, "perm.user.example"
333-
)
284+
c.isPlayerSender() -> sendMessage(c.source, "user.example")
334285
else -> logger.info(
335286
"Usage example: /ess permissions user <nickname> [[set]|remove] [<node>] [[group]] [[<group name>]]"
336287
)
@@ -342,25 +293,15 @@ internal object PermissionsCommand {
342293
if (c.isPlayerSender() &&
343294
!PermissionsAPI.hasPermission(c.playerName(), "ess.perm.user")
344295
) {
345-
sendMsg("permissions", c.source, "perm.user.restricted")
346-
logger.info(
347-
PERMISSION_LEVEL
348-
.replace("%0", c.playerName())
349-
.replace("%1", "permissions user [...]")
350-
)
296+
sendMessage(c.source, "user.restricted")
297+
throwPermissionLevel(c.playerName(), "permissions user [...]")
351298
return 0
352299
}
353300
val targetUser = StringArgumentType.getString(c, "nickname")
354301
val targetNode = StringArgumentType.getString(c, "node")
355302
PermissionsAPI.setUserPermissionNode(targetUser, targetNode)
356303
if (c.isPlayerSender()) {
357-
sendMsg(
358-
"permissions",
359-
c.source,
360-
"perm.user.success",
361-
targetNode,
362-
targetUser
363-
)
304+
sendMessage(c.source, "user.success", targetNode, targetUser)
364305
} else {
365306
logger.info("Permission $targetNode added for user $targetUser.")
366307
}
@@ -371,21 +312,15 @@ internal object PermissionsCommand {
371312
if (c.isPlayerSender() &&
372313
!PermissionsAPI.hasPermission(c.playerName(), "ess.perm.user")
373314
) {
374-
sendMsg("permissions", c.source, "perm.user.restricted")
375-
logger.info(
376-
PERMISSION_LEVEL
377-
.replace("%0", c.playerName())
378-
.replace("%1", "permissions user [...]")
379-
)
315+
sendMessage(c.source, "user.restricted")
316+
throwPermissionLevel(c.playerName(), "permissions user [...]")
380317
return 0
381318
}
382319
val targetUser = StringArgumentType.getString(c, "nickname")
383320
val targetGroup = StringArgumentType.getString(c, "groupName")
384321
if (targetGroup.isNullOrEmpty()) {
385322
when {
386-
c.isPlayerSender() -> sendMsg(
387-
"permissions", c.source, "perm.user.group.example"
388-
)
323+
c.isPlayerSender() -> sendMessage(c.source, "user.group.example")
389324
else -> logger.info(
390325
"Usage example: /ess permissions user <nickname> set group <group name>"
391326
)
@@ -394,13 +329,7 @@ internal object PermissionsCommand {
394329
}
395330
PermissionsAPI.setUserPermissionGroup(targetUser, targetGroup)
396331
if (c.isPlayerSender()) {
397-
sendMsg(
398-
"permissions",
399-
c.source,
400-
"perm.user.group.success",
401-
targetGroup,
402-
targetUser
403-
)
332+
sendMessage(c.source, "user.group.success", targetGroup, targetUser)
404333
} else {
405334
logger.info("Installed new group $targetGroup for user $targetUser.")
406335
}
@@ -411,25 +340,15 @@ internal object PermissionsCommand {
411340
if (c.isPlayerSender() &&
412341
!PermissionsAPI.hasPermission(c.playerName(), "ess.perm.user")
413342
) {
414-
sendMsg("permissions", c.source, "perm.user.restricted")
415-
logger.info(
416-
PERMISSION_LEVEL
417-
.replace("%0", c.playerName())
418-
.replace("%1", "permissions user [...]")
419-
)
343+
sendMessage(c.source, "user.restricted")
344+
throwPermissionLevel(c.playerName(), "permissions user [...]")
420345
return 0
421346
}
422347
val targetUser = StringArgumentType.getString(c, "nickname")
423348
val targetNode = StringArgumentType.getString(c, "node")
424349
PermissionsAPI.removeUserPermission(targetUser, targetNode)
425350
if (c.isPlayerSender()) {
426-
sendMsg(
427-
"permissions",
428-
c.source,
429-
"perm.user.remove.success",
430-
targetNode,
431-
targetUser
432-
)
351+
sendMessage(c.source, "user.remove.success", targetNode, targetUser)
433352
} else {
434353
logger.info("Permission $targetNode removed from user $targetUser")
435354
}

src/main/kotlin/com/mairwunnx/projectessentials/permissions/permissions/PermissionBase.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import kotlinx.serialization.UnstableDefault
66
import org.apache.logging.log4j.LogManager
77
import java.io.File
88

9-
@UseExperimental(UnstableDefault::class)
9+
@OptIn(UnstableDefault::class)
1010
internal object PermissionBase {
1111
private val logger = LogManager.getLogger()
1212
internal var permissionData = PermissionModel()

src/main/kotlin/com/mairwunnx/projectessentials/permissions/permissions/PermissionModel.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,8 @@ data class PermissionModel(
5252
* stores all registered users.
5353
*/
5454
var users: List<User> = listOf(
55-
User("*", "default", emptyList())
55+
User("*", "default", emptyList()),
56+
User("#server", "owner", emptyList())
5657
)
5758
) {
5859
/**

update.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"homepage": "https://github.com/ProjectEssentials/ProjectEssentials-Permissions",
33
"1.14.4": {
4-
"1.14.4-1.2.1": "Changelog for 1.2.1 https://github.com/ProjectEssentials/ProjectEssentials-Permissions/blob/MC-1.14.X/changelog.md#1144-121---2020-03-12",
4+
"1.14.4-1.2.1": "Changelog for 1.2.1 https://github.com/ProjectEssentials/ProjectEssentials-Permissions/blob/MC-1.14.X/changelog.md#1144-121---2020-03-13",
55
"1.14.4-1.2.0": "Changelog for 1.2.0 https://github.com/ProjectEssentials/ProjectEssentials-Permissions/blob/MC-1.14.X/changelog.md#1144-120---2020-02-08",
66
"1.14.4-1.1.0.0": " - Resolved #20. (Improve default permission configuration.)\n - Resolved #19. (Implement permissions for block break and block place events.)\n - Updated core module version.\n - Fixed not working permissions in group with inheritance.",
77
"1.14.4-1.0.1.0": " - Added compatibility with core module `1.0.3.2`.\n - Added compatibility with cooldown module `1.0.2.0`.\n - Updated gradle wrapper version to `5.6.4`.\n - CHANGELOG.md renamed to changelog.md.\n - Updated core module and cooldown module.\n - Updated version number to `1.0.1.0`.\n - Removed comments from gradle.properties.\n - Removed redundant information logging.\n - Simplified code for creating directory.\n - Usings optimal `JsonConfiguration` from core module.",

0 commit comments

Comments
 (0)