Skip to content

Commit 8cdf3e0

Browse files
authored
Merge pull request #62 from ggggg/master
Added levenshtein to setjob (plasma's idea)
2 parents b3e0a6a + d070d6e commit 8cdf3e0

File tree

13 files changed

+41
-131
lines changed

13 files changed

+41
-131
lines changed

dist/localization.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -106,8 +106,9 @@
106106
"received_from" : "Received ${0} from {1}.",
107107
"job_set" : "{0} now has the job: {1}.",
108108
"new_job" : "{0} gave you a new job of {1}.",
109+
"job_notFound": "The job {0} was not found.",
109110
"player_jail" : "You have placed {0} in prison for {1} seconds",
110-
"target_jail" : "{0} has placed you in prison for {1} seconds",
111+
"target_jail" : "{0} has placed you in prison for {1} seconds"
111112
},
112113
"BR": {
113114
"arrested": "Preso {0}.",

dist/settings.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,8 @@
1515
"Levenshtein": {
1616
"GiveMode": "Automatic",
1717
"WarpMode": "Suggest",
18-
"KitMode": "Suggest"
18+
"KitMode": "Suggest",
19+
"SetJobMode": "Suggest"
1920
},
2021
"Commands": [
2122
{

src/BPEssentials/BPEssentials.csproj

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -300,7 +300,6 @@
300300
<Compile Include="Commands\Moderation\Ban.cs" />
301301
<Compile Include="Commands\Moderation\Kick.cs" />
302302
<Compile Include="Commands\Teleport\TeleportCoordinates.cs" />
303-
<Compile Include="Commands\Player\ToggleGodmode.cs" />
304303
<Compile Include="Commands\Teleport\TeleportHere.cs" />
305304
<Compile Include="Commands\Teleport\Teleport.cs" />
306305
<Compile Include="Commands\Misc\Launch.cs" />
@@ -340,7 +339,6 @@
340339
<Compile Include="Core.cs" />
341340
<Compile Include="Enums\Chat.cs" />
342341
<Compile Include="Events\OnDropDead.cs" />
343-
<Compile Include="Events\OnDamage.cs" />
344342
<Compile Include="Events\OnRegister.cs" />
345343
<Compile Include="Events\OnStarted.cs" />
346344
<Compile Include="Events\OnLeave.cs" />

src/BPEssentials/ChatHandlers/GlobalChat.cs

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ public class GlobalChat : IScript
1313
[Target(GameSourceEvent.PlayerGlobalChatMessage, ExecutionMode.Override)]
1414
public void OnEvent(ShPlayer player, string message)
1515
{
16-
if (player.manager.svManager.chatted.OverLimit(player))
16+
if (player.manager.svManager.chatted.Limit(player))
1717
{
1818
return;
1919
}
@@ -23,8 +23,6 @@ public void OnEvent(ShPlayer player, string message)
2323
return;
2424
}
2525

26-
player.manager.svManager.chatted.Add(player);
27-
2826
Core.Instance.Logger.LogInfo($"[GLOBAL] {player.username}: {message}");
2927

3028
switch (player.GetExtendedPlayer().CurrentChat)

src/BPEssentials/ChatHandlers/LocalChat.cs

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ public class LocalChat : IScript
1313
[Target(GameSourceEvent.PlayerLocalChatMessage, ExecutionMode.Override)]
1414
public void OnEvent(ShPlayer player, string message)
1515
{
16-
if (player.manager.svManager.chatted.OverLimit(player))
16+
if (player.manager.svManager.chatted.Limit(player))
1717
{
1818
return;
1919
}
@@ -26,8 +26,6 @@ public void OnEvent(ShPlayer player, string message)
2626
return;
2727
}
2828

29-
player.manager.svManager.chatted.Add(player);
30-
3129
if (Core.Instance.Settings.General.LocalChatOverHead)
3230
{
3331
player.svPlayer.Send(SvSendType.LocalOthers, Channel.Unsequenced, ClPacket.LocalChatMessage, player.ID, message.CleanerMessage());

src/BPEssentials/Commands/Player/Heal.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ public class Heal : Command
1010
public void Invoke(ShPlayer player, ShPlayer target = null)
1111
{
1212
target = target ?? player;
13+
target.svPlayer.SvClearInjuries();
1314
target.svPlayer.Heal(target.maxStat);
1415
player.TS("healed", target.username.CleanerMessage());
1516
}

src/BPEssentials/Commands/Player/Inventory/Give.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@ public void Invoke(ShPlayer player, string name, int amount = 1, ShPlayer target
2222
return;
2323
}
2424
item = Core.Instance.EntityHandler.Items.OrderByDescending(x => LevenshteinDistance.CalculateSimilarity(x.Key, name)).FirstOrDefault();
25-
2625
if (Core.Instance.Settings.Levenshtein.GiveMode == Configuration.Models.SettingsModel.LevenshteinMode.Suggest)
2726
{
2827
player.TS("give_notFound", name);

src/BPEssentials/Commands/Player/SetJob.cs

Lines changed: 31 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,20 +3,47 @@
33
using BrokeProtocol.Entities;
44
using BrokeProtocol.Utility;
55
using BrokeProtocol.Required;
6+
using System.Collections.Generic;
7+
using System;
8+
using System.Linq;
9+
using BPEssentials.Utils;
610

711
namespace BPEssentials.Commands
812
{
913
public class SetJob : Command
1014
{
11-
public void Invoke(ShPlayer player, JobIndex job, ShPlayer target = null)
15+
public void Invoke(ShPlayer player, string jobName, ShPlayer target = null)
1216
{
1317

1418
target = target ?? player;
15-
target.svPlayer.SvTrySetJob(job, true, false);
16-
player.TS("job_set", target.username.CleanerMessage(), job.ToString());
19+
var jobs = new Dictionary<string, JobIndex>();
20+
foreach (var jobType in Enum.GetValues(typeof(JobIndex)))
21+
{
22+
jobs.Add(jobType.ToString(), jobType);
23+
}
24+
25+
var wantedJob = jobs.FirstOrDefault(x => x.Key == jobName);
26+
if (wantedJob.Key == null)
27+
{
28+
if (Core.Instance.Settings.Levenshtein.SetJobMode == Configuration.Models.SettingsModel.LevenshteinMode.None)
29+
{
30+
player.TS("job_notFound", jobName);
31+
return;
32+
}
33+
wantedJob = jobs.OrderByDescending(x => LevenshteinDistance.CalculateSimilarity(x.Key, jobName)).FirstOrDefault();
34+
35+
if (Core.Instance.Settings.Levenshtein.SetJobMode == Configuration.Models.SettingsModel.LevenshteinMode.Suggest)
36+
{
37+
player.TS("job_notFound", jobName);
38+
player.TS("levenshteinSuggest", wantedJob.Key);
39+
return;
40+
}
41+
}
42+
target.svPlayer.SvTrySetJob(wantedJob.Value, true, false);
43+
player.TS("job_set", target.username.CleanerMessage(), jobName);
1744
if (target != player)
1845
{
19-
target.TS("new_job", player.username.CleanerMessage(), job.ToString());
46+
target.TS("new_job", player.username.CleanerMessage(), wantedJob.Key);
2047
}
2148
}
2249
}

src/BPEssentials/Commands/Player/ToggleGodmode.cs

Lines changed: 0 additions & 20 deletions
This file was deleted.

src/BPEssentials/Configuration/Models/SettingsModel.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ public class Levenshtein
4949
public LevenshteinMode GiveMode { get; set; }
5050
public LevenshteinMode WarpMode { get; set; }
5151
public LevenshteinMode KitMode { get; set; }
52+
public LevenshteinMode SetJobMode { get; set; }
5253
}
5354

5455
public class ReportOptions

0 commit comments

Comments
 (0)